Expansor puerto i2c TCA9548A (ref: 0603)

1,99 

Hay existencias

SKU: 0603 Categorías: , Etiquetas: , , ,

Descripción

Este chip TCA9548A es un conmutador de canales i2c: un sólo canal de entrada, hasta 8 canales de salida seleccionables individualmente. Funciona como un multiplexor pero para multiplexar el propio bus i2c. Es útil, por ejemplo, si se desea conectar en el mismo bus 8 sensores de temperatura idénticos; puede conectarse uno a cada canal de salida. Así, el bus de lectura irá alternando el canal para acceder de manera independiente a cada uno de los 8 sensores idénticos (con la misma dirección). Posibilita también conectar entre sí buses i2c de distinto nivel de tensión (level shifter); es compatible con buses de 1.8, 2.5, 3,3 y 5V.

Además, la configuración de los canales de salida activos es flexible, pudiéndose activar de manera simultánea varios de ellos.

  • Alimentación: 1,65V – 5,5V
  • Entradas: Todas tolerantes a 5V
  • Frecuencia de reloj: hasta 400kHz
  • Conexiones A0/A1/A2: Modifican la dirección propia del TCA9548A. Puedes conectar hasta 8 TCA9548A en el mismo bus i2c. Direcciones posibles: 0x70 a 0x77
  • Conexión SDA/SCL: Conexión i2c al maestro
  • Conexiones SD0/SCL0 a SDA7/SCL7: Salidas multiplexadas i2c hacia los esclavos
  • Conexión RST: Resetea la configuración del chip cuando se conecta a nivel bajo. A nivel alto si se deja sin conectar.

Más información: Hoja de datos tca9548a

Código de ejemplo (escáner de dispositivos i2c en los buses de salida):

#include "Wire.h"
void TCA_outbus(uint8_t i) { //Función para seleccionar un puerto de salida (0 a 7)
 if (i > 7) return; //Si el bus pedido es superior al 7 no se realiza ninguna acción
 Wire.beginTransmission(0x70); //Dirección del TCA9548A
 Wire.write(1 << i); //Se indica el bus de salida que se desea activar
 Wire.endTransmission(); 
}
// *** CONFIGURACIÓN ***
void setup() {
 Wire.begin();
 Serial.begin(9600); //Inicializa el puerto serie (Monitor Serie)
 Serial.println("\n --- Escaner de puertos i2c ---");

 for (uint8_t bus=0; bus<8; bus++) { //Escanea los 8 buses de salida
  TCA_outbus(bus); // Apunta a un bus en concreto
  Serial.print("Bus #"); Serial.println(bus);

  for (uint8_t dir = 0; dir <=127; dir ++) { // Recorre las 128 posibles direcciones dentro del bus
    if (dir == 0x70) continue; //En caso de intentar apuntar a la propia dirección del TCA9548 se pasa a la siguiente iteración
    Wire.beginTransmission(dir );
    if (!Wire.endTransmission()) {
       Serial.print("Encontrado dispositivo i2c en 0x"); Serial.println(dir,HEX);
    }
  }
}
Serial.println("\n +++ FINALIZADO +++");
}

void loop(){
// El código de aplicación, si lo hay, va aquí
}

Valoraciones

No hay valoraciones aún.

Solo los usuarios registrados que hayan comprado este producto pueden hacer una valoración.