Forum: Mikrocontroller und Digitale Elektronik SCL-Leitung zerstört!


von Enrico (Gast)


Lesenswert?

Hi,
ich muss einfach mal fragen, ob jemand ähnliche Erfahrungen gemacht hat 
oder ich unfähig bin richtig zu isolieren.
Mir ist es jetzt bei einem Schaltungsaufbau (Roboter) zum 2. mal 
passiert, dass plötzlich während des Betriebs die SCL-Leitung des 
I2C-Busses zerstört wurde, also sämtliche daran hängende MC-Pins.
Ich verwende aussschließlich AVRs (Mega32, Tiny26, Tiny2313) und habe 
leider keine Ahnung warum dieses Phänomen auftritt.
Eigentlich würde ich ja darauf tippen, dass ein lockeres 12Volt 
führendes Kabel die Bekanntschaft mit der SCL-Leitung gemacht hat, aber 
2x hintereinander? Und ich habe auch keine freie Leitungsenden gefunden 
und der Aufbau war beide male komplett verschieden.
Können sich die AVRs irgendwie gegenseitig schroten?
Vorschläge? ;)

Liebe Grüße
Enrico

von Jadeclaw D. (jadeclaw)


Lesenswert?

Ja. Sie können. Denkbare Ursache: Durch 
Störungen/Spannungszusammenbrüche kann es unter Umständen passieren, daß 
die Controller durcheinander kommen und dann 2 Portpins auf Ausgang 
geschaltet werden. Einer auf 1, der andere auf 0. Das ergibt dann einen 
Kurzschluss, den die Portpins nicht lange mitmachen. Ein Widerstand in 
Serie > 200 Ohm erschlägt das Problem. Der Master treibt die Leitung 
direkt, die Slaves bekommen den Serienwiderstand verpaßt.
Auch die Software nocheinmal komplett durchsehen, ob da nicht doch 
irgendwo eine Zuweisung/Zugriff auf das Richtungsregister erfolgt, der 
den Portpin zur Unzeit auf Ausgang schaltet.

Gruß
Jadeclaw.

von TK (Gast)


Lesenswert?

Hallo,
die IIC Richtlinie besagt, dass ein H-Pegel NUR über einen Pull-Up in 
der entsprechenden Leitung zustande kommen darf. Demnach dürfen die 
Devices einen H-Pegel so ausgeben, dass die entsprechende Leitung am uC 
auf INPUT geschaltet ist!! Wohingegen ein L-Pegel am Bus über einen 
OUTPUT L des uC vorgegeben wird. Ausnahmen sind z.B. EEPROMs, die als 
einzige SLAVES am Bus hängen. Dann kann der MASTER auch mal einen 
aktiven H-Pegel ausgeben. Das soll aber NICHT die REGEL sein!
Daher die Vermutung wie mein Vorschreiber schon gesagt hat.
Portpin Konfiguration prüfen und sicherheitshalber mal serielle 
Widerstände in die Leitungen einfügen bis das Problem behoben ist.

Gruß
TK

von Enrico (Gast)


Lesenswert?

Danke, dass hört sich logisch an :)
Werde mal die angesprochenen Schwachstellen durchgehen und evtl. die 
Schaltungen mit Widerständen beglücken.
Nur, damit ich es richtig verstehe mit den Widerständen; die also 
praktisch vor jeden Slave als "Vorwiderstand"?

MASTER SCL >---|------|-----> ....
               |      |
              | |    | | 220Ohm
              | |    | |
               |      |
               |      |
              \|/    \|/
              Slave1 Slave2  ....
              SCL    SCL

von Der Dude (Gast)


Lesenswert?

Ja. Und bei der SDA-Leitung das Gleiche.

von Enrico (Gast)


Lesenswert?

Jo, schon klar ;)

Vielen Dank allen!

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
Noch kein Account? Hier anmelden.