Ga naar de inhoud

TCA9548A I2C Multiplexer

Omschrijving

Met dit kleine bordje kun je tot maximaal 8 i2c devices aansturen op één datalijn! Ook als de I2C apparaten allemaal hetzelfde I2C adres hebben zijn ze toch afzonderlijk aan te sturen met deze 8-kanaals TCA9548A.

Deze multiplexer maakt de volgend adressen aan: 0x70 t/m 0x77.

Het is mogelijk om meerdere I2C OLED displays aan te sturen middels de I2C multiplexer. Met één TCA9548A kunnen 8 OLED displays worden aangestuurd. 

Hoe werkt het (uitleg)

 

Je kan de multiplexer op 8 adressen adresseren.

0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76 en 0x77.

De corresponderende pins zijn:

0x70 -> SD0/SC0
0x71 -> SD1/SC1
0x72 -> SD2/SC2
0x73 -> SD3/SC3
0x74 -> SD4/SC4
0x75 -> SD5/SC5
Ox76 -> SD6/SC6
Ox77 -> SD7/SC7

Dus bijv 0x70 stuurt de module aan die op SD0/SC0 zit.
SDx is SDA poort x
SCx is SCL poort x

In code

Voeg aan je project de volgende functie toe:

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

  1. De werking is als volgt:
    Zet de juiste poort (aanroep tcaselect(x) )
  2. Roep de desbetreffende module aan zoals je normaal gewend bent.

Om een poort te activeren roep de volgende functie aan:

tcaselect(x) waarbij x de waarde 0 t/m 7 kan hebben, dat is resp. SC0 en SD0 t/m SC7 en SD7

Specificaties

  • 1-naar-8 Bidirectionele translating switches
  • Compatibel met I2C-bus en SMBus
  • Active-low reset-ingang
  • Drie adrespinnen, waardoor maximaal acht
  • TCA9548A-apparaten op de I2C-bus kunnen worden geselecteerd
  • Kanaalselectie via een I2C-bus, in elke combinatie
  • Initieel alle schakelkanalen gedeselecteerd
  • Laag RON-schakelaars
  • Toegestaan spanningsniveau mogelijk tussen bussen van 1,8 V, 2,5 V, 3,3 V en 5 V
  • Geen storing bij opstarten
  • Ondersteunt hot insertion
  • Lage stand-bystroom
    Bedrijfsspanningsbereik van 1,65 V tot 5,5 V
  • 5 V. Tolerante ingangen
  • 0- tot 400 kHz Klokfrequentie
  • Latch-up-prestaties hoger dan 100 mA Per JESD 78, klasse II

Aansluit schema / Pinouts

Pin Omschrijving
VIN Spanning + 1,65 ~ +5,5 Volt
GND Ground (min)
SDA Input SDA (naar Arduino SDA) 
SCL Input SCL (naar Arduino SCL) 
RST Reset
A0

Adres bits 

0x70 t/m 0x77.

A1
A2
SD0 t/m SD7 Output SDA 0 t/m 7
SC0 t/m SC7 Output SCL 0 t/m 7

Schema

Een leuk test projectje mat 3 RTC klokjes (2x ds 1307 en 1 ds 3231). 
Ik gebruikte hem om te kijken hoe nauwkeurig ze zijn. De test liep ongeveer 1 week.
Uitkomst:
ds 3231 was de beste 3 sec. afwijking.
ds 1307 een 53 sec. de andere 85 sec. beide liepen voor.  

Verder als spanning bron heb ik de ‘Verter 5V USB Buck-Boost‘ gebruikt om van een 3,7 V Lipo accu 5 Volt te maken. 

Downloads