PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : i²c - SDA und SCL mit LED sichtbar machen



HannoHupmann
23.01.2013, 12:58
Hallo

ich möchte gerne jeweils eine LED an die SDA und SCL Leitung anklemmen, um optisch anzuzeigen ob sich auf den Leitungen etwas tut. Gibt es dabei etwas zu beachten oder sollte es einfach mit einer LED und einem passenden Widerstand bei 3,3V funktionieren?

Kampi
23.01.2013, 13:29
Hey,

ich sehe das ab und an bei meinem RN-Control. Wenn ich da den I²C nutze leuchten auch die LEDs und es scheint nicht zu stören.

HannoHupmann
23.01.2013, 13:46
Vermutlich muss ich mir das nur mal am Oszi ansehen ob der Pegel dadurch irgendwie in Mitleidenschaft gezogen wird. Leider hab ich kein geeignetes Oszi, meine vorhandenes kann sowas leider nicht anzeigen.

Klebwax
23.01.2013, 14:01
Der I2C Bus ist Open Collektor, er wird also aktiv nur nach Low getrieben. Damit man den Bus nicht stört, müssten die LEDs an Vcc liegen und nach GND geschaltet werden. SDA und SCL müssen, nach Spec, mindestens 3mA treiben können. Wenn der Bus kapazitiv belastet ist, schöpft man mit den Pullups gerne die vollen 3mA aus (z.B. 1k an 3,3V). Da bleibt dann, wieder nach Spec, nichts mehr für die LED. Nun können heutzutage CMOS Ausgänge mehr als 3mA, es könnte also gehen.

Ich würde einen Buffer dazwischen schalten, HC04 oder HC14, dann wird der Bus nur mit den wenigen pF Eingangskapazität des Buffers belastet.

Die Frage ist, was man gewinnt. Bei 100kHz dauert ein Byte ca. 100 µs, bei SCL ist die Diode auch nur die Hälfte der Zeit an. Da sieht man nicht wirklich viel. Und Probleme resultieren eigentlich selten daraus, daß der Master nicht sendet. Das macht er typisch blind auf den Bus. Sondern sie kommen daher, daß der Slave nichts oder etwas falsches versteht. Das kann man mit LEDs eigentlich nicht erkennen. Um wirklich die Signale beurteilen zu können, braucht man ein Scope, bei einem DSO könnte man dann noch die Bits von Hand auszählen.

Ich debugge I2C mit einem saleae Mini Logic analyzer. Der decodiert gleich das Protokol. Im Netz findet man aber preiswertere Alternativen. Wenn man direkten Zugriff auf die I2C Hardware Register hat und sich unterstützende Funktionen schreibt, könnte man auch mit Breakpoint und Single-Step auskommen. Es ist eine Frage der Zeit und der Mühe, die man aufwenden will.

MfG Klebwax

Frank
13.02.2013, 15:22
Mit kleinen stromsparenden LED´s und 1KOhm davor klappt I2C in der Praxis meistens (Kathode über Widerstand an Port, Anode an +5V)! Das ganze dürfen nur nicht mehrere Boards am selben Bus machen!
Aber ist grenzwertig, es könnte I2C Bausteine geben die das nicht so mögen, daher am besten wie bei RN-Control abschaltbar machen.

PICture
13.02.2013, 15:45
Hallo!

Damit man einzelne Impulse bzw. schnell schaltende Signale ohne Oszi besser sieht, könnte man retriggerte Monoflops (z.B 74HC123) mit Impulslänge um 0,1 s und LED's am Ausgängen verwenden. ;)