Orodha ya maudhui:

Moduli ya TCA9548A I2C Multiplexer - Na Arduino na NodeMCU: Hatua 11
Moduli ya TCA9548A I2C Multiplexer - Na Arduino na NodeMCU: Hatua 11

Video: Moduli ya TCA9548A I2C Multiplexer - Na Arduino na NodeMCU: Hatua 11

Video: Moduli ya TCA9548A I2C Multiplexer - Na Arduino na NodeMCU: Hatua 11
Video: Установщик адресов Flash-i2c 2024, Novemba
Anonim
Image
Image

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

Mada Zilizofunikwa
Mada Zilizofunikwa

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

Misingi ya Basi ya I2C
Misingi ya Basi ya I2C
Misingi ya Basi ya I2C
Misingi ya Basi ya I2C
Misingi ya Basi ya I2C
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

Moduli ya TCA9548A I2C Multiplexer
Moduli ya TCA9548A I2C Multiplexer
Moduli ya TCA9548A I2C Multiplexer
Moduli ya TCA9548A I2C Multiplexer
Moduli ya TCA9548A I2C Multiplexer
Moduli ya TCA9548A I2C Multiplexer

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:

Picha
Picha
Picha
Picha
Picha
Picha

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

Jinsi Mwalimu Anatuma & Kupokea Takwimu
Jinsi Mwalimu Anatuma & Kupokea Takwimu
Jinsi Mwalimu Anatuma & Kupokea Takwimu
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

Kanuni
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

Scanner ya I2C
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 na Demo
Wiring na Demo
Wiring na Demo
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 na hasara
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: