Hallo!
möchte ein Programm auf den Atmega168 über ISP übertragen. Immer wieder
bekam ich den ISP Mode Error mit einer Warnung wie:
1
"warning flash byte address 0x0000 is 0xff should be 0x0c .. FAILED"
Als ich dann die SD-Karte aus meiner Schaltung herausgezogen hatte
funktionierte es wieder. Jetzt habe ich das Problem, dass ich diesen
Fehler bekomme:
1
"Entering programming mode... FAILED"
D. h. ich kann nichts mehr auf den µC übertragen oder abfragen. Ich
hatte vorher bei den Fuses verschiedene Einstellungen bei External
Crystal gemacht. Kann das der Grund sein?
Hat jemand eine Idee wo ich den Fehler suchen könnte? Habe es auf zwei
verschiedenen Boards schon probiert... bei einem Atmega8 gibt es keine
Probleme. Kann ich davon ausgehen, dass der µC kaputt ist? War
eigentlich ganz neu!
Kann man den Controller irgendwie auf den Anfangszustand zurücksetzten?
Wäre klasse wenn jemand weiterhelfen kann!
Gruß Thoms
Hallo,
höchstwarscheinlich hast den Controller verfused, d.h. du hast ihm
Fuseeinstellungen eingebrannt, die nicht zu seiner Außenwelt passen und
somit außer Gefecht gesetzt. In deinem Beispiel wahrscheinlich ein Quarz
eingestellt, obwohl gar keins dranhängt!
Wenn du keine Ahnung hast, was zuletzt auf dem Controller für Fuses
eingestellt waren, kannst du ihn nur noch durch
Hochspannungsprogrammierung wieder in den Anfangszustand zurücksetzen,
was aufwendig ist.
Weist du die Fuses noch, kannst du ja den Controller in das Umfeld
bringen, das du ihm vorgegeben hast.
Mein Rat an dich:
Spiel nicht wahllos mit den Fuses rum, sondern informiere dich im
Datenblatt und stelle erst dann die Fuses, wenn du dir zu 100% sicher
bist, dass du nichts "zerstörst"!
julian
Thomas G. schrieb:> Kann man den Controller irgendwie auf den Anfangszustand zurücksetzten?
Schließ doch erstmal einen externen Taktgeber an (siehe Datenblatt,
Clock-Sources). Wenn Du den Reset-Pin nicht zum Portpin umgefust hast,
müsstest Du den AVR mit externem Takt wieder per ISP ansprechen können.
...
Habe einen externen Quarz in meiner Schaltung. Bei der riesen Auswahl
der Fuses wusste ich halt nicht genau welche Einstellung ich nehmen
muss. Da war ich wohl zu voreillig und hab die falsche Einstellung
genommen... dass ich so den µC verabschieden würde, hätte ich nicht
gedacht. Hatte auch schonmal einen µC mit Einstellung für externen
Quarz, den ich auch in einer Schaltung ohne Quarz ansprechen konnte...?
@Hannes: Wenn ich den Reset-Pin als Ausgangspin verwende, habe ich keine
Chance?
@Julian: Wie funktioniert denn die Hochspannungsprogrammierung? Mein
Problem ist, ich habe nur diesen einen Atmega168 :-(
Thomas G. schrieb:> Habe einen externen Quarz in meiner Schaltung. Bei der riesen Auswahl> der Fuses wusste ich halt nicht genau welche Einstellung ich nehmen> muss. Da war ich wohl zu voreillig und hab die falsche Einstellung> genommen...
Dann nimm doch mal einen Quarzoszillator (Blechsarg mit 4 Pins, aus dem
bei Anlegen der Versorgungsspannung der fertige Takt mit TTL-Pegel
rauskommt) und lege den Takt direkt an den Takteingang des AVRs (siehe
Datenblatt, Kapitel "Clock Sources"). Dann funktioniert auch ISP wieder,
sofern der Resetpin nicht weggefust wurde.
> dass ich so den µC verabschieden würde, hätte ich nicht> gedacht.
Das ist aber allgemein bekannt, dieses Forum ist voll von Hilferufen von
Leuten, die ohne Verstand an den Fuses herumgespielt haben.
> Hatte auch schonmal einen µC mit Einstellung für externen> Quarz, den ich auch in einer Schaltung ohne Quarz ansprechen konnte...?
Das halte ich für ein Gerücht - ääähhh Missverständnis Deinerseits.
> @Hannes: Wenn ich den Reset-Pin als Ausgangspin verwende, habe ich keine> Chance?
Doch, dann brauchst Du einen Programmer, der den HV-Modus
(Hochvolt-Modus) unterstützt, z.B. STK500, AVR-Dragon.
> @Julian: Wie funktioniert denn die Hochspannungsprogrammierung? Mein> Problem ist, ich habe nur diesen einen Atmega168 :-(
Unter "Hochspannung" verstehe ich zwar was Anderes, aber Julian meint
den HV-Modus. Die dabei verwendete "Hochspannung" beträgt 12V und wird
vom Programmer an den Resetpin gelegt.
Wie das funktioniert, steht haarklein im Datenblatt des Controllers. Wie
das aus Anwendersicht funktioniert, beschreibt die Hilfedatei zum
STK500, die mit AVR-Studio4 mitgeliefert wird.
...
Thomas G. schrieb:> Als ich dann die SD-Karte aus meiner Schaltung herausgezogen hatte> funktionierte es wieder.
Was dafür spricht, dass die SD-Karte keinen Pullup an /CS hat(te). Sie
hat daher beim Proggen dazwischengequatscht und so den Programmer
verwirrt. Wenn Du richtig Pech hast, machst Du Dir auf die Weise auch
noch die SD-Karte kaputt. Moral: alle Bausteine, die sich an einem
gemeinsamen SPI befinden, benötigen einen eigenen (externen) Pullup an
/CS.
Vielen Dank für die Antworten!
Habe leider keinen Quarzoszillator da, daher habe ich mir einen neuen µC
bestellt. Habe den USBProg von "Embedded Projects", damit ist scheinbar
die HV-Programmierung nicht möglich...
An der SD-Karte habe ich wirklich keinen Pullup dran. Wieviel Ohm sind
dafür geeignet? Bisher hatte ich einen Atmega8 in meiner Schaltung, da
gab es nie Probleme...