Ich verwende das PCA9615-Teil, um einen I2C-Bus zu erweitern. Der PCA9615 wandelt I2C in einen differentiellen Bus um.
PCA9615 https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf
Es gibt eine Steuerbox und eine Remote-Slave-Box. Es gibt vorhandene Puffer in jeder Box. (Analog Devices ADuM1250 I2C-Isolatoren) Die Slave-Box wäre normalerweise in Reichweite der Steuerbox. Ein kurzes Kabel verband die beiden. Das hat gut funktioniert, aber jetzt müssen wir eine Lösung für größere Entfernungen zwischen der Steuerung und der Slave-Box haben. Ich habe den NXP PCA9615 verwendet, um die Entfernung zu verlängern.
Was ich habe ist folgendes.
Steuer-I2C <-> ADuM1250 <--> PCA9615 <======> PCA9615 <--> ADuM1250 <-> Slave-I2C
3,3 V ________| isoliert |____________________________________________ 5 Volt
Die 3,3-V-Seite des ADuM1250 ist von der rechten Seite isoliert. Alles rechts davon wird mit +5 V von der Slave-Box versorgt. Ich verwende ein Cat 5-Kabel, um die beiden PCA9615 zu verbinden. +5 V und Common werden (von der Slave-Box) über die vier Drähte des Cat-5-Kabels geliefert. Die anderen vier sind für die differentiellen SDA- und SCL-Leitungen.
Das Problem, das ich habe, ist, dass die SCL-Leitung des linken PCA9615 ausfällt. Ein Dauertief. Mit einem Ohmmeter bekomme ich 340 Ohm gegen Masse, wobei der Chip aus dem Stromkreis genommen und nicht mit Strom versorgt wird. Wenn die ausgefallene Platine mit Strom versorgt wird (keine anderen Module angeschlossen), ist die SCL-Leitung niedrig. Dies ist mit zwei verschiedenen Modulen auf der Beta-Site passiert. Wir versuchen, eine Reise zum Standort zu planen.
Hat jemand diesen Chip in einem Produkt verwendet? Irgendwelche ähnlichen Ausfälle? Der Fehler lag an der SCL-Leitung, aber ich kann nicht sagen, dass es nur an diesem Pin liegt. Das Problem liegt auf der Single-Ended-Seite und nicht auf der differenziellen Leitungserweiterung.
Das Schema zeigt einen NLSX4373-Puffer in der Slave-Box. Das war falsch. Es ist wirklich ein ADuM1250, das gleiche Teil wie in der Steuerbox, aber nicht isoliert.
Einige weitere Informationen. Ich habe vorhin gesagt, dass ich am beschädigten SCL-Pin 340 Ohm gegen Masse messe. Dann wird die Schaltung mit Strom versorgt, der Widerstand senkt den Strom von den Pull-up-Widerständen. Die Spannung am Pin beträgt 2 Volt auf einer Platine und 2,7 Volt auf der zweiten Platine.
Erden Sie diese SCL-Leitung mit dem Low-Through-Durchgang zur Differentialseite. Und wenn ich auf der Differentialseite ein Low erzeuge, wird dieses Low an die Single-Ended-SCL-Leitung weitergeleitet und senkt den Strom auf dieser Seite. Der Fehler hat also die Auswirkung, dass ein Widerstand von ~ 300 Ohm gegen Masse / Masse gelegt wird. Immer noch ein Fehler, aber die Signale werden durchgereicht.
Sind Sie sicher, dass der SCL-Treiber fehlschlägt? Ich denke nicht, dass 340 Ohm gegen Masse bei ausgeschaltetem Chip problematisch sind. Ohne Strom schweben die Gates der Differenztreibertransistoren und könnten sehr leicht zu einem solchen Widerstand schweben.
Was ist der Fehlermodus, den Sie versuchen zu debuggen? Fehlende Kommunikation? Haben Sie ein Oszilloskop verwendet, um sicherzustellen, dass die SCL-Leitung wirklich nicht funktioniert?
BEARBEITEN: (Da ich noch keinen Kommentar abgeben kann: () Welche Widerstände verwenden Sie zum Vorspannen des Differenzbusses?
Adam Lawrence
Rudi
Adam Lawrence
Rudi
Nur ich
Rudi