I2C pull-up a pregunta de voltaje múltiple

Resumen rápido de lo que está pasando: estoy usando dos PIC32MX para ser maestros de I2C. Se controlarán de forma remota para determinar quién es el maestro en un momento dado. Por motivos de redundancia, ambos tienen su propio regulador de 3,3 V alimentado por los mismos 5 V.

Mi diseño original, estaba subiendo las líneas I2C a los 5V locales. Ahora estoy pensando que debería subir a 3.3V en su lugar. Sin embargo, no estoy del todo seguro de qué tipo de consecuencia podría ver si elevo las líneas a sus respectivos 3.3V. Están conectados al mismo bus I2C.

Preguntas:

  1. ¿Tengo razón en preocuparme o en realidad no hay nada de qué preocuparse?
  2. ¿Debería tener solo un conjunto de pull-ups porque actuarán en paralelo?
  3. ¿Es mejor que me levante a 5V local? Las líneas PIC I2C son tolerantes a 5V, pero es un dispositivo de 3.3V.
Depende de qué otros dispositivos estén en el bus i2c. ¿Son todos tolerantes a 5 V?
Sí. Los esclavos son tolerantes a 5V

Respuestas (1)

Solo necesita un par de resistencias pull-up para todo el bus. Agregarlos en cada nodo creará un pull-up demasiado fuerte.

Esto, en consecuencia, responde a sus otras preocupaciones: puede conectar pull-ups a cualquier fuente de 3.3V y estar bien.

Sin embargo, hay una advertencia: la mayoría de MCU y otros dispositivos I2C tienen un voltaje de pin máximo especificado en relación con VCC, por ejemplo, "VCC + 0.5V". Esto significa que si algún dispositivo en el bus pierde su energía por alguna razón, sus pines irán inmediatamente más allá del rango máximo permitido.

Las resistencias pull-up limitarán la corriente y, con suerte, evitarán que se quemen. Pero para obtener la máxima confiabilidad, sugiero usar un suministro grande de 3.3 V para alimentar todos los dispositivos en el bus y proporcionar voltaje para los pull-ups también.

Esa no es una mala idea. No había pensado en eso. Gracias