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
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.
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
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
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.