Hallo
beim verwenden der I2C-Funktion auf einem IOW24 gibt es ein Problem,
wenn ich mit einem IOW24 auf eine I2C Adresse schreibe die nicht vorhanden ist
wird der I2C-Bus vom IOW blockiert die CL-Leitung bleibt auf LOW,
ein erneutes lese gibt dann den I2C-Bus wieder frei.
Beim IOW56 tritt diese Problem nicht auf , bei IOW40 habe ich es noch nicht getestet.
Wie gesagt es tritt nur beim schreiben auf ein nicht vorhandenen I2C-Device auf.
Mir ist das Fehlverhalten nur aufgefallen, weil ich ein I2C-Switch gebaut habe der
die I2C-Ports(Stränge), die den Bus stören abschaltet.
mfg
R.Greinert
IOW 24 und I2C
Moderator: Guido Körber
-
friend-of-rq
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
-
friend-of-rq
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
Re: IOW 24 und I2C
Hallo CodeMercs Team,
keine Antwort ist auch eine :-(
ist das Problem bekannt ? habe da ein kleines Problem mit !
mfg
R.Greinert
keine Antwort ist auch eine :-(
ist das Problem bekannt ? habe da ein kleines Problem mit !
mfg
R.Greinert
-
Guido Körber
- Site Admin
- Posts: 2883
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IOW 24 und I2C
Sorry, Dezember war etwas hektisch, wir hatten noch keine Gelegenheit uns das anzusehen. Sollte aber eigentlich nicht so sein, der IO-Warrior setzt am Ende einer IIC Transaktion immer beide Leitungen zurück auf High, eventuell ist das ein Effekt des IIC Repeaters.
-
friend-of-rq
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
Re: IOW 24 und I2C
Hallo Herr Körber,
der HUB/Reapeater hat keinen direkten Zugriff auf den IIC-Bus, er trennt nur Anschlüsse(Zweige) die eine Störung erzeugen.
Der besagte Fehler ensteht beim IOW56 z.B. nicht ...
zur Funktion des Hubs:
Mein IIC-HUB hat 16 Anschlüsse die je durch einen PCA9517 an einem IIC-Backbone verbunden sind.
Ensteht eine Störung (SCL oder SDA zu lange LOW) an einem der besagten Anschlüsse,
wird dieser vom Backbone getrennt um den Backbone wieder frei zu bekommen, der Anschluss bleibt so lange vom Backbone getrennt bis die Störung wieder aufgehoben ist (SCL und SDA =HIGH).
Das Problem ist nur das der IOW-24 als Master auch an dem Backbone direkt angeschlossen ist.
Das bedeutet sollte der IOW-24 den besagten Fehler erzeugen, trennen alle Anschlüsse sich vom Backbone da diese nicht erkennen können von wo die Störung kommt, verbinden aber sofort wieder da der getrennte Anschluss ja keine Störung hat, dies geschieht rekursiv !
Lösung:
ich müsste den IOW-24 selber an einem der Anschlüsse anschliessen , was aber einen Anschluss belegt.
Oder ich muss nach jebem vergeblich Schreibversuch einen Lese-Zyklus einleiten um den Bus
wieder frei zu bekommen.
mfg
R.Greinert
der HUB/Reapeater hat keinen direkten Zugriff auf den IIC-Bus, er trennt nur Anschlüsse(Zweige) die eine Störung erzeugen.
Der besagte Fehler ensteht beim IOW56 z.B. nicht ...
zur Funktion des Hubs:
Mein IIC-HUB hat 16 Anschlüsse die je durch einen PCA9517 an einem IIC-Backbone verbunden sind.
Ensteht eine Störung (SCL oder SDA zu lange LOW) an einem der besagten Anschlüsse,
wird dieser vom Backbone getrennt um den Backbone wieder frei zu bekommen, der Anschluss bleibt so lange vom Backbone getrennt bis die Störung wieder aufgehoben ist (SCL und SDA =HIGH).
Das Problem ist nur das der IOW-24 als Master auch an dem Backbone direkt angeschlossen ist.
Das bedeutet sollte der IOW-24 den besagten Fehler erzeugen, trennen alle Anschlüsse sich vom Backbone da diese nicht erkennen können von wo die Störung kommt, verbinden aber sofort wieder da der getrennte Anschluss ja keine Störung hat, dies geschieht rekursiv !
Lösung:
ich müsste den IOW-24 selber an einem der Anschlüsse anschliessen , was aber einen Anschluss belegt.
Oder ich muss nach jebem vergeblich Schreibversuch einen Lese-Zyklus einleiten um den Bus
wieder frei zu bekommen.
mfg
R.Greinert
- Christoph Jung
- Posts: 674
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: IOW 24 und I2C
Was ist denn daran so schlimm, dass man nach jedem schreiben einfach ein lesen hinterherschiebt? Hat das Auswirkungen auf irgendwas?
Zwar erklärt das nicht, warum das mit dem IOW56 nicht passiert aber es wäre ein Workarround. Dem I2C-Problem werd ich aber mal nachgehen und schaun wo es hackt.
Zwar erklärt das nicht, warum das mit dem IOW56 nicht passiert aber es wäre ein Workarround. Dem I2C-Problem werd ich aber mal nachgehen und schaun wo es hackt.
Software developer
-
friend-of-rq
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
Re: IOW 24 und I2C
Hallo Herr Jung,
die Zeit die zwischem dem Erkennen eines fehlgeschlagenem I2C-Schreibversuch und
dem als Workarround folgendem lese Zyklus ist ja nicht gleich null ...
Das heisst in dieser Zeit geht der I2C-HUB auf Störunterdrückung (rekursiv) da ja die Störung
im Backbone ist.
P.S. ein frohes neues und gesundes Jahr an alle hier im Forum.
mfg
R.Greinert
die Zeit die zwischem dem Erkennen eines fehlgeschlagenem I2C-Schreibversuch und
dem als Workarround folgendem lese Zyklus ist ja nicht gleich null ...
Das heisst in dieser Zeit geht der I2C-HUB auf Störunterdrückung (rekursiv) da ja die Störung
im Backbone ist.
P.S. ein frohes neues und gesundes Jahr an alle hier im Forum.
mfg
R.Greinert
-
Guido Körber
- Site Admin
- Posts: 2883
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IOW 24 und I2C
Ich kann den Fehler bestätigen. Wenn bei einem IIC Write das ACK ausbleibt, bleibt SCL auf Low. Wir werden das irgendwann bei einer Revision der Chips beheben.