Sadržaj:
- Korak 1: Zahtjevi hardvera
- Korak 2: Obrađene teme
- Korak 3: Osnove I2C sabirnice
- Korak 4: TCA9548A I2C Multiplekser modul
- 5. korak:
- Korak 6: Kako master šalje i prima podatke
- Korak 7: Kodirajte
- Korak 8: I2C skener
- Korak 9: Ožičenje i demo
- Korak 10: Prednosti i nedostaci
- Korak 11: Hvala
Video: TCA9548A I2C multipleksni modul - s Arduinom i NodeMCU: 11 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Jeste li ikada došli u situaciju da ste morali povezati dva, tri ili više I2C senzora na svoj Arduino samo da biste shvatili da senzori imaju fiksnu ili istu I2C adresu. Štoviše, ne možete imati dva uređaja s istom adresom na istim SDA/SCL pinovima!
Dakle, koje su vaše mogućnosti? Stavite ih sve na TCA9548A 1-do-8 I2C multiplekser kako bi svi međusobno razgovarali na istoj sabirnici! TCA9548A Breakout omogućuje komunikaciju s više I2C uređaja koji imaju istu adresu, što olakšava sučelje s njima.
Korak 1: Zahtjevi hardvera
Za ovaj vodič potrebni su nam:
- Oglasna ploča
- TCA9548A I2C multiplekser
- Arduino Uno/Nano sve što vam je pri ruci
- NodeMCU
- Nekoliko I91C OLED zaslona od 0,91 i 0,96
- Kablovi za skakače, i
- USB kabel za učitavanje koda
Korak 2: Obrađene teme
Raspravu ćemo započeti razumijevanjem osnova I2C tehnologije
Zatim ćemo naučiti o multiplekseru TCA9548A i o tome kako master i slave šalju i primaju podatke pomoću I2C tehnologije. Zatim ćemo provjeriti kako možemo programirati i koristiti multiplekser u našem projektu pomoću Arduina i NodeMCU -a Zatim ću vam pokazati brzo demo pomoću 8 I2C OLED zaslona i na kraju ćemo završiti vodič raspravljajući o prednostima i nedostacima multipleksera TCA9548A
Korak 3: Osnove I2C sabirnice
Između integriranog kruga izražen I-kvadrat-C (I²C) ili I2C je tehnologija dvožilne sabirnice (zapravo 4 žice jer su vam potrebni i VCC i uzemljenje) koja se koristi za komunikaciju između više procesora i senzora.
Dvije žice su:
* SDA - Serijski podaci (podatkovna linija) i
* SCL - Serijski sat (linija sata)
Upamtite, obje su ove linije "sinkrone" "dvosmjerne" "otvorene odvodnje" i "povučene prema otpornicima".
Tehnologiju sabirnice I2C izvorno su osmislili Philips Semiconductors početkom 80 -ih kako bi se omogućila laka komunikacija između komponenti koje se nalaze na istoj ploči.
S I2C, možete spojiti više slave -a na jedan master (poput SPI -a) ili možete imati više master -a koji kontroliraju jedno ili više slave -ova. I gospodari i robovi mogu prenositi i primati podatke. Dakle, uređaj na I2C sabirnici može biti u jednom od ova četiri stanja:
* Glavni prijenos - glavni čvor šalje podatke podređenom uređaju* Glavni prijem - glavni čvor prima podatke od podređenog uređaja
* Slave prijenos - podređeni čvor šalje podatke masteru
* Slave prijem - robni čvor prima podatke od nadređenog
I2C je "serijski komunikacijski protokol" na kratke udaljenosti, pa se podaci prenose "bit-by-bit" duž jedne žice ili SDA linije. Izlaz bitova sinkroniziran je s uzorkovanjem bitova pomoću takta 'podijeljenog' signala između glavnog i podređenog. Signalom sata uvijek upravlja glavni uređaj. Master generira sat i započinje komunikaciju s robovima.
Dakle, da rezimiramo>
Broj upotrijebljenih žica: 2
Sinkrono ili asinkrono: Sinkrono
Serijski ili paralelni: serijski
Signal sata kontrolira: Glavni čvor
Upotrijebljeni naponi: +5 V ili +3.3 V
Maksimalan broj majstora: Neograničeno
Maksimalan broj robova: 1008
Maksimalna brzina: standardni način rada = 100 kbps
Brzi način = 400kbps
Način velike brzine = 3,4 Mbps
Ultra brzi način rada = 5 Mbps
Korak 4: TCA9548A I2C Multiplekser modul
TCA9548A je osmokanalni (dvosmjerni) I2C multiplekser koji omogućuje upravljanje osam zasebnih I2C uređaja s jedne host I2C sabirnice. Samo trebate spojiti I2C senzore na SCn / SDn multipleksne sabirnice. Na primjer, ako je u aplikaciji potrebno osam identičnih OLED zaslona, jedan od svakog zaslona može se povezati na svaki od ovih kanala: 0-7.
Multiplekser se spaja na VIN, GND, SDA i SCL linije mikrokontrolera. Odbojna ploča prihvaća VIN od 1.65v do 5.5v. I ulazne SDA i SCL linije spojene su na VCC putem 10K pull-up otpornika (Veličina pull-up otpornika određena je količinom kapacitivnosti na I2C vodovima). Multiplekser podržava i normalne (100 kHz) i brze (400 kHz) I2C protokole. Svi I/O pinovi TCA9548A toleriraju 5 volti i također se mogu koristiti za prevođenje s visokih na niske ili niske na visoke napone.
Bilo bi dobro postaviti pull-up otpornike na sve kanale TCA9548A, čak i ako su naponi isti. Razlog tome je unutarnji NMOS prekidač. Ne prenosi dobro visoki napon, s druge strane vrlo dobro prenosi niske napone. TCA9548A se također može koristiti za prevođenje napona, dopuštajući upotrebu različitih napona sabirnice na svakom paru SCn/SDn tako da dijelovi 1,8-V, 2,5-V ili 3,3-V mogu komunicirati s 5-V dijelovima. To se postiže korištenjem vanjskih pull-up otpornika za podizanje sabirnice do željenog napona za master i svaki slave kanal.
Ako mikrokontroler otkrije sukob sabirnice ili drugi nepravilan rad, TCA9548A se može resetirati potvrđivanjem niskog nivoa na pin RESET.
5. korak:
TCA9548 omogućuje jednom mikrokontroleru da komunicira s do '64 senzora 'sa istom ili različitom I2C adresom dodjeljujući jedinstveni kanal svakoj pod-sabirnici senzora.
Kada govorimo o slanju podataka preko 2 žice na više uređaja, tada nam je potreban način da ih adresiramo. To je isto kao i poštar koji dolazi jednom cestom i baca pakete pošte u različite kuće jer na njima ima ispisanih različitih adresa.
Mogli ste imati maksimalno 8 ovih multipleksera spojenih zajedno na 0x70-0x77 adresama kako biste kontrolirali 64 istih dijelova s I2C adresama. Spajanjem tri adresna bita A0, A1 i A2 na VIN možete dobiti različite kombinacije adresa. Ovako izgleda bajt adrese TCA9548A. Prvih 7 bitova zajedno se tvore slave adresa. Posljednji bit adrese slave definira operaciju (čitanje ili pisanje) koju treba izvesti. Kad je visoko (1), odabire se čitanje, dok nisko (0) odabire operaciju pisanja.
Korak 6: Kako master šalje i prima podatke
Slijedi opći postupak za master da pristupi slave uređaju:
1. Ako master želi poslati podatke podređenom uređaju (NAPIŠE):
-Glavni odašiljač šalje START uvjet nakon čega slijede adrese slave prijemnika i R/W postavljeno na 0
-Master-odašiljač šalje podatke u '8-bitnim upravljačkim registrima' slave-prijemniku kada slave potvrdi da je spreman
-Glavni odašiljač prekida prijenos sa uvjetom STOP
2. Ako master želi primiti ili pročitati podatke od podređenog (READS):
-Glavni prijemnik šalje uvjet START nakon čega slijede adrese slave prijemnika i R/W postavljeno na 1
-Glavni prijemnik šalje traženi registar za očitavanje slave-odašiljaču
-Glavni prijemnik prima podatke od podređenog odašiljača
- Nakon što su primljeni svi bajtovi, Master šalje NACK signalizaciju slave -u da prekine komunikaciju i otpusti sabirnicu
- Glavni prijemnik prekida prijenos sa STOP uvjetom
Autobus se smatra neaktivnim ako su i SDA i SCL linije visoke nakon stanja STOP.
Korak 7: Kodirajte
Sada, Int kod omogućuje početak uključivanjem "Wire" knjižnice i definiranjem adrese multipleksera.
#include "Wire.h"
#uključuje "U8glib.h"
#define MUX_Address 0x70 // TCA9548A Adresa kodera
Zatim moramo odabrati port na koji želimo komunicirati i poslati podatke na njemu pomoću ove funkcije:
void selectI2CChannels (uint8_t i) {
if (i> 7) return;
Wire.beginTransmission (MUX_Address);
Wire.write (1 << i);
Wire.endTransmission ();
}
Zatim ćemo pokrenuti prikaz u odjeljku za postavljanje pozivom "u8g.begin ();" za svaki zaslon priključen na MUX "tcaselect (i);"
Nakon inicijalizacije tada možemo učiniti sve što želimo samo pozivanjem funkcije "tcaselect (i);" gdje je "i" vrijednost multipleksirane sabirnice, a zatim se prema tome šalju podaci i sat.
Korak 8: I2C skener
Za svaki slučaj, ako niste sigurni u vezi s adresom uređaja vašeg I2C štita, pokrenite priloženi kôd 'I2C skenera' kako biste pronašli heksadecimalnu adresu svog uređaja. Kada se učita na Arduino, skica će skenirati I2C mrežu, pokazujući adrese koje odgovaraju.
Korak 9: Ožičenje i demo
Ožičenje:
Počnimo spajanjem multipleksera na NodeMCU ploču. Spojiti:
VIN do 5V (ili 3.3V)
GND na uzemljenje
SDA na D2 i
Pinovi SCL na D1
Za Arduino ploču spojite:
VIN do 5V (ili 3.3V)
GND na uzemljenje
SDA na A4 i
SCL na A5 pinove
Nakon što je MUX spojen na mikrokontroler, trebate samo spojiti senzore na SCn / SDn parove.
Pogledajmo sada ovaj brzi demo u kojem sam spojio 8 OLED zaslona na TCA9548A multiplekser. Kako ovi zasloni koriste I2C komunikaciju, komuniciraju s Arduinom koristeći samo 2 pina.
Korak 10: Prednosti i nedostaci
PREDNOSTI
* Za komunikaciju su potrebne samo dvije autobusne linije (žice)
* Jednostavan odnos master/slave postoji između svih komponenti
* Nema strogih zahtjeva brzine prijenosa, na primjer kod RS232, master generira sabirnički sat
* Hardver je manje kompliciran od UART -a
* Podržava više gospodara i više robova
* ACK/NACK bit daje potvrdu da je svaki kadar uspješno prenesen
* I2C je 'prava multi-master sabirnica' koja pruža arbitražu i detekciju sudara
* Svaki uređaj spojen na sabirnicu softverski se može adresirati jedinstvenom adresom
* Većina I2C uređaja može komunicirati na 100kHz ili 400kHz
* I²C je prikladan za periferne uređaje gdje su jednostavnost i niski troškovi proizvodnje važniji od brzine
* Dobro poznati i široko korišteni protokol
NEDOSTACI
* Sporija brzina prijenosa podataka od SPI -a
* Veličina okvira podataka ograničena je na 8 bita
* Za implementaciju je potreban složeniji hardver od SPI tehnologije
Preporučeni:
Kako koristiti RFID-RC522 modul s Arduinom: 5 koraka
Kako koristiti RFID-RC522 modul s Arduinom: U ovom uputstvu ću proći kroz temeljno načelo rada RFID modula, zajedno s njegovim oznakama i čipovima. Također ću dati kratak primjer projekta koji sam napravio koristeći ovaj RFID modul s RGB LED. Kao i obično s mojim Insima
Slanje SMS poruka s Arduinom -- TC35 GSM modul: 5 koraka
Slanje SMS poruka s Arduinom || TC35 GSM modul: U ovom malom projektu pokazat ću vam kako pravilno koristiti GSM modul TC35 i kako ga koristiti s Arduino Uno za slanje SMS -a s njim
Kako koristiti MP3 modul DFMini playera s Arduinom: 4 koraka
Kako koristiti MP3 modul DFMini playera s Arduinom: Nekoliko projekata zahtijeva reprodukciju zvuka za dodavanje neke vrste funkcionalnosti. Među tim projektima ističemo: pristupačnost za osobe s oštećenjem vida, MP3 glazbene playere i izvođenje glasovnih zvukova od strane robota, na primjer. U svim tim
Vodič: Kako Arduino kontrolira više uređaja iste adrese pomoću TCA9548A I2C multipleksera: 3 koraka
Vodič: Kako Arduino kontrolira više uređaja iste adrese korištenjem TCA9548A I2C multipleksera: Opis: TCA9548A I2C multipleksorski modul omogućuje povezivanje uređaja s istom I2C adresom (do 8 istih adresa I2C) spojenih na jedan mikrokontroler. Multiplekser djeluje kao čuvar vrata, preusmjeravajući naredbe na odabrani skup o
I2C / IIC LCD zaslon - Upotrijebite SPI LCD za I2C LCD zaslon Korištenje SPI do IIC modula s Arduinom: 5 koraka
I2C / IIC LCD zaslon | Upotrijebite SPI LCD na I2C LCD zaslonu Korištenje SPI na IIC modula s Arduinom: Zdravo dečki, budući da normalni SPI LCD 1602 ima previše žica za povezivanje pa je vrlo teško povezati ga s arduinom, ali na tržištu postoji jedan modul koji može pretvoriti SPI zaslon u IIC zaslon pa morate spojiti samo 4 žice