¿Puede un IC i2c esclavo evitar que el maestro baje la señal?

Tengo un MSP430F6659 conectado a un ISO1541 a través de I2C con pull-ups de 1.5K. El bus I2C es a través de un cable en lugar de una traza de PCB, por lo que puedo intercambiar PCB idénticas con los circuitos integrados ISO1541.

Una de estas placas con ISO1541 funciona bien. Puedo ver el reloj y las señales de datos en el osciloscopio. Sin embargo, cuando conecto el otro y trato de enviar un byte con el mismo MSP430, la señal permanece plana en 3.3V.

¿El maestro no tiene nada que decir sobre si la señal baja o no? ¿Puede alguno de los esclavos evitar que el maestro baje la línea?

Si no hay ni la más mínima caída en la señal, tiene un corto a VCC. Llano y simple.
¿Qué señal se mantiene alta, el reloj o los datos?
Tanto el reloj como los datos se mantienen altos
Si se trata de una placa de varias copias, entonces esa placa tiene una falla. Verifique dos veces los puentes de soldadura.

Respuestas (1)

No, esto no debería ser posible. Las líneas I2c son de drenaje abierto, por lo que las interfaces solo pueden forzar la señal a un nivel bajo.

Comenzaría buscando cortos en el tablero esclavo entre líneas y 3v3. El msp430 solo podrá tirar hacia abajo con una fuerza limitada.

El ic esclavo podría estar dañado o configurado incorrectamente. Algunos tienen bootstraps que mezclan los pines entre i2c y spi (spi puede impulsar las líneas altas).

El ic que mencionas es un aislador, que puede mostrar un mal comportamiento si el voltaje secundario no es el correcto. Verifique el voltaje de cada pin y busque diferencias entre el ejemplo fallido y el que funciona.

Si nada de eso funciona, supongo que tu ic está dañado. La corriente máxima para el lado 1 es de 3,5 mA. Si ha superado este valor o lo ha sometido a sobretensión, es posible que los diodos de protección internos hayan fallado.

Esto está en SDA y SCL. La señal permanece completamente inmóvil. Los pullups están en el extremo esclavo. El esclavo no parece tener más problemas que las líneas de señal planas.
EN cuyo caso, comenzaría buscando algún tipo de cortocircuito entre líneas y 3v3 en el tablero esclavo. ¿El esclavo mux estos pines para otros usos? sp por ejemplo.
Este no es un foro, y las respuestas deben usarse solo para respuestas, no para preguntas. Para solicitar más información, utilice un comentario.
Bueno CL, lo siento! Lo puse como respuesta porque respondió a la pregunta q. Solicité más información porque no ayuda mucho decir "No". Y dejar las cosas así.
@loganf Tenías razón, no es posible. Me faltaba un paso al comienzo del código donde envía un byte y busca un reconocimiento. Si no recibe, nunca permite que se transfiera un byte nuevamente. Gracias por la ayuda.