Kuidas ühendada TCA2A I9548C multiplekserit Arduinoga

  • TCA9548A võimaldab ühe siiniga ühendada kuni 8 I2C seadet.
  • Seda saab hõlpsasti juhtida I2C sisendsiini kaudu ja valida kanali.
  • See toetab erinevaid pingetasemeid, muutes selle mitmekülgseks paljude projektide jaoks.
  • See sobib ideaalselt fikseeritud või korduvate I2C-aadressidega seadmete haldamiseks.

I2C suhtlus Arduinoga

Tänapäeval on I2C-suhtlus muutunud üheks enim kasutatavaks meetodiks mitme seadme ühendamiseks sellise mikrokontrolleriga nagu Arduino. Tema TCA9548A on 2-kanaliline I8C siini laiendaja, mis lahendab seda tüüpi ühenduste puhul ühe levinuima probleemi: I2C aadressikonflikti. See artikkel aitab teil mõista, kuidas see laiendaja töötab ja kuidas saate seda oma Arduino projektidesse integreerida.

Kui olete kunagi kohanud seadmeid, mis jagavad I2C siinis sama aadressi, siis teate, kui masendav võib nendega konflikte tekitamata suhelda. Kasutades TCA9548A, saame neid probleeme vältida ja laiendada ühe I2C siiniga ühendatud seadmete arvu. Uurime üksikasjalikult selle multiplekseri pakutavaid võimalusi.

Mis on TCA9548A?

El TCA9548A on 2-kanaliline I8C siini pikendaja, mis on välja töötatud spetsiaalselt selliste seadmete jaoks nagu Arduino. Selle põhifunktsioon on võimaldada mitme siini ühendamist ühe I2C siiniga, mis muudab selle mitme seadmega side tõhusa haldamise põhielemendiks. Seda võiks võrrelda isegi multiplekseriga, kuid see on loodud spetsiaalselt I2C suhtluseks.

Sellel seadmel on I2C siini sisend, mis koosneb kahest liinist, SDA (andmed) ja SCL (kell), mis on ühendatud 8 sõltumatu väljundiga, millest igaühel on vastavad SDA ja SCL. See võimaldab mikrokontroller suhtleb kuni 8 seadmega, valides, kellega igal hetkel suhelda.

Lisaks on tavaline TCA9548A kasutamine sama I2C-aadressi jagavate seadmete haldamiseks, mis on teatud anduritel ja kuvaritel tavaline, mis ei võimalda aadressi muuta. Selle multiplekseriga saate aktiveerida ühe kanali ja suhelda ühe seadmega teisi kanaleid segamata.

Eelised ja esiletõstmised

Kõige olulisemate eeliste hulgas TCA9548A Võimalus on töötada erineva pingetasemega I2C siinidega, ilma et oleks vaja kasutada loogikaadaptereid. See võimaldab side 1.8V, 2.5V, 3.3V ja 5V töötavate seadmetega, mis avardab integratsioonivõimalusi erinevates projektides.

Teine oluline omadus on see, et multiplekserit saab juhtida otse I2C sisendsiinilt, mis teeb selle mikrokontrollerist kasutamise väga lihtsaks. Selle tööpinge on vahemikus 1.65 V kuni 5.5 V ja see toetab I2C siine sagedustega kuni 400 kHz, mistõttu sobib see erinevatele seadmetele.

Ühendus ja konfiguratsioon

tca9548a

TCA9548A ühendamine on üsna lihtne. Arduino SDA ja SCL liinidega tuleb ühendada ainult sisendsiin koos vastavate toiteviigudega (näiteks GND ja 5V). Teises otsas saate ühendada kuni 8 I2C-seadet, igaüks oma vastavatel kanalitel SDA ja SCL-iga.

Huvitav funktsioon on see, et saate muuta TCA2A I9548C-aadressi 0x70-lt 0x77-ks, kasutades kontakte A0, A1 ja A2. See on kasulik, kui peate ühes projektis kasutama rohkem kui ühte multiplekserit. Samuti, kui teil on mingil põhjusel vaja multiplekseri lähtestada, saate seda teha, määrates RST viik LOW, mis on vaikimisi seatud ülestõmbamisele.

Kindlasti tuleb meeles pidada, et kaablite pikkuse või ühendatud seadmete keerukuse kasvades võib osutuda vajalikuks tõmbetakistite lisamine, et tagada andmete korrektne edastamine I2C siinil.

Koodinäide I2C-seadmete skannimiseks

Enne seadmega ühendatud seadmetega suhtlemist TCA9548A, on esmalt oluline tagada, et multiplekser tuvastatakse õigesti. Selleks saate I2C siini skannida. Allpool näitame põhinäidet multiplekseri enda tuvastamiseks siinil.

#include "Wire.h"

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Escaneando bus I2C...");

  for (byte address = 8; address <= 119; address++) {
    Wire.beginTransmission(address);
    byte error = Wire.endTransmission();

    if (error == 0) {
      Serial.print("Encontrado dispositivo en dirección 0x");
      Serial.println(address, HEX);
    }
  }
  Serial.println("Escaneo finalizado");
}

void loop() {
  delay(1000);
}

Ülaltoodud kood skannib võimalikke I2C siini aadresse, otsides TCA9548A või muid ühendatud seadmeid. Kui multiplekser on tuvastatud, saate jätkata aktiveeritava kanali valimisega.

TCA9548A kanali valimine

Kui multiplekser on konfigureeritud ja tuvastatud, peame soovitud seadmega suhtlemiseks valima õige kanali. Seda saab hõlpsasti teha, kirjutades konkreetse kanali aktiveeriva baidi. Siin on näide kanali valimisest.

#define TCAADDR 0x70

void tcaselect(uint8_t i) {
  if (i > 7) return;
  Wire.beginTransmission(TCAADDR);
  Wire.write(1 << i);
  Wire.endTransmission();
}

void setup() {
  Wire.begin();
  Serial.begin(115200);
  for (uint8_t t=0; t<8; t++) {
    tcaselect(t);
    Serial.print("Escaneando salida ");
    Serial.println(t);
  }
}

Selle koodi abil saate valida mis tahes seadmega ühendatud seadme ja nendega suhelda TCA9548A, ükshaaval. Pidage meeles, et saate koodi muuta ka iga kanali väljundite skannimiseks, otsides lisaseadmeid.

El TCA9548A on suurepärane tööriist I2C siini võimaluste laiendamiseks teie Arduino projektides, võimaldades teil tõhusal ja lihtsal viisil ühendada mitu sama aadressi või erineva pingetasemega seadet.


Ole esimene kommentaar

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.