Ich habe einen MSP430F6659, der über I2C mit 1,5-K-Pullups an einen ISO1541 angeschlossen ist. Der I2C-Bus ist ein Durchgangsdraht anstelle einer Leiterbahn, sodass ich identische Leiterplatten mit den ISO1541-ICs austauschen kann.
Eines dieser Boards mit ISO1541 funktioniert einwandfrei. Ich kann die Takt- und Datensignale im Oszilloskop sehen. Wenn ich jedoch den anderen anschließe und versuche, ein Byte mit demselben MSP430 zu senden, bleibt das Signal bei 3,3 V flach.
Hat der Master kein Mitspracherecht darüber, ob das Signal niedrig wird oder nicht? Kann einer der Slaves den Master daran hindern, die Leitung auf Low zu bringen?
Nein das sollte nicht möglich sein. I2c-Leitungen sind Open-Drain, sodass Schnittstellen das Signal nur auf Low zwingen können.
Ich würde damit beginnen, auf dem Slave-Board zwischen den Linien und 3v3 nach Shorts zu suchen. Der msp430 kann nur mit begrenzter Kraft nach unten ziehen.
Das Slave-IC könnte beschädigt oder falsch konfiguriert sein. Einige haben Bootstraps, die die Pins zwischen i2c und spi muxen (spi kann die Leitungen hoch treiben).
Das von Ihnen erwähnte IC ist ein Isolator, der sich möglicherweise schlecht verhält, wenn die Sekundärspannung nicht korrekt ist. Überprüfen Sie jede Pin-Spannung und suchen Sie nach Unterschieden zwischen dem ausgefallenen und dem funktionierenden Beispiel.
Wenn nichts davon funktioniert, würde ich vermuten, dass Ihr IC beschädigt ist. Der maximale Strom für Seite 1 beträgt 3,5 mA. Wenn Sie diese überschritten oder einer Überspannung ausgesetzt haben, sind möglicherweise die internen Schutzdioden kurzgeschlossen.
Asmyldof
gbarry
Justin Manuel
Passant