Esclavo múltiple I2C en diferentes líneas de alimentación

2

Leí los siguientes subprocesos, pero todavía hay algunas partes poco claras para mí. Varios dispositivos I2C con la misma dirección Pull-ups I2C con múltiples fuentes de alimentación Diseño para múltiples dispositivos esclavos I2C

Tengo dos dispositivos I2C esclavos (sensores) para conectar a una MCU maestra. No son módulos en paneles de ruptura con resistencias de PU preestablecidas.

El primer dispositivo esclavo I2C está en la misma línea de alimentación que la MCU. Coloqué el otro dispositivo esclavo I2C en otro riel eléctrico debido a las siguientes razones:

  1. Quiero hacer una PCB para ello, para que el segundo sensor pueda conectarse a través de un conector de terminal.
  2. No siempre se conectará el segundo I2C (en caso de que no quiera usarlo).

  3. Para reducir el consumo de energía. Quiero poner MCU en modo de apagado. Por lo tanto, periódicamente puede activar los sensores y leer sus valores y apagarlos nuevamente y apagarlos.

Estaba pensando en hacer lo siguiente esquemático. Pero me gustaría saber sus recomendaciones, si hay problemas con esto o si hay mejores maneras de hacerlo.

simular este circuito : esquema creado usando CircuitLab

Si uso este esquema, ¿tengo que agregar diodos para evitar el consumo de corriente del segundo sensor esclavo cuando está apagado?

Más detalles:

  • El dispositivo I2C no se conectará en caliente / cómo se intercambiará.
  • Tengo un sensor que podría usarse como segundo sensor I2C. Pero no tiene modo de dormir. Es por eso que estoy pensando en apagarlo.
  • Los sensores I2C y MCU están trabajando en 3.3V.
  • El primer sensor es BME280 (siempre conectado).
  • El segundo sensor podría ser éste .

¿Qué piensa acerca de agregar un búfer, como PCA9306 , en este schematic2 ?

¿Qué piensas acerca del uso de mux I2C, p. ej. PI4MSD5V9540B ? En caso de usar mux, puedo usar dos sensores con la misma dirección.

    
pregunta Nima Sajedi

2 respuestas

2

"Apagar" el dispositivo I2C innecesario probablemente no funcionará como usted espera. El problema es que las líneas de datos i2c probablemente tendrán diodos de protección a VCC y GND que no se muestran en la hoja de datos.

Lo que sucederá en ese caso es que la corriente fluirá hacia los puertos de datos del dispositivo no utilizado y lo alimentará de manera parasitaria y / o disminuirá el voltaje de subida en las líneas de datos.

Con otros protocolos, hay circuitos simples que puedes usar para evitar esto, pero i2c es bidireccional, por lo que la mayoría de esas soluciones no funcionarán.

Las soluciones más prácticas son utilizar una función de apagado integrada en el dispositivo i2c o quizás usar un protocolo diferente. Si debe usar i2c, algún tipo de interruptor bidireccional ic, o un circuito de mosfet estilo SSR podría resolver el problema.

Preguntas relacionadas:

Is ¿Existe un enfoque de buenas prácticas para apagar los dispositivos periféricos (SPI, I2C, UART) que utilizan una potencia significativa?

Dispositivos sin alimentación en el bus I2C / SPI

    
respondido por el Drew
2

PCA9306 es el camino a seguir.

Deberá agregar una resistencia de extracción también en el otro lado del PCA9306.

Si el dispositivo está diseñado para ser conectado / desconectado, sería más seguro agregar alguna protección de entrada en las líneas I2C.

    
respondido por el Damien

Lea otras preguntas en las etiquetas