Forum: Mikrocontroller und Digitale Elektronik ISP Mode Error in AVR Studio


von Thomas G. (Gast)


Lesenswert?

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

von Julian R. (tuefftler)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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.

...

von Thomas G. (Gast)


Lesenswert?

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 :-(

von Hannes L. (hannes)


Lesenswert?

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.

...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Thomas G. (Gast)


Lesenswert?

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...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

10k...100k funktionieren. Niedriger braucht mehr Strom, höher vermindert 
die Störfestigkeit.

von Thomas G. (Gast)


Lesenswert?

Ok, vielen Dank!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.