Hallo,
nachdem ich meine ersten Erfahrungen mit dem Atmega mit einem
Evaluations-Board von Pollin gemacht habe, habe ich mir nun einen
USBasp-Programmer und ein Atmega128-Modul besorgt. Ich habe damit aber
ein paar Probleme.
Ich benutze avrdude unter Linux. Der USBasp ist USB-Powered, das
Atmega-Modul auch, es wird nur über den ISP versorgt. Es ist sonst
nichts
angeschlossen.
Das erste Problem ist, dass der Atmega manchmal nicht richtig erkannt
wird:
1 | avrdude: Device signature = 0x000102
|
2 | avrdude: Expected signature for ATMEGA128 is 1E 97 02
|
Wenn ich am Programmer den Dip-Switch auf "Slow SCK" setze, dann tritt
das Problem nicht mehr auf.
Ich habe bis jetzt nur die Fuses für den externen Quarz gesetzt und
Atmega103 Kompatibilitäts-Modus ausgeschaltet. Ich habe noch nichts ins
Flash geschrieben.
Ich habe testweise versucht das Flash auszulesen, auch wenn noch nichts
vernünftiges drinsteht. Dabei bekomme ich die Fehlermeldung im Betreff:
1 | avrdude: error: wrong reading bytes b8
|
und zwar ohne "Slow SCK" sehr früh und mit der Einstellung sehr spät,
danach bleibt dann auch die rote LED an.
Man dauert das immer lange.
Ich habe herausgefunden, dass die Fehlermeldung von avrdude in der
Funktion usbasp_paged_load ausgegeben wird, wenn der Aufruf von
usbasp_transmit nicht die richtige Anzahl von Bytes übertragen hat.
Interessant ist, dass die Zahl immer 0xb8 also 184 ist.
Das Problem tritt sowohl mit avrdude 5.4 als auch mit der Version 5.5
auf.
Die Version der Firmware des USBasp kenne ich leider nicht, kann man die
irgendwie abfragen. Ich wollte Geld sparen und habe mir den USBasp in
Thailand bestellt, bitte nicht gleich hauen.
Die Geschichte ist zwar schon irre lang geworden, aber ich fasse
trotzdem
noch mal zusammen. Es scheint grundsätzlich alles zu funktionieren, aber
es ist sehr instabil.
Wie kann ich das Problem eingrenzen? Was kann ich tun?
Gerald