Scheiss I2C, bzw. Problem mit ATmega128 und I2C

16/05/2012 - 16:17 von Stefan | Report spam
Hallo,

ich habe heute Leiterplatten vom Bestücker bekommen und die ersten drei
Stück laufen nicht und ich steh hier irgendwie auf dem Schlauch...

Den Fehler haben wir inzwischen lokalisiert: Beim Zugriff auf TWI hàngt
das Ding.

Auf der Platine gibt es neben dem ATmega128 einen 24LC512 und einen
PCF8583. Angeschlossen an PORTD.0 und PORTD.1.

Die Software fragt am Anfang eine RTC ab und schreibt etwas in ein EEProm.

Der 24LC16 wird mit 16 Bit Adresse angesprochen und der PCF8593 (RTC)
mit 8-Bit Adresse. Deshalb gibt es auch die entsprechenden Routinen doppelt.

Es spielt aber keine Rolle, ob der 24LC512 oder der PCF8583 angesprochen
wird. In beiden Fàllen hàngt das Ding.

Jetzt haben wir von dem Teil schon mehr als 100 Stück verbaut und bisher
keine Probleme gehabt. Nur die neuen Platinen machen Stress und es ist
nicht zu erkennen, wieso.

Ich hab dann eine àltere identische Baugruppe genommen und die
funktioniert einwandfrei. Die I2C Bausteine (die zum Glück gesockelt
waren) habe ich über kreuz getauscht, aber ohne Erfolg. Daran kann es
also nicht liegen.

Wir haben dann zusàtzliche Pull-ups eingebaut und außerdem bei der
Initialisierung die Port-Pins D0 und D1 explizit auf 1 gesetzt. Pull-ups
waren 4k7. Wir haben nochmal 2 Stück 4k7 eingebaut.

Jetzt funktioniert es manchmal.

Hat irgendjemand eine Idee?

Wie schon geschrieben: Das hat schon mehr als 100x funktioniert und
làuft im Feld seit mehreren Jahren weitgehend störungsfrei.

Gruß

Stefan
 

Lesen sie die antworten

#1 Thomas tom Malkus
16/05/2012 - 17:09 | Warnen spam
Moin Stefan,

Am 16.05.2012 16:17, schrieb Stefan:

Den Fehler haben wir inzwischen lokalisiert: Beim Zugriff auf TWI hàngt
das Ding.



Ja, hatte ich auch mal Schwierigkeiten mit. ein 644er mit einem 88er die
sich per TWI unterhalten. TWI und Atmel war ja schon immer nicht
so ganz simpel. Ein Kollege nimmt gar nur noch SPI.

Auf der Platine gibt es neben dem ATmega128 einen 24LC512 und einen
PCF8583. Angeschlossen an PORTD.0 und PORTD.1.



Hat sich der Controller geàndert? Evtl. jetzt ein P-Typ?

Es spielt aber keine Rolle, ob der 24LC512 oder der PCF8583 angesprochen
wird. In beiden Fàllen hàngt das Ding.



Hast Du mal elektrisch nur einen angeschlossen und dann geprüft?

Hat irgendjemand eine Idee?



Hast Du einen Analyzer, den Du auf den Bus loslassen kannst?

73, Tom
DL7BJ * DL-QRP-AG #1186 * AGCW-DL #2737 * DARC OV I19 *
http://www.dl7bj.de https://twitter.com/#!/dl7bj
Do you know http://www.radiocaroline.co.uk?

Ähnliche fragen