Ako pripojiť multiplexer TCA2A I9548C k Arduinu

  • TCA9548A umožňuje pripojenie až 8 I2C zariadení k jednej zbernici.
  • Dá sa jednoducho ovládať cez vstupnú zbernicu I2C a vybrať kanál.
  • Podporuje rôzne úrovne napätia, vďaka čomu je univerzálny pre mnoho projektov.
  • Je ideálny pre správu zariadení s pevnými alebo opakujúcimi sa adresami I2C.

I2C komunikácia s Arduino

V súčasnosti sa I2C komunikácia stala jednou z najpoužívanejších metód na pripojenie viacerých zariadení k mikrokontroléru, akým je Arduino. On TCA9548A je 2-kanálový rozširovač zbernice I8C, ktorý rieši jeden z najbežnejších problémov pri tomto type pripojení: konflikt adries I2C. Tento článok vám pomôže pochopiť, ako tento extender funguje a ako ho môžete integrovať do svojich projektov Arduino.

Ak ste sa niekedy stretli so zariadeniami, ktoré zdieľajú rovnakú adresu na zbernici I2C, viete, aké frustrujúce môže byť snažiť sa s nimi komunikovať bez toho, aby došlo ku konfliktom. S použitím TCA9548A, môžeme sa týmto problémom vyhnúť a rozšíriť počet zariadení pripojených k jednej I2C zbernici. Poďme podrobne preskúmať možnosti, ktoré ponúka tento multiplexer.

Čo je TCA9548A?

El TCA9548A je 2-kanálový rozširovač zbernice I8C vyvinutý špeciálne pre zariadenia ako Arduino. Jeho hlavnou funkciou je umožniť pripojenie niekoľkých zberníc k jednej I2C zbernici, čo z neho robí základný prvok pre efektívne riadenie komunikácie s viacerými zariadeniami. Dal by sa dokonca prirovnať k multiplexeru, no navrhnutý špeciálne pre I2C komunikáciu.

Toto zariadenie má vstup I2C zbernice pozostávajúci z dvoch liniek, SDA (dáta) a SCL (hodiny), pripojených k 8 nezávislým výstupom, z ktorých každý má svoje zodpovedajúce SDA a SCL. To umožňuje mikrokontrolér komunikuje až s 8 zariadeniami, pričom si vyberáte, s ktorým z nich budete v každom okamihu interagovať.

Okrem toho je bežné používať TCA9548A na správu zariadení, ktoré zdieľajú rovnakú I2C adresu, čo je bežné v určitých senzoroch a displejoch, ktoré neumožňujú zmenu ich adresy. Pomocou tohto multiplexora môžete aktivovať kanál a komunikovať so zariadením bez rušenia iných kanálov.

Výhody a výhody

Medzi najdôležitejšie výhody TCA9548A Je tu možnosť pracovať s I2C zbernicami rôznych napäťových úrovní bez nutnosti použitia logických adaptérov. To umožňuje komunikácia so zariadeniami pracujúcimi pri 1.8V, 2.5V, 3.3V a 5V, ktorá rozširuje možnosti integrácie v rôznych projektoch.

Ďalšou kľúčovou vlastnosťou je, že multiplexer možno ovládať priamo zo vstupnej zbernice I2C, vďaka čomu je ovládanie z mikrokontroléra veľmi jednoduché. Jeho prevádzkové napätie sa pohybuje od 1.65 V do 5.5 V a podporuje zbernice I2C s frekvenciou až 400 kHz, vďaka čomu je vhodný pre rôzne zariadenia.

Pripojenie a konfigurácia

tca9548a

Pripojenie TCA9548A je celkom jednoduché. Potrebujete iba pripojiť vstupnú zbernicu k linkám SDA a SCL Arduina spolu s príslušnými napájacími kolíkmi (napríklad GND a 5V). Na druhom konci môžete pripojiť až 8 I2C zariadení, každé na svojich príslušných kanáloch s SDA a SCL.

Zaujímavou funkciou je, že môžete upraviť I2C adresu TCA9548A z 0x70 na 0x77 pomocou pinov A0, A1 a A2. To je užitočné, ak potrebujete použiť viac ako jeden multiplexor v rovnakom projekte. Tiež, ak z nejakého dôvodu potrebujete resetovať multiplexer, môžete tak urobiť nastavením RST pin LOW, ktorý je štandardne nastavený na pull-up.

Je nevyhnutné mať na pamäti, že so zvyšujúcou sa dĺžkou káblov alebo zložitosťou pripojených zariadení môže byť potrebné pridať pull-up odpory, aby sa zabezpečil správny prenos dát na zbernici I2C.

Príklad kódu pre skenovanie I2C zariadení

Pred interakciou so zariadeniami pripojenými k TCA9548A, je najprv dôležité zabezpečiť správnu detekciu multiplexora. Ak to chcete urobiť, môžete vykonať skenovanie zbernice I2C. Nižšie uvádzame základný príklad detekcie samotného multiplexora na zbernici.

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

Vyššie uvedený kód skenuje možné adresy zbernice I2C a hľadá TCA9548A alebo iné pripojené zariadenia. Po identifikácii multiplexora môžete pokračovať vo výbere kanálu, ktorý potrebujete aktivovať.

Výber kanálu TCA9548A

Keď máme multiplexer nakonfigurovaný a detekovaný, musíme vybrať správny kanál na komunikáciu s požadovaným zariadením. To sa dá ľahko urobiť napísaním bajtu, ktorý aktivuje konkrétny kanál. Tu je príklad, ako vybrať kanál:

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

Pomocou tohto kódu si môžete vybrať a komunikovať s ktorýmkoľvek zariadením pripojeným k TCA9548A, jeden po druhom. Nezabudnite, že kód môžete upraviť aj na skenovanie výstupov každého kanála a hľadať ďalšie zariadenia.

El TCA9548A je vynikajúci nástroj na rozšírenie možností zbernice I2C vo vašich projektoch Arduino, ktorý vám umožní pripojiť viacero zariadení s rovnakou adresou alebo rôznymi napäťovými úrovňami efektívnym a jednoduchým spôsobom.


Buďte prvý komentár

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.