Atmega8 läßt sich nicht umprogrammieren
Hallo,
wieder mal das leidige Thema Fuses. Habe mir die Laufschrift aus Elektor mit programmierten Controller von Elektor gebaut. Funktioniert prima.
Jetzt habe ich den Text geändert und in BASCOM AVR compiliert. Das Auslesen der ELEKTOR CPU Atmega8 ergab folgende Werte
Read Signature: 0x1E 0x93 0x07
Lock Byte: FF
Fuse Bytes: DF D9
V target: 5.1
AREF 5.0
Osc.: 00 01
Frequ. 3.686 Mhz
Ich benutze den STK500 zum programmieren, lese eine neue CPU aus und habe bei den Fuse Bytes E1 D9, also 1 Mhz. Ich ändere E1 in DF (16Mhz und 4ms Startup) lade das Input file Schrift.hex in Flash, Mode auch auf Flash, Erease Device - ok, Program - ok, Verify - ok.
Trotz allem ist das Fusebyte High nicht umprogrammiert, nach dem Auslesen ist es immer noch auf E1. Wenn ich nun beim Auslesen das High Byte in DF ändere und write betätige ist die CPU verbrannt und läßt sich weder programmieren, noch auslesen.
Was mache ich falsch? (Und gibt es eine Möglichkeit die verbrannten CPUs wieder zu beleben?)
Die neue CPU mit E1 funktioniert, allerdings mit 1 Mhz, d.h. sie hat das Programm angenommen.
Gruß Lutz27
Liste der Anhänge anzeigen (Anzahl: 3)
Atmega8 läßt sich nicht umprogrammieren
Hallo Sauerbruch,
anbei die versprochenen Screenshots. Ich habe eine Linie eingezogen, die den Bezug zu dem Fenster herstellt, in dem der Cursor steht.
Gruß Lutz27
Liste der Anhänge anzeigen (Anzahl: 1)
Atmega8 läßt sich nicht umprogrammieren
Hallo Sauerbruch,
als Referenz habe ich ja die von ELEKTOR programmierte CPU, die in die eingesetzte Schaltung mit dem 16 Mhz Quarz auch einwandfrei arbeitet. Ich habe das Original HEX-File aus der CPU ausgelesen und separat abgespeichert. Das Transferieren in eine nagelneue CPU funktioniert auch. In der Schaltung wird das Elektor Original gegen die gerade geflashte CPU getauscht und arbeitet falsch, das heißt, wenn ich den Arm ganz langsam von Hand drehe, kann ich erahnen, daß die Schrift auch erscheint. Allerdings scheint die CPU mit den internen 1 Mhz zu arbeiten, was mich wieder zu den Fuse Bytes bringt, da die ELEKTOR CPU in genau derselben Schaltung einwandfrei mit 16 Mhz arbeitet (siehe Bild).
Gruß Lutz27
Atmega8 läßt sich nicht umprogrammieren
Hallo Sauerbruch,
in dem Tutorial habe ich gelesen, daß man verfuste CPUs nur wieder in Parallel Mode reanimieren soll. Dazu soll man Die Jumper entsprechend setzen und die Brücken laut Muster (STK500) Port B und Port D setzen. Habe natürlich in den Options auch Parallel Mode selected. Ich habe auch probiert an Pin 9 (XTAL1) 250 Khz anzulegen (1/4 Takt bei 1 Mhz). Die CPUs ließen sich leider nicht resetten. So gut so schlecht.
Noch einmal zu meinem Verdacht, daß in dem BASCOM Programm etwas vertauscht sein könnte (natürlich ist mir klar, daß die Jungs ausgeschlafen sind), wenn ich die funktionierende CPU auslese (Fuses) dann bekomme ich in dem Textfenster "Fuse byte 0 DF" und "Fuse byte 1 D9". Gehe ich mit dem Mauszeiger auf das Fenster, in dem DF steht, öffnet sich ein Fenster, in dem Fuse High byte steht und bei D9 Fuse Low byte. Also muß byte 0 = high und byte 1 = low sein. Vertausche ich high und low Bytes und gehe auf den write-Button, bestätigt mir das Textfenster, die Programmierung. Auch das Verify ist ok. Wenn ich das Bascom Programm resette (STK500 ausgeschaltet) und die CPU erneut auslese, sind die Fuse Bytes wieder an der alten Stelle wie vor dem Vertauschen. Also hat die CPU die Umprogrammierung scheinbar nicht vorgenommen, obwohl ich garkeine Fehlermeldung bekommen habe.
Mann, das muß doch möglich sein den Atmega8 genauso einzustellen, wie das die ELEKTOR Leute gemacht haben.
Gruß Lutz27