Múltiples esclavos a velocidad de baudios en un solo maestro I2C

2

¿Podemos conectar varios esclavos con diferentes velocidades de transmisión a un maestro? Por ejemplo, tengo un sensor de temperatura que funcionaría a 50 kbps y un expansor de puerto a 400 kbps. ¿Pueden estos dos esclavos conectarse a mi maestro (microcontrolador) en el mismo I2C? Si puede agregar algo más por qué no debería ser un problema, ayudaría

    
pregunta user2054364

2 respuestas

4

Está bien siempre y cuando solo ejecute el bus tan rápido como el dispositivo más lento en el bus. Entonces, en su caso, funcionaría siempre que ejecute el bus a 50 kbit / seg, incluso cuando dirija una parte que sea capaz de correr más rápido. Si intenta ejecutar un bus a, digamos, 400 kbit / seg con un dispositivo con una capacidad nominal de hasta 50 kbit / seg, es posible que el dispositivo malinterprete parte de los datos como un bit de inicio y luego cause problemas. la transmisión. Básicamente, tiene tres opciones: ejecutar el bus lento, segmentar el bus con varios controladores I2C o un mux I2C, o cambiar los dispositivos lentos por otros más rápidos.

Tenga en cuenta que este es un problema menor con los dispositivos SPI, ya que SPI utiliza una línea de selección de chip explícita para cada dispositivo. En este caso, es posible que un bus SPI se ejecute más rápido que el dispositivo más lento, siempre que el dispositivo seleccionado pueda manejar la velocidad.

    
respondido por el alex.forencich
1

Si el sensor de temperatura no admite más de 50 kbits / s, deberá ejecutar el bus a 50 kbits / s o menos. El dispositivo más lento (sensor de temperatura) puede funcionar de forma múltiple con una velocidad de más de 50 kbits / seg. Además, un dispositivo más lento puede tener una capacidad de pin grande que puede distorsionar la señal I2C.

    
respondido por el MCG

Lea otras preguntas en las etiquetas