2 votos

Diferencia entre i2c switch y i2c mux

Estoy trabajando en un proyecto que implica la lectura de múltiples sensores IMU en el protocolo i2c. Tienen una dirección i2c fijo y por lo tanto siento el requisito de algún tipo de multiplexor.

Investigando un poco, he encontrado dos componentes que parecen hacer 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 4 canales de bajo voltaje con lógica de interrupción

El TCA9544A es un conmutador traductor bidireccional cuádruple controlado mediante el bus I2C. El par SCL/SDA aguas arriba se expande a cuatro pares o canales. Cualquier canal SCn/SDn individual o combinación de combinación de canales, determinada por el contenido del registro de control programable. registro de control programable. Cuatro entradas de interrupción (INT3-INT0), una para cada uno de los pares descendentes. Una salida de interrupción (INT) actúa como AND de las cuatro entradas de interrupción.

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

El TCA9546A es un conmutador traductor bidireccional cuádruple controlado mediante el bus I2C. Los ventiladores del par SCL/SDA aguas arriba o canales. Cualquier canal SCn/SDn individual o combinación de [ ] registro de control programable.

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

Quiero leer los datos de todos los sensores a la máxima velocidad posible y transmitirlos a un PC o teléfono móvil mediante UART/wifi/bluetooth.

7voto

Chris L. Puntos 9

Los dos chips son NO lo mismo:

El TCA9544A es un I2C Mux. Un I2C Mux multiplexa cualquiera de N puertos de bajada al puerto de subida (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 (de 1 a muchos).

Los registros de control también difieren.

3voto

Liza Puntos 548

Son iguales, y la sección 3 de ambas descripciones designa a ambos como "interruptor". La única diferencia es la capacidad del IC 9544A para registrar interrupciones. Incluso creo que provienen de la misma oblea / die, sólo unido a cabo de manera diferente.

CORRECCIÓN: David.A tiene razón, 9544 sólo 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 de esto, ya que los ACKs colisionarían entonces. Técnicamente ambos ICs pueden ser controlados como un MUX, sólo el control debe ser diferente.

2voto

G. Martin Puntos 93

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

Considere el uso de traductores de direcciones I²C. Al menos LT (ahora parte de Analog Devices) los tiene en su cartera ( familia de productos ). Se sitúa entre dos secciones de bus y normalmente las conecta. Vigila las condiciones de arranque y manipula la conexión durante el siguiente byte de dirección de forma que la dirección de la sección de bus descendente se exorta en un valor preestablecido.

La ventaja considerando tus necesidades ("máxima tasa posible") es que no son necesarias transacciones I²C para controlar el switch/mux - con la desventaja de que, dependiendo del número de sensores, puedes quedarte sin direcciones I²C.

1voto

Henry Crun Puntos 455

Podrías simplemente utilizar interruptores analógicos y pines de puerto para seleccionarlos. Esto es rápido, fácil y barato. Un solo 74HC4051 conmutando solo SDA te daría 8 buses I2C, o un 74hc4052 conmutando SDA y SCL te da 4.

También puede considerar nuestro producto BL233 . Este es un convertidor serial a I2C, con hasta 4 canales separados. Podría leer 4 conjuntos de estos sensores por sí solo, conectado a un módulo de serie bluetooth fuera de la plataforma. No se necesita micro.

Una ventaja significativa es que es realmente portátil en todas las plataformas - no deja de funcionar cuando tu $FRUITNAME$ Pi cambia de chip, o Windows 11,12,13 rompe los drivers.

BTW, utilizamos el Conmutador de bus 9545 , y dejó de utilizar el 9544 bus mux como un interruptor es más versátil. Con un conmutador 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.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X