Diferencia entre i2c switch y i2c mux

1

Estoy trabajando en un proyecto que implica la lectura de varios sensores IMU en el protocolo i2c. Tienen una dirección i2c fija y, por lo tanto, siento la necesidad de algún tipo de multiplexor.

En algunas investigaciones, encontré dos componentes que parecen estar haciendo el mismo trabajo. Aquí están las breves descripciones que estos dispositivos llevan en el sitio web de TI:

1) TCA9544A Multiplexor I2C y SMBus de bajo voltaje de 4 canales con lógica de interrupción

  

El TCA9544A es un interruptor de traducción bidireccional controlado por   El bus I2C. El par ascendente SCL / SDA se ventila hasta cuatro descendentes   Pares, o canales. Cualquier canal SCn / SDn individual o combinación de   Se pueden seleccionar canales, determinados por los contenidos de la   Registro de control programable. Cuatro entradas de interrupción (INT3 – INT0), una   para cada uno de los pares aguas abajo, se proporcionan. Una salida de interrupción   (INT) actúa como un AND de las cuatro entradas de interrupción.

2) TCA9546A Interruptor I2C y SMBus de bajo voltaje de 4 canales con función de restablecimiento

  

El TCA9546A es un interruptor de traducción bidireccional controlado a través de   El bus I2C. El par ascendente SCL / SDA se ventila hasta cuatro descendentes   Pares, o canales. Cualquier canal SCn / SDn individual o combinación de   Se pueden seleccionar canales, determinados por los contenidos de la   registro de control programable.

Para mí, ambos parecen ser los mismos. Si alguien puede señalar la diferencia clave entre estas dos cosas, será realmente útil.

También, quiero preguntar qué será más adecuado para mi propósito: quiero leer los datos de los sensores de todos los sensores a la velocidad máxima posible y transmitirlos a una PC host o teléfono móvil usando UART / wifi / bluetooth.

    
pregunta Whiskeyjack

4 respuestas

3

Son iguales, y la sección 3 en ambas descripciones designa a ambas como "interruptor". La única diferencia es la capacidad de 9544A IC para registrar interrupciones. Incluso creo que vienen de la misma hostia / muerte, solo que se unen de manera diferente.

CORRECCIÓN: David.A tiene razón, 9544 solo puede multiplexar 1 < = > 4, mientras que 9546 puede conectar cualquier combinación de canales, aunque no estoy seguro de cuál sería el propósito, ya que los ACK chocarán entonces. Técnicamente, ambos circuitos integrados pueden controlarse como un MUX, solo que el control debe ser diferente.

    
respondido por el Ale..chenski
3

Los dos chips son NOT los mismos:

El TCA9544A es un Mux I2C. Un I2C Mux multiplexa cualquiera de los N puertos descendentes al puerto ascendente (1 a 1).

El TCA9546A es un conmutador I2C. Un conmutador I2C conecta uno o más de los N puertos descendentes al puerto ascendente (1 a muchos).

Los registros de control también difieren.

    
respondido por el David A.
2
  

Quiero leer los datos del sensor ... a la velocidad máxima posible ...

Considere utilizar traductores de direcciones I²C. Al menos LT (ahora parte de Analog Devices) los tiene en su cartera ( descripción general de la familia de productos ). Se asienta entre dos secciones de autobús y normalmente las conecta. Observa las Condiciones de inicio y retoca la conexión durante el siguiente byte de dirección de manera que la dirección en la sección del bus cuesta abajo se exorbe por un valor preestablecido.

La ventaja que tienen en cuenta sus necesidades ("tasa máxima posible") es que no son necesarias transacciones I²C para controlar el switch / mux, lo que significa que, dependiendo de la cantidad de sensores, puede quedarse sin direcciones I²C.

    
respondido por el Peter
1

Puede que simplemente use interruptores analógicos y pines de puerto para seleccionarlos. Esto es rápido, fácil y barato. Un solo SDA de conmutación 74HC4051 solo le daría 8 buses I2C, o un SDA de conmutación 74hc4052 y SCL le dará 4.

También puede considerar nuestro producto BL233 . Este es un convertidor de serie a I2C, con hasta 4 canales separados. Podía leer 4 juegos de estos sensores independientes, conectados a un módulo de serie de bluetooth disponible. No se necesita micro.

Una ventaja significativa es que es verdaderamente portátil en todas las plataformas: no deja de funcionar cuando su $ FRUITNAME $ Pi cambia de chip o Windows 11,12,13 rompe los controladores.

Por cierto, utilizamos el conmutador de bus 9545 , y dejamos de usar el bus mux 9544 porque un conmutador es más versátil. Con un interruptor tienes la opción de escribir en todos los chips a la vez, y leerlos por separado, lo que puede acelerar algunas cosas. También son útiles como cambiadores de nivel, cuando no quieres cambiar los puertos en absoluto.

    
respondido por el Henry Crun

Lea otras preguntas en las etiquetas