¿Es posible conectar dos o más dispositivos I2C similares, con la misma dirección, en el mismo bus?

Me gustaría seguir lo que dijo Loring Chein en este hilo.

De acuerdo con los estándares de I2C, el maestro puede conectarse con muchos esclavos pero con una dirección diferente. Esclavo con la misma dirección traerá el conflicto en la máquina de estado del maestro. Error de transmisión resultante. Esto causará en el noveno reloj cuando ambos esclavos tratarán de bajar SDA.

Hablando en términos prácticos, el maestro se molesta menos si obtiene ACK en cada 9º ciclo de reloj. Si los esclavos son idénticos, como la memoria I2C de Microchip. Entonces, es posible acceder a ambos esclavos a la vez.

Cada proveedor intenta cumplir con los estándares de I2C, aunque algunas de las cosas son específicas de la implementación . Significa que el vendedor puede diseñar como desee. Por lo tanto, si mantienes esclavos diferentes, hay posibilidades de que cambiar del lado esclavo cambie. Esto traerá fallas en la máquina de estado maestro.

Conclusión : los estándares I2C no permiten conectar esclavos con la misma dirección en el mismo maestro.

Gracias por upvotes.

En teoría, habrá conflicto.

El maestro pondrá los datos en el bus pero no se puede determinar qué esclavo (con las mismas direcciones) va a recibirlos.

Una vez me enfrenté al mismo problema. Estaba interconectando dos sensores de temperatura con la misma dirección I2C. Entonces, lo que hice fue que introduje otro pin GPIO para controlar el Vcc del sensor de temperatura, de manera que cuando un sensor está ENCENDIDO, el otro debería estar APAGADO (NO se les ha anotado). Cuando quiero leer el primer valor del sensor de temperatura, entonces el pin GPIO debería estar alto. Así que el primer sensor se encenderá y el otro se apagará.

Puedes ir por tu camino si tienes múltiples dispositivos. Puedes usar multiplexores.

Solo explora las cosas.

Es bastante posible y fácil de hacer. Simplemente no funcionará bien, en todo caso.

DAMHIKT.

Lo que sucede es que su bus I2C funcionará bastante bien hasta que aborde los dispositivos esclavos en conflicto. Luego, ambos intentarán responder y darán como resultado dos salidas de colector abierto que intentarán tirar del bus hacia abajo al mismo tiempo y causarán algunos errores en la lectura y el maestro declarará el fallo.

Nadie puede como si dos dispositivos de la misma dirección estuvieran conectados en un solo bus i2c, mientras que esto provocará el problema de cuál de los esclavos se comunicaría. Supongamos que A y B tienen la misma dirección en un solo bus I2C y si queremos tener Dos sensores de este tipo en nuestro proyecto es un problema grave.

y lea en el arduino libro de jeremmy blum que puede obtener sensores fabricados con direcciones diferentes, pero eso sería un problema.