Sadržaj:
- Korak 1: Hardverski zahtjevi
- Korak 2: Obrađene teme
- Korak 3: Osnove I2C sabirnice
- Korak 4: TCA9548A I2C Multiplekser modul
- Korak 5:
- 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 - sa Arduinom i NodeMCU: 11 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
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. Štaviše, ne možete imati dva uređaja sa 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 biste ih natjerali da međusobno razgovaraju na istoj sabirnici! TCA9548A Breakout omogućava komunikaciju s više I2C uređaja koji imaju istu adresu, što olakšava povezivanje s njima.
Korak 1: Hardverski zahtjevi
Za ovaj vodič potrebni su nam:
- Oglasna ploča
Registarski broj - TCA9548A I2C multiplekser
- Arduino Uno/Nano sve što vam je pri ruci
- NodeMCU
- Nekoliko I91C OLED ekrana od 0,91 i 0,96
- Kablovi za spajanje, 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 koristeći Arduino i NodeMCU Zatim ću vam pokazati brzo demo pomoću 8 I2C OLED ekrana i na kraju ćemo završiti vodič raspravljajući o prednostima i nedostacima TCA9548A multipleksera
Korak 3: Osnove I2C sabirnice
Međuintegrirano kolo izraženo 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 (linija podataka) i
* SCL - Serijski sat (linija sata)
Upamtite, obje ove linije su "sinkrone" "dvosmjerne" "otvorene odvodnje" i "povučene prema otpornicima".
Tehnologiju sabirnice I2C originalno je dizajnirao 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 - slave čvor šalje podatke na master
* Slave Receive - slave čvor prima podatke od master -a
I2C je "protokol serijske komunikacije" na kratkim udaljenostima, pa se podaci prenose "bit-by-bit" duž jedne žice ili SDA linije. Izlaz bitova sinhroniziran je s uzorkovanjem bitova pomoću takta koji se 'dijeli' između master -a i slave -a. Signalom sata uvijek upravlja master. Master generira sat i započinje komunikaciju sa slave uređajima.
Dakle, da rezimiramo>
Broj upotrijebljenih žica: 2
Sinhrono ili asinhrono: Sinhrono
Serijski ili paralelni: serijski
Signal sata kontrolira: Glavni čvor
Upotrijebljeni naponi: +5 V ili +3.3 V
Maksimalan broj majstora: Neograničeno
Maksimalan broj podređenih: 1008
Maksimalna brzina: Standardni način = 100kbps
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 pomoću jedne host I2C sabirnice. Potrebno je samo spojiti I2C senzore na SCn / SDn multipleksne sabirnice. Na primjer, ako je u aplikaciji potrebno osam identičnih OLED ekrana, po jedan od svakog ekrana može se povezati na svaki od ovih kanala: 0-7.
Multiplekser se povezuje 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 preko 10K pull-up otpornika (Veličina pull-up otpornika je određena količinom kapacitivnosti na I2C vodovima). Multiplekser podržava i normalne (100 kHz) i brze (400 kHz) I2C protokole. Svi I/O pinovi TCA9548A tolerantni su na 5 volti i mogu se koristiti i za prevođenje s visokog na niski ili niskog na visoki napon.
Bilo bi dobro postaviti pull-up otpornike na sve kanale TCA9548A, čak i ako su naponi isti. Razlog tome je interni 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.
Korak 5:
TCA9548 omogućava jednom mikrokontroleru da komunicira sa do '64 senzora 'sa istom ili različitom I2C adresom dodjeljujući jedinstveni kanal svakoj pod-sabirnici senzora.
Kada govorimo o slanju podataka putem 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 jednim putem 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 I2C adresaranih dijelova. Spajanjem tri bita adrese A0, A1 i A2 na VIN možete dobiti različite kombinacije adresa. Ovako izgleda bajt adrese TCA9548A. Prvih 7 bitova se zajedno formiraju slave adresa. Posljednji bit adrese slave definira operaciju (čitanje ili pisanje) koju treba izvesti. Kad je visoko (1), odabire se čitanje, a nisko (0) odabire operaciju pisanja.
Korak 6: Kako master šalje i prima podatke
Slijedi opća procedura za master pristup slave uređaju:
1. Ako master želi poslati podatke podređenom uređaju (NAPIŠE):
-Master-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 STOP uvjetom
2. Ako master želi primiti ili pročitati podatke od podređenog (READS):
-Master-prijemnik šalje START uvjet nakon čega slijede adrese slave-prijemnika i R/W postavljeno na 1
-Master-prijemnik šalje traženi registar za očitavanje slave-odašiljaču
-Master-prijemnik prima podatke od slave-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
Sabirnica se smatra neaktivnom ako su i SDA i SCL linije visoke nakon stanja STOP.
Korak 7: Kodirajte
Sada, Int kod omogućava početak uključivanjem "Wire" biblioteke i definiranjem adrese multipleksera.
#include "Wire.h"
#include "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 ekran 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ženu šifru '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 povezivanjem multipleksera na NodeMCU ploču. Povežite se:
VIN do 5V (ili 3.3V)
GND na masu
SDA na D2 i
Pinovi SCL na D1
Za Arduino ploču povežite:
VIN do 5V (ili 3.3V)
GND na masu
SDA do A4 i
Igle SCL na A5
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 ekrana na TCA9548A multiplekser. Kako ovi ekrani koriste I2C komunikaciju, komuniciraju s Arduinom koristeći samo 2 pina.
Korak 10: Prednosti i nedostaci
PREDNOSTI
* Za komunikaciju su potrebne samo dvije sabirničke linije (žice)
* Jednostavan odnos master/slave postoji između svih komponenti
* Nema strogih zahtjeva za brzinom prijenosa, na primjer na RS232, master generira sabirnički sat
* Hardver je manje komplikovan od UART -a
* Podržava više master -a i više slave -a
* ACK/NACK bit daje potvrdu da je svaki kadar uspješno prenesen
* I2C je 'prava multi-master magistrala' 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 poznat i široko korišten protokol
NEDOSTACI
* Sporija brzina prijenosa podataka od SPI
* Veličina okvira podataka ograničena je na 8 bita
* Za implementaciju je potreban složeniji hardver od SPI tehnologije
Preporučuje se:
Kako koristiti RFID-RC522 modul s Arduinom: 5 koraka
Kako se koristi RFID-RC522 modul sa Arduinom: U ovom uputstvu ću proći kroz osnovni princip rada RFID modula, zajedno sa njegovim oznakama i čipovima. Takođe ću dati kratak primjer projekta koji sam napravio koristeći ovaj RFID modul sa RGB LED. Kao i obično sa mojim Insima
Slanje SMS -a s Arduinom -- TC35 GSM modul: 5 koraka
Slanje SMS -a s Arduinom || TC35 GSM modul: U ovom malom projektu pokazat ću vam kako pravilno koristiti TC35 GSM modul 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 DFMini Player MP3 modul s Arduinom: Nekoliko projekata zahtijeva reprodukciju zvuka kako bi se dodala neka vrsta funkcionalnosti. Među tim projektima izdvajamo: pristupačnost za osobe sa oštećenim vidom, MP3 muzičke plejere 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 pomoću TCA9548A I2C multipleksera: Opis: Modul TCA9548A I2C multipleksera omogućava 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 ekran - Upotreba SPI LCD -a za I2C LCD ekran Korištenje SPI do IIC modula s Arduinom: 5 koraka
I2C / IIC LCD ekran | Upotrijebite SPI LCD na I2C LCD zaslonu Korištenje SPI na IIC modula s Arduinom: Zdravo momci, 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 pretvorite SPI zaslon u IIC zaslon pa morate spojiti samo 4 žice