Estoy trabajando en la interconexión de 2 placas de desarrollo. Tengo control sobre la 1ª junta de desarrollo. La 2ª placa de desarrollo es de un proveedor externo. Mi tablero (tablero 1) tiene un pull up de 3.9K y el tablero del tercero proveedor (2do tablero) tiene un pullup de 1K.
El problema al que me enfrento es que cuando estas dos tarjetas se encienden por separado, se inician y se comportan correctamente, pero la placa 2 no se inicia cuando el bus está conectado. Tengo acceso a un analizador de protocolo I2C. Tanto el tablero 1 como el tablero 2 tienen tablas hijas acompañantes. Con el tablero x < = > hija x, los mensajes I2C y los niveles de voltaje están bien.
Cuando intenté conectar la placa 1 < = > tablero 2, tablero 2 no arranca. Me he asegurado de que el reloj esclavo esté deshabilitado en el tablero 1. El requisito es que el tablero 1 debe ser esclavo y el tablero 2 debe ser maestro.
Lo que he intentado hasta ahora: Con el I2C desconectado, encendí la placa 1 y verifiqué los niveles de SDA, SCL. Están a 3.3V. Tan pronto como conecto el conector I2C a la placa 2 (aún está apagado), SCL y SDA se bajan.
Ahora encendí la placa 2 utilizando la misma fuente de alimentación para garantizar una conexión a tierra común. La línea SDA pasa a nivel alto de inmediato, pero SCL permanece bajo y no hay actividad. La placa 2 no arranca en absoluto.
Tengo que atenerme a este orden de encendido, ya que la placa 2 envía un mensaje I2C solo una vez unos segundos después del encendido (confirmado usando la placa 2 < = > daughter 2 con analizador de protocolo).
No estoy seguro de cómo proceder aquí.
Cualquier ayuda es muy apreciada. ¡Gracias!