SCL-Leitung zerstört!

Gast #762573
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
#762589
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.
Gast #762600
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
Gast #768357
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren