Orodha ya maudhui:
- Hatua ya 1: Mahitaji ya vifaa
- Hatua ya 2: Mada Zilizofunikwa
- Hatua ya 3: Misingi ya Basi ya I2C
- Hatua ya 4: TCA9548A I2C Multiplexer Module
- Hatua ya 5:
- Hatua ya 6: Jinsi Mwalimu Anatuma & Kupokea Takwimu
- Hatua ya 7: Kanuni
- Hatua ya 8: Scanner ya I2C
- Hatua ya 9: Wiring na Demo
- Hatua ya 10: Faida na hasara
- Hatua ya 11: Asante
Video: Moduli ya TCA9548A I2C Multiplexer - Na Arduino na NodeMCU: Hatua 11
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:53
Je! Umewahi kuingia katika hali ambayo ilibidi uweke waya kwa sensorer mbili, tatu au zaidi za I2C kwa Arduino yako tu ili kugundua kuwa sensorer zina anwani ya I2C iliyowekwa sawa au ile ile. Kwa kuongeza, huwezi kuwa na vifaa viwili vilivyo na anwani sawa kwenye pini sawa za SDA / SCL!
Kwa hivyo, ni nini chaguzi zako? Weka zote kwenye TCA9548A 1-to-8 I2C multiplexer ili wote wazungumze kwa kila mmoja kwenye basi moja! Kuzuka kwa TCA9548A kunawezesha mawasiliano na vifaa vingi vya I2C ambavyo vina anwani sawa na kuifanya iwe rahisi kuunganishwa nazo.
Hatua ya 1: Mahitaji ya vifaa
Kwa mafunzo haya tunahitaji:
- Bodi ya mkate
- TCA9548A I2C Multiplexer
- Arduino Uno / Nano chochote kinachofaa
- NodeMCU
- Wachache 0.91 & 0.96 Maonyesho ya O2 O2
- Chuma za Jumper, na
- Cable ya USB kupakia nambari
Hatua ya 2: Mada Zilizofunikwa
Tutaanza majadiliano yetu kwa kuelewa misingi ya teknolojia ya I2C
Kisha tutajifunza juu ya Multiplexer ya TCA9548A na jinsi bwana na mtumwa hutuma na kupokea data kwa kutumia teknolojia ya I2C Kisha tutaangalia jinsi tunaweza kupanga na kutumia multiplexer katika mradi wetu kwa kutumia Arduino na NodeMCU Ifuatayo, nitakuonyesha haraka onyesho kutumia 8 I2C OLED maonyesho na mwishowe tutamaliza mafunzo kwa kujadili faida na hasara za TCA9548A Multiplexer
Hatua ya 3: Misingi ya Basi ya I2C
Mzunguko uliounganishwa uliotamkwa I-squared-C (I²C) au I2C ni teknolojia mbili ya basi ya waya (vizuri waya 4 kwa sababu unahitaji VCC na Ground) ambayo hutumiwa kwa mawasiliano kati ya wasindikaji na sensorer nyingi.
Waya mbili ni:
* SDA - Serial Data (data line) na
* SCL - Serial Clock (saa ya saa)
Kumbuka, mistari hii yote ni "synchronous" "bidirectional" 'open-drain' na ni 'vuta-up na vipinga'.
Teknolojia ya basi ya I2C hapo awali ilibuniwa na Philips Semiconductors mwanzoni mwa miaka ya 80 ili kuruhusu mawasiliano rahisi kati ya vifaa ambavyo vinaishi kwenye bodi moja ya mzunguko.
Ukiwa na I2C, unaweza kuunganisha watumwa wengi kwa bwana mmoja (kama SPI) au unaweza kuwa na mabwana wengi wakidhibiti watumwa mmoja, au watumwa wengi. Wote mabwana na watumwa wanaweza kusambaza na kupokea data. Kwa hivyo, kifaa kwenye basi ya I2C kinaweza kuwa katika moja ya majimbo haya manne:
* Master transmit - node kuu inatuma data kwa mtumwa * Master receive - master node inapokea data kutoka kwa mtumwa
* Kusambaza mtumwa - node ya mtumwa inatuma data kwa bwana
* Pokea mtumwa - node ya mtumwa inapokea data kutoka kwa bwana
I2C ni 'umbali mfupi' 'itifaki ya mawasiliano ya serial', kwa hivyo data huhamishwa 'kidogo-kwa-kidogo' kwenye waya moja au laini ya SDA. Pato la bits limesawazishwa na sampuli ya bits na ishara ya saa 'iliyoshirikiwa' kati ya bwana na mtumwa. Ishara ya saa hudhibitiwa kila wakati na bwana. Mwalimu hutengeneza saa na anaanzisha mawasiliano na watumwa.
Kwa hivyo, kuijumlisha>
Idadi ya waya zilizotumiwa: 2
Synchronous au Asynchronous: Sawa
Serial au Sambamba: Serial
Ishara ya Saa inayodhibitiwa na: Master Node
Voltages kutumika: +5 V au +3.3 V
Idadi kubwa ya Masters: Unlimited
Idadi kubwa ya Watumwa: 1008
Kasi ya juu: Njia ya kawaida = 100kbps
Njia ya Haraka = 400kbps
Njia ya kasi ya juu = 3.4 Mbps
Njia ya haraka ya Ultra = 5 Mbps
Hatua ya 4: TCA9548A I2C Multiplexer Module
TCA9548A ni njia-nane (bidirectional) I2C multiplexer ambayo inaruhusu vifaa nane tofauti vya I2C kudhibitiwa na basi moja ya mwenyeji I2C. Unahitaji tu waya wa sensorer za I2C kwenye mabasi ya multiplexed ya SCn / SDn. Kwa mfano, ikiwa maonyesho nane ya OLED yanahitajika katika programu, moja ya onyesho linaweza kuunganishwa kwenye kila moja ya vituo hivi: 0-7.
Multiplexer inaunganisha kwa VIN, GND, SDA na mistari ya SCL ya mdhibiti mdogo. Bodi ya kuzuka inakubali VIN kutoka 1.65v hadi 5.5v. Mistari miwili ya kuingiza SDA na SCL imeunganishwa na VCC kupitia kontena la kuvuta-10K (Ukubwa wa kontena la kuvuta-imedhamiriwa na kiwango cha uwezo kwenye laini za I2C). Multiplexer inasaidia wote wa kawaida (100 kHz) na itifaki haraka (400 kHz) I2C. Pini zote za I / O za TCA9548A zina uvumilivu wa volt 5 na pia zinaweza kutumiwa kutafsiri kutoka juu hadi chini au chini hadi voltages kubwa.
Ni wazo nzuri kuweka vipinga-vuta kwenye vituo vyote vya TCA9548A, hata kama voltages ni sawa. Sababu ya hii ni kwa sababu ya ubadilishaji wa ndani wa NMOS. Haipitishi voltage kubwa vizuri sana, kwa upande mwingine inasambaza voltages za chini vizuri sana. TCA9548A pia inaweza kutumika kwa Tafsiri ya Voltage, ikiruhusu matumizi ya voltages tofauti za basi kwenye kila jozi ya SCn / SDn kama vile 1.8-V, 2.5-V, au 3.3-V sehemu zinaweza kuwasiliana na sehemu za 5-V. Hii inafanikiwa kwa kutumia vizuizi vya nje vya kuvuta ili kuvuta basi hadi voltage inayotakiwa kwa bwana na kila mtumwa.
Ikiwa mdhibiti mdogo atagundua mzozo wa basi au operesheni nyingine isiyofaa TCA9548A inaweza kuweka upya kupitia kusisitiza chini kwa pini ya RESET.
Hatua ya 5:
TCA9548 inaruhusu mdhibiti mmoja mdogo kuwasiliana na hadi sensorer '64 'zote zilizo na anwani sawa au tofauti ya I2C kwa kupeana kituo cha kipekee kwa kila basi ndogo ya mtumwa.
Tunapozungumza juu ya kutuma data zaidi ya waya 2 kwa vifaa anuwai basi tunahitaji njia ya kuyashughulikia. Ni sawa na yule tarishi anayekuja kwenye barabara moja na kuacha pakiti za barua kwa nyumba tofauti kwa sababu zina anwani tofauti zilizoandikwa.
Unaweza kuwa na max 8 ya hizi multiplexers zilizounganishwa pamoja kwenye anwani 0x70-0x77 ili kudhibiti 64 ya sehemu zile zile za I2C. Kwa kuunganisha bits tatu za anwani A0, A1 na A2 na VIN unaweza kupata mchanganyiko tofauti wa anwani. Hivi ndivyo anwani ya anwani ya TCA9548A inavyoonekana. Biti 7 za kwanza zinachanganya kuunda anwani ya mtumwa. Sehemu ndogo ya anwani ya mtumwa inafafanua operesheni (soma au andika) itakayofanyika. Wakati iko juu (1), kusoma kunachaguliwa, wakati chini (0) huchagua shughuli ya kuandika.
Hatua ya 6: Jinsi Mwalimu Anatuma & Kupokea Takwimu
Ifuatayo ni utaratibu wa jumla wa bwana kupata kifaa cha mtumwa:
1. Ikiwa bwana anataka kutuma data kwa mtumwa (WRITES):
- Master-transmitter hutuma hali ya ANZA ikifuatiwa na anwani za mpokeaji wa watumwa na R / W imewekwa kwa 0
- Master-transmitter hutuma data katika 'rejista za kudhibiti-bit-8' kwa mpokeaji wa mtumwa wakati mtumwa anakubali kuwa iko tayari
- Master-transmitter hukomesha uhamishaji na hali ya STOP
2. Ikiwa bwana anataka kupokea au kusoma data kutoka kwa mtumwa (READS):
- Mpokeaji-Mkuu anatuma hali ya ANZA ikifuatiwa na anwani za mpokeaji wa watumwa na R / W imewekwa kwa 1
- Mpokeaji-Mkuu hutuma rejista iliyoombwa kusoma kwa mtumwa-mtumwa
- Mpokeaji-Mkuu anapokea data kutoka kwa mtumwa-mtumwa
- Mara tu ka zote zinapopokelewa Mwalimu hutuma ishara ya NACK kwa mtumwa ili kusimamisha mawasiliano na kutolewa basi
- Mpokeaji-Mwalimu hukomesha uhamishaji na hali ya STOP
Basi inachukuliwa kuwa wavivu ikiwa mistari yote ya SDA na SCL iko juu baada ya hali ya STOP.
Hatua ya 7: Kanuni
Sasa, Int kificho inakuanza kwa kujumuisha maktaba ya "Waya" na kwa kufafanua anwani ya multiplexers.
# pamoja na "Wire.h"
# pamoja na "U8glib.h"
#fafanua MUX_Adress 0x70 // TCA9548A Anwani ya Encoders
Kisha tunahitaji kuchagua bandari tunayotaka kuwasiliana nayo na kutuma data juu yake kwa kutumia kazi hii:
chagua batiliI2CChannel (uint8_t i) {
ikiwa (i> 7) kurudi;
Uwasilishaji wa waya (MUX_Adress);
Andika waya (1 << i);
Uwasilishaji wa waya ();
}
Ifuatayo tutaanzisha onyesho katika sehemu ya usanidi kwa kupiga simu "u8g.begin ();" kwa kila onyesho lililoshikamana na MUX "tcaselect (i);"
Baada ya kuanza, tunaweza kisha kufanya chochote tunachotaka kwa kupiga kazi "tcaselect (i);" ambapo "i" ni thamani ya basi yenye mseto na kisha kutuma data na saa ipasavyo.
Hatua ya 8: Scanner ya I2C
Ikiwezekana ikiwa hauna uhakika juu ya anwani ya kifaa cha ngao yako ya I2C, kisha tumia nambari iliyoambatishwa ya 'I2C Scanner' ili upate anwani ya hex ya kifaa chako. Wakati wa kubeba Arduino, mchoro utachunguza mtandao wa I2C, ukionyesha anwani ambazo zinajibu.
Hatua ya 9: Wiring na Demo
Wiring:
Hebu tuanze kwa kuunganisha multiplexer kwenye bodi ya NodeMCU. Unganisha:
VIN hadi 5V (au 3.3V)
GND chini
SDA hadi D2 na
SCL hadi pini za D1 mtawaliwa
Kwa bodi ya Arduino unganisha:
VIN hadi 5V (au 3.3V)
GND chini
SDA hadi A4 na
SCL hadi pini A5 mtawaliwa
Mara MUX inapounganishwa na mdhibiti mdogo, unahitaji tu kuunganisha sensorer kwa jozi za SCn / SDn.
Sasa, hebu angalia onyesho hili la haraka ambalo nimeunganisha maonyesho 8 ya OLED kwa TCA9548A Multiplexer. Kama maonyesho haya yanatumia mawasiliano ya I2C, yanawasiliana na Arduino kwa kutumia pini 2 tu.
Hatua ya 10: Faida na hasara
FAIDA
* Mawasiliano inahitaji laini mbili tu za basi (waya)
* Urafiki rahisi wa bwana / mtumwa upo kati ya vifaa vyote
* Hakuna mahitaji kali ya kiwango cha baud kama kwa mfano na RS232, bwana hutengeneza saa ya basi
* Vifaa ni ngumu kuliko UART
* Inasaidia mabwana wengi na watumwa wengi
* Kidogo cha ACK / NACK kinathibitisha kuwa kila fremu imehamishwa vyema
* I2C ni basi ya kweli ya mabwana wengi inayotoa usuluhishi na kugundua mgongano
* Kila kifaa kilichounganishwa na basi kinaweza kushughulikiwa na programu na anwani ya kipekee
* Vifaa vingi vya I2C vinaweza kuwasiliana kwa 100kHz au 400kHz
* I²C inafaa kwa pembeni ambapo unyenyekevu na gharama ya chini ya utengenezaji ni muhimu zaidi kuliko kasi
* Itifaki inayojulikana na inayotumiwa sana
HASARA
* Kiwango cha polepole cha kuhamisha data kuliko SPI
* Ukubwa wa sura ya data ni mdogo kwa bits 8
* Vifaa ngumu zaidi vinahitajika kutekeleza kuliko teknolojia ya SPI
Ilipendekeza:
Mafunzo: Jinsi Arduino Inadhibiti Vifaa Vingi vya Anwani kwa Kutumia TCA9548A I2C Multiplexer: Hatua 3
Mafunzo: Jinsi Arduino Inavyodhibiti Vifaa Vingi vya Anwani kwa Kutumia TCA9548A I2C Multiplexer: Maelezo: Moduli ya TCA9548A I2C Multiplexer ni kuwezesha kuunganisha vifaa na anwani hiyo hiyo ya I2C (hadi anwani 8 hiyo hiyo I2C) iliyounganishwa hadi kwa microcontroller moja. Multiplexer hufanya kama mlinda lango, akifunga amri kwa seti iliyochaguliwa o
Uonyesho wa LCD wa I2C / IIC - Tumia LCD ya SPI kwa Uonyesho wa LCD wa I2C Kutumia SPI kwa Moduli ya IIC Na Arduino: Hatua 5
Uonyesho wa LCD wa I2C / IIC | Tumia LCD ya SPI kwa Uonyesho wa LCD wa I2C Kutumia SPI kwa Moduli ya IIC Pamoja na Arduino: Halo jamani kwani kawaida SPI LCD 1602 ina waya nyingi sana kuungana kwa hivyo ni ngumu sana kuiunganisha na arduino lakini kuna moduli moja inayopatikana sokoni ambayo inaweza badilisha onyesho la SPI kuwa onyesho la IIC kwa hivyo basi unahitaji kuunganisha waya 4 tu
Moduli ya RF 433MHZ - Fanya Mpokeaji na Mpelekaji Kutoka kwa Moduli ya RF ya 433MHZ Bila Microcontroller Yoyote: Hatua 5
Moduli ya RF 433MHZ | Fanya Mpokeaji na Mpitishaji Kutoka kwa Moduli ya RF ya 433MHZ Bila Microcontroller Yoyote: Je! Ungependa kutuma data isiyo na waya? kwa urahisi na bila microcontroller inahitajika? Hapa tunakwenda, katika hii inayoweza kufundishwa nitakuonyesha mi transmitter ya msingi ya rf na mpokeaji tayari kutumika
Mafunzo ya Moduli ya E32-433T - Bodi ya kuzuka kwa DIY ya Moduli ya E32: Hatua 6
Mafunzo ya Moduli ya E32-433T | Bodi ya kuzuka kwa DIY ya Moduli ya E32: Haya, kuna nini, Jamani! Mradi wangu huu ni zaidi ya eneo la kujifunza kuelewa kazi ya moduli ya E32 LoRa kutoka eByte ambayo ni moduli ya transceiver ya nguvu ya 1-watt. Mara tu tutakapofahamu kazi, nina muundo
Moduli ya Kupitisha Moduli ya 5V Kufanya Kazi na Raspberry Pi: Hatua 4
Moduli ya Kupitisha Moduli ya 5V Kufanya Kazi na Raspberry Pi: Ni rahisi sana siku hizi kupata mikono yako kwenye bodi ya kupokezana lakini utagundua haraka kuwa nyingi zao zimetengenezwa kwa 5V ambayo inaweza kuwa shida kwa pi duni ya rasipiberi au nyingine yoyote. mdhibiti mdogo anayeendesha 3.3V, hawana volta tu