meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sensor:tca9548a [2025/11/22 18:20] – created vamsansensor:tca9548a [2025/11/22 18:48] (current) – [I²C topics on lamaPLC] vamsan
Line 7: Line 7:
 {{:sensor:tca9548a_3.png|TCA9548A (HW617)}} {{:sensor:tca9548a_3.png|TCA9548A (HW617)}}
  
-**Technical data**+===== Technical data ===== 
 +  * 1-to-8 Bidirectional translating switches 
 +  * [[com:basic_i2c|I²C]] Bus and SMBus compatible 
 +  * Active-low reset input 
 +  * Three address pins, allowing up to eight TCA9548A devices on the I²C bus 
 +  * Channel selection through an I2C Bus, in any combination 
 +  * Power up with all switch channels deselected 
 +  * Low RON switches 
 +  * Allows voltage-level translation between 1.8V, 2.5V, 3.3V, and 5V buses 
 +  * No glitch on power up 
 +  * Supports hot insertion 
 +  * Low standby current 
 +  * Operating power-supply voltage range of **1.65 to 5.5 V** 
 +  * 5-V Tolerant inputs 
 +  0 to 400kHz Clock frequency 
 +  Latch-up performance exceeds 100mA per JESD 78, class II
  
 +===== Device Address =====
 +{{:sensor:tca9548a_4.png|TCA9548A (HW617) Device Address}}
 +The last bit of the target address defines the operation (read or write) to be performed. When it is high (1), a read
 +is selected, while a low (0) selects a write operation. Shows the TCA9548A address reference:
 +{{:sensor:tca9548a_5.png|TCA9548A (HW617) Device Address}}
  
 +===== Arduino =====
 +To call the module, you only need the "wire" library. The code below scans the module, for example:
 +<code c>
 +/**
 + * TCA9548 I2CScanner.ino -- I2C bus scanner for Arduino
 + *
 + * Based on https://playground.arduino.cc/Main/I2cScanner/
 + *
 + */
  
 +#include "Wire.h"
 +
 +#define TCAADDR 0x70
 +
 +void tcaselect(uint8_t i) {
 +  if (i > 7) return;
 + 
 +  Wire.beginTransmission(TCAADDR);
 +  Wire.write(1 << i);
 +  Wire.endTransmission();  
 +}
 +
 +
 +// standard Arduino setup()
 +void setup()
 +{
 +    while (!Serial);
 +    delay(1000);
 +
 +    Wire.begin();
 +    
 +    Serial.begin(115200);
 +    Serial.println("\nTCAScanner ready!");
 +    
 +    for (uint8_t t=0; t<8; t++) {
 +      tcaselect(t);
 +      Serial.print("TCA Port #"); Serial.println(t);
 +
 +      for (uint8_t addr = 0; addr<=127; addr++) {
 +        if (addr == TCAADDR) continue;
 +
 +        Wire.beginTransmission(addr);
 +        if (!Wire.endTransmission()) {
 +          Serial.print("Found I2C 0x");  Serial.println(addr,HEX);
 +        }
 +      }
 +    }
 +    Serial.println("\ndone");
 +}
 +
 +void loop() 
 +{
 +}
 +</code>
 +
 +More codes on the Adafruit website:
 +https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-breakout/arduino-wiring-and-test
 ====== Source ====== ====== Source ======
 https://www.ti.com/lit/ds/symlink/tca9548a.pdf https://www.ti.com/lit/ds/symlink/tca9548a.pdf
Line 20: Line 96:
 \\ \\
 \\ \\
-{{tag>CJMCU-164 SN74HC164D 8-bit_Shift_Register SN74HC164D communication 7-segment}}+{{tag>TCA9548A HW617 I2C switch communication expansion_board Arduino}}
 \\ \\
 This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}} This page has been accessed for: Today: {{counter|today}}, Until now: {{counter|total}}