Kā savienot TCA2A I9548C multipleksoru ar Arduino

  • TCA9548A ļauj vienai kopnei pievienot līdz pat 8 I2C ierīcēm.
  • To var viegli vadīt, izmantojot I2C ievades kopni, un atlasīt kanālu.
  • Tā atbalsta dažādus sprieguma līmeņus, padarot to daudzpusīgu daudziem projektiem.
  • Tas ir ideāli piemērots, lai pārvaldītu ierīces ar fiksētām vai atkārtotām I2C adresēm.

I2C komunikācija ar Arduino

Mūsdienās I2C komunikācija ir kļuvusi par vienu no visbiežāk izmantotajām metodēm vairāku ierīču savienošanai ar mikrokontrolleru, piemēram, Arduino. Viņš TCA9548A ir 2 kanālu I8C kopnes paplašinātājs, kas atrisina vienu no visbiežāk sastopamajām šāda veida savienojumu problēmām: I2C adrešu konfliktu. Šis raksts palīdzēs jums saprast, kā darbojas šis paplašinātājs un kā jūs varat to integrēt savos Arduino projektos.

Ja kādreiz esat saskāries ar ierīcēm, kurām ir viena un tā pati adrese I2C kopnē, jūs zināt, cik apgrūtinoši var būt mēģinājumi sazināties ar tām, neizraisot konfliktus. Izmantojot TCA9548A, mēs varam izvairīties no šīm problēmām un paplašināt vienai I2C kopnei pievienoto ierīču skaitu. Sīkāk izpētīsim šī multipleksora piedāvātās iespējas.

Kas ir TCA9548A?

El TCA9548A ir 2 kanālu I8C kopnes paplašinātājs, kas īpaši izstrādāts tādām ierīcēm kā Arduino. Tās galvenā funkcija ir ļaut savienot vairākas kopnes ar vienu I2C kopni, kas padara to par pamatelementu, lai efektīvi pārvaldītu komunikāciju ar vairākām ierīcēm. To varētu pat salīdzināt ar multipleksoru, taču tas ir īpaši izstrādāts I2C komunikācijai.

Šai ierīcei ir I2C kopnes ieeja, kas sastāv no divām līnijām, SDA (dati) un SCL (pulkstenis), kas savienotas ar 8 neatkarīgām izejām, katrai no kurām ir atbilstoša SDA un SCL. Tas ļauj mikrokontrolleris sazinās ar līdz pat 8 ierīcēm, izvēloties, ar kuru sazināties katrā brīdī.

Turklāt parasti tiek izmantots TCA9548A, lai pārvaldītu ierīces, kurām ir viena un tā pati I2C adrese, kas ir kopīgs dažos sensoros un displejos, kas neļauj mainīt to adresi. Izmantojot šo multipleksoru, varat aktivizēt vienu kanālu un sazināties ar vienu ierīci, netraucējot citiem kanāliem.

Ieguvumi un svarīgākie aspekti

Viens no svarīgākajiem ieguvumiem no TCA9548A Ir iespēja strādāt ar dažādu sprieguma līmeņu I2C kopnēm bez nepieciešamības izmantot loģiskos adapterus. Tas ļauj komunikācija ar ierīcēm, kas darbojas pie 1.8 V, 2.5 V, 3.3 V un 5 V, kas paplašina integrācijas iespējas dažādos projektos.

Vēl viena svarīga iezīme ir tā, ka multipleksoru var vadīt tieši no I2C ievades kopnes, padarot to ļoti vienkāršu darbību no mikrokontrollera. Tā darba spriegums svārstās no 1.65 V līdz 5.5 V, un tas atbalsta I2C kopnes ar frekvencēm līdz 400 kHz, padarot to piemērotu dažādām ierīcēm.

Savienojums un konfigurācija

tca9548a

TCA9548A pievienošana ir diezgan vienkārša. Jums tikai jāpievieno ievades kopne ar Arduino SDA un SCL līnijām kopā ar atbilstošajām barošanas tapām (piemēram, GND un 5 V). Otrajā galā varat savienot līdz pat 8 I2C ierīcēm, katru to attiecīgajos kanālos ar SDA un SCL.

Interesanta funkcija ir tā, ka varat modificēt TCA2A I9548C adresi no 0x70 uz 0x77, izmantojot tapas A0, A1 un A2. Tas ir noderīgi, ja vienā projektā ir jāizmanto vairāki multipleksori. Turklāt, ja kāda iemesla dēļ jums ir nepieciešams atiestatīt multipleksoru, varat to izdarīt, iestatot RST tapu LOW, kas pēc noklusējuma ir iestatīts uz izvelkamu.

Ir svarīgi paturēt prātā, ka, palielinoties kabeļu garumam vai pieslēgto ierīču sarežģītībai, var būt nepieciešams pievienot uzvilkšanas rezistorus, lai nodrošinātu pareizu datu pārraidi I2C kopnē.

Koda piemērs I2C ierīču skenēšanai

Pirms mijiedarbības ar ierīcēm, kas savienotas ar TCA9548A, vispirms ir svarīgi pārliecināties, vai multipleksors ir pareizi noteikts. Lai to izdarītu, varat veikt I2C kopnes skenēšanu. Zemāk mēs parādām pamata piemēru paša multipleksora noteikšanai kopnē.

#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);
}

Iepriekš minētais kods skenē iespējamās I2C kopnes adreses, meklējot TCA9548A vai citām pievienotajām ierīcēm. Kad multipleksors ir identificēts, varat turpināt atlasīt kanālu, kas jāaktivizē.

TCA9548A kanāla izvēle

Kad multiplekseris ir konfigurēts un atklāts, mums ir jāizvēlas pareizais kanāls, lai sazinātos ar vēlamo ierīci. To var viegli izdarīt, ierakstot baitu, kas aktivizē konkrēto kanālu. Šeit ir piemērs, kā izvēlēties kanālu:

#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);
  }
}

Izmantojot šo kodu, varat atlasīt un mijiedarboties ar jebkuru ierīci, kas ir pievienota TCA9548A, pa vienam. Atcerieties, ka varat arī modificēt kodu, lai skenētu katra kanāla izejas, meklējot papildu ierīces.

El TCA9548A ir lielisks rīks, lai paplašinātu I2C kopnes iespējas jūsu Arduino projektos, ļaujot efektīvā un vienkāršā veidā savienot vairākas ierīces ar vienu un to pašu adresi vai dažādiem sprieguma līmeņiem.


Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.