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?
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.
Asmyldof
gbarry
justin manuel
Transeúnte