PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] I2C Bus läuft nach Kaltstart des atmega nicht aber nach reprogrammiert via ISP



Ritchie
07.07.2012, 14:53
Hallo Zusammen,

ich habe derzeit ein seltsames Problem. Vor dem Urlaub habe ich einige Änderungen bezogen dem I2C Bus an meinem Roby gemacht. Jetzt komme ich zurück und mein atmega will nicht mehr mit dem neuen Linuxsystem reden (nicht immer, aber immer öfter).

Nachdem der Linux-Rechner auch einen neuen Kernel bekommen hat, sind die Fehler der Übertragung (Sporadisch) endlich weg. Hier lag der Fehler in der Verwendung der I2C Hardware des ARM9, welche wohl grottenschlecht sein soll. Der neue Kernel macht das jetzt selber und das arbeitet deutlich stabiler.

Nur die Kommunikation zu meinem einzigen AT mega 32 geht nicht mehr.

Lade ich das Programm und die Fuse Bits nochmals in den Kontroller ohne auszuschalten, klappt plötzlich die Kommunikation.

Schalte ich alles aus und starte das System komplett neu, arbeitet der i2c Bus nicht mehr. Stecke ich diesen einen atmega32 vom Bus ab, arbeitet er wieder. Der zieht SDA/SDL auf Low Signal.

Kann es der Quarz sein ? (ist mir noch nie kaputt gegangen)

Habe ich einen Fehler in den Fuse Bits ? (siehe Anhang)

Den Kontroller habe ich bereits auch ausgetauscht und auch in einer anderen Schaltung geprüft. Dort arbeitet der Kontroller, wenn ich das entsprechende Programm lade.

Hat jemand noch eine Idee, was ich hier machen kann ?


Edit:
Ach ja, ich hatte noch die PULL's des I2C Bus im Wert erhöht auf 3,8kOhm.

Edit1:
Ich habe einen Timertest eingefügt (LED im Sekundentakt blinken). Der arbeitet korrekt.

Edit 2: Es scheint ein Software-Problem meiner Interrupt-Routine zu sein. Der neue Kernel scheint hier eine Start/Seq. Zu senden, welches mein I2C Protokoll ins stocken bringt.
Stecke ich den Kontroller nach dem Systemstart des Linux-Rechner auf, arbeitet das System korrekt.

Gruss R.