Hallo, ich experimentiere mit i2c und sehe ein komisches Phänomen auf dem Oszi. Gelb: Clock Blau: Data Clock wird von der MCU getrieben, Data von einem 100k PullUp. Ist zu viel, ist mir klar, aber so sieht man meine Frage besser. Wenn Clock HIGH geht, bekommt Data auf einmal einen kräftigen Schubs nach oben. Es liegt nicht am Code, das ist sicher. Der Bus ist 10 Meter lang und Data und Clock liegen 2mm auseinander. Wenn ich jetzt die Clock-Leitung abziehe, sieht die blaue Kurve wieder wie erwarter normal aus (ohne Schubser). Es ist also auf jeden Fall so, dass die Leitungen sich beeinflussen. Da bleibt ja nichts mehr übrig als eine kapazitive Kopplung, aber ich kann mir nicht vorstellen, dass der Effekt so stark ist und wenn er es wäre, müsste Blau doch eigentlich RUNTERGEZOGEN werden statt rauf?
Ein 10 Meter langer i2c-Bus mit 100k Pullup, und du wunderst dich über komische Effekte? Ernsthaft?
Zu dumm zum Lesen? "Ist zu viel, ist mir klar, aber so sieht man meine Frage besser."
>Zu dumm zum Lesen?
Nein. Aber dann betreibe den Bus halt innerhalb der Spezifikation und
das Problem ist weg, wie du ja selbst schon andeutest.
Hallo Tom, das ist gut möglich, 10m Kabel werden so ca. 500-1000pF haben. Ludger
Ja, aber sollte Blau dann nicht runtergezogen werden, da es ja die negative Platte des Kondensators ist?
Tom schrieb: > Ja, aber sollte Blau dann nicht runtergezogen werden, da es ja die > negative Platte des Kondensators ist? Nein, sollte es nicht. Über die Koppelkapazität fließt Strom, und genau in der Richtung, wie er "oben reinfließt" fließt er auch unten wieder raus (und macht einen Spannungsabfall am 100k Widerstand. Also springt Blau bei der steigenden Flanke von Gelb nach oben, bei der fallenden Flanke von Gelb nach unten.
Tom schrieb: > Ja, aber sollte Blau dann nicht runtergezogen werden, da es ja die > negative Platte des Kondensators ist? Blau ist hier die Farbe eines gemessenen Spannungsverlaufs und keine Kondensatorplatte. Blau wird hier der Spannungsverlauf gezeigt, der auf der Leitung ensteht und das ist die "positive Platte". mögliche Erklärung: Das I2C-IC hält zuerst (vom vorigen Takt) die Leitung niederohmig auf Null. Dann schaltet es den Ausgang hochohmig für die nächste Siganlausgabe und die Spannung läuft wegen des pullup von 100kOhm "langsam" nach oben. Dann kommt der Moment, wo der Ausgang des IC eine 1 abgibt, und zwar niederohmig, und die Spannung geht plötzlich auf 1. Die nächte Zacke entsteht dann durch: erstmal hochohmig mit kurzer Zeitauf den durch das pullup erzeugten Pegel, danach niederohmig auf 0 geschaltet. komisch ist das Phänomen nur deshalb weil man nicht weiß, dass richtige Pegel nur bei richtigem Abschluss (pullup) der Leitung und bei vorgesehener Länge der Leitung entstehen. 10 m I2C-Bus ist sicher nicht in der Spezifikation.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.