Forum: Mikrocontroller und Digitale Elektronik Flashproblem - ISP Error


von Stefan (Gast)


Lesenswert?

Hallo,


wie in meinem anderen Thread bereits erwähnt, kann ich meinen 
Mikrocontroller plötzlich nicht mehr flashen. Warum auch immer, habe 
keine Veränderungen zum vorherigen Zustand, wo ich noch einwandfrei 
flashen konnte.

Es handelt sich um einen ATmega16 und dem USB-Programmer "AVR ISPmkII".

Das Programm lässt sich fehlerfrei compilieren, beim Flashen kommt dann 
im "AVR"-Menü:

"Programming Flash....FAILED!" mit der messageBox: "Verify that the 
device is placed (...)Check that the ISP programing frequency (...) 1/4 
below..."

Woran kann das liegen?

Habe lediglich in den Fuses "JTAG" disabled. (Haken rausgemacht). Danach 
konnte ich das Programm noch einwandfrei flashen, nach dem zweiten mal 
ging es nicht mehr, mit der obigen Fehlermeldung.



Gruß und Danke

Danke!

von Stefan (Gast)


Lesenswert?

Hat keiner eine Idee??

von Lehrmann M. (ubimbo)


Lesenswert?

Du hast in professionell verfust oder du hast ihn geröstet 
(Überspannung, Verpolt, etc.)

Bei verfusen: http://www.mikrocontroller.net/articles/AVR_Fuses

Die Kinderkrankheiten des AVRs halt ...

von Stefan (Gast)


Lesenswert?

Kann man den nciht mit High-Voltage irgendwie wieder auf factory 
reseten?

von Hubert G. (hubertg)


Lesenswert?

Natürlich kann man es wenn der Kontroller sonst noch funktionsfähig ist.

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


Lesenswert?

Stefan schrieb:
> nicht mit High-Voltage irgendwie wieder

Ja, aber nicht mit dem AVR-ISP mkII. Das hat schonmal jemand versucht 
und dann den mkII gegrillt...

Lege erstmal einen externen Takt >1Mhz an XTAL1 und stelle die 
ISP-Frequenz auf 125kHz.

von Stefan (Gast)


Lesenswert?

Die Frequenz lässt sich leider nicht einstellen...


Was mich eben vorwundert ist, dass wenn ich die Versorgungspannung 
anlege, der Controller zufällig reagiert.
Mal klackern die Relais, mal nicht. Mal sporadisch, Mal garnicht.


Ich weiß nicht woran es liegt. Ich werde mal einen euen Controller 
nehmen :-/ Schade, so schnell sind 4 Euro futsch.

von Stefan (Gast)


Lesenswert?

Also weiß keiner mehr, was ich noch versuchen kann??

von Chris (Gast)


Lesenswert?

Stefan schrieb:
> Was mich eben vorwundert ist, dass wenn ich die Versorgungspannung
> anlege, der Controller zufällig reagiert.
> Mal klackern die Relais, mal nicht. Mal sporadisch, Mal garnicht.

Hm, Relais? Könnten EMV-Probleme sein. Freilaufdiode drin? Snubber an 
den Schaltkontakten? Hängt an den ISP-Pins noch etwas außer dem 
Programmer?

von Stefan (Gast)


Lesenswert?

Freilaufdioden sind dran.

Ja, auch Filter sind angebracht (RCs).

An den ISP-Pins hängt nichts außer die 5 V Versorgungsspannung, Masse 
und die Leitungen die direkt an den Controller gehen.



Gruß

von Chris (Gast)


Lesenswert?

Wie hast Du die Relais denn angeschlossen? NPN Transistor? Falls ja, 
mach mal 10k von Basis nach GND. Ich vermute das zufällige Schalten 
kommt von der floatenden Basis. Die Ports sind ja tristate solange sich 
der Controller im Reset befindet und an der Basis liegt dann kein 
eindeutiger Pegel an.

Wo soll der Controller seinen Takt herbekommen? Quarz oder interner 
RC-Oszillator? Ob der Quarz schwingt kannst Du ggf. mal messen.

Ich vermute mal, dass der Controller einfach nicht aus dem Resetzustand 
rauskommt. Falls Du ihn versehentlich verfused haben solltest kannst Du 
das hier mal versuchen:
http://www.mikrocontroller.net/articles/AVR_Fuses#Reaktivieren_bei_fehlerhaften_Taktquellen-Fuse-Einstellungen

von Stefan (Gast)


Lesenswert?

Also am Anfang, wo das JTAG noch enabled war und ich direkt an den Pins 
des Controllers die Spannungen gemessen habe, schwankte die Spannung 
bereits an den Pins des Controllers. Also bereits "vor der Basis" des 
Transistors.

Der Reset geht mit einem 10 kOhm-Widerstand in Reihe direkt auf Vcc. 
Stimmt ja laut diversen "AVR-Grundschaltungen" soweit auch.

Den Takt liefert ein 14 MHz-Quarz, habe auch dafür bereits die Fuse 
gesetzt. ("Ext. Crystal....")

Wieso sollte er nicht mehr aus dem RESET kommen, wenn ich am 
RESET-Eingang definitiv einen LOW-Pegel habe?

Danke!

von spess53 (Gast)


Lesenswert?

Hi

>Wieso sollte er nicht mehr aus dem RESET kommen, wenn ich am
>RESET-Eingang definitiv einen LOW-Pegel habe?

Sicher, das der low ist? Oder Schreibfehler?

MfG Spess

von Stefan (Gast)


Lesenswert?

Moment.

Der RESET-Eingang ist ein L-aktiver Eingang. Heißt, er ist aktiv, wenn 
LOW anliegt.

Was soll aber für ein anderer Pegel anliegen, wenn ein 10 k dranhängt, 
an dem die ganze Spannung abfällt?

von ich (Gast)


Lesenswert?

>Was soll aber für ein anderer Pegel anliegen, wenn ein 10 k dranhängt,
>an dem die ganze Spannung abfällt?

Wo kaum Strom fließt, fällt kaum Spannung ab :-)

Reset muss HIGH sein

von Stefan (Gast)


Lesenswert?

wofür ist dann der Widerstand?

von gerd (Gast)


Lesenswert?

Stefan schrieb:
> wofür ist dann der Widerstand?

Überleg doch mal, was passieren würde, wenn irgendein externes Bauteil 
(z.B. ein Taster) den RESET auf LOW (also GND) ziehen würde und der 
Wiederstand wäre nicht da...

- gerd

von gerd (Gast)


Lesenswert?

Arg... Widerstand... man denke sich bitte das 'e' weg. ;)

- gerd

von Stefan (Gast)


Lesenswert?

Soo....jetzt gibts Neues zu berichten:


Habe jetzt mal die Fuses auf "Int. RC Oscillator 1 MHz" gestellt, in den 
Project Configuration dann auch die 1000000 Hz eingetragen und 
anschließend geflasht.
Dann war erstmal der gleiche Fehler "Programming Flash...FAILED!". Shit 
dachte ich mir, was machste jetzt:

Dann habe ich den Haken bei "Erase Device before Programming" gsetzt, 
siehe da, er flashte auf Anhieb und das Programm lief einwandfrei.
Habe auch den Strom abgezogen, wieder eingesteckt, Programm lief weiter. 
Auch den AVRISPmkII habe ich während des Betriebs abgezogen und wieder 
draufgesteckt, läuft ohne Probleme.

Nun aber habe ich mir gedacht, dass ich das Ganze ja mit meinem Quarz 
auch testen muss.

Ich Depp habe dann aber anstatt "ext. Crystal/Resonator" den Haken bei 
"ext. Clock" gesetzt. Jetzt kommt beim Versuch zu Flashen die Meldung

"Entering Programmingmode ... FAILED!"

Habe ich mich jetzt "selbst ausgeschlossen?



Danke

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ja, leider.
AVR Fuses

von Stefan (Gast)


Lesenswert?

Und wie geh ich jetzt vor?!

von Chris (Gast)


Lesenswert?

Liest Du eigentlich überhaupt was man dir hier schreibt? Der Link auf 
diese Seite wurde dir hier schon mindestens drei mal gegeben.
http://www.mikrocontroller.net/articles/AVR_Fuses#Reaktivieren_bei_fehlerhaften_Taktquellen-Fuse-Einstellungen

von Stefan (Gast)


Lesenswert?

Habe jetzt einen Takt (RC-Generator zwischen Pin 11 und Pin 13 -> XTAL1) 
angeschlossen.

Jetzt gehe ich in die AVR-Settings und wähle unter Fuses dann "Int. RC 
Osc" aus?

Oder was muss ich machen? Muss ich den Controller vorher nochmal reseten 
bzw. Stromlos machen, bevor ich die Fuses verändere?

Danke

von Stefan (Gast)


Lesenswert?

Also wie oben geschrieben ....Angeschlossen. Noch immer der gleiche 
Fehler. "Leaving Programming Mode....FAILED!" und dann wieder diese 
Hassmeldung "1/4 frequency".

von Stefan (Gast)


Lesenswert?

Hat keiner eine Idee??


Danke schonmal! :-)

von Carsten (Gast)


Lesenswert?

Was hast Du denn genau aufgebaut zur Takterzeugung (kurze Zeichnung)? 
Wie sieht die Signalform an Pin 11 aus? Wenn das alles passt, dann ist 
wahrscheinlich nur die ISP-Frequenz zu hoch.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Stefan schrieb:

> Habe jetzt einen Takt (RC-Generator zwischen Pin 11 und Pin 13 -> XTAL1)
> angeschlossen.

Klappt damit das Auslesen der Signatur und der AVR Fuses?

> Jetzt gehe ich in die AVR-Settings und wähle unter Fuses dann "Int. RC
> Osc" aus?

Ja, wenn obiges funktioniert.

Wenn die Fuses wieder auf dem internen RC-Oszillator stehen, Schaltung 
spannungslos machen und Takt (RC-Generator zwischen Pin 11 und Pin 13 -> 
XTAL1) entfernen.

Dann Auslesen der Signatur und der AVR Fuses mit ISP und internem Takt 
testen.

von Stefan (Gast)


Lesenswert?

Hallo!

Als Taktgenerator dient ein RC-Generator, den ich einmal zwischen 
XTAL1/XTAL2 gegen Masse und einmal zwischen XTAL1 und XTAL2 geschaltet 
habe.

Sobald ich die AVR-Settings öffne und auf den Reiter "Fuses" klicke, 
kommt diese Fehlermeldung (1/4 frequency....).

Wie soll ich den RC-Generator denn noch anschließen?


Danke

von Stefan B. (stefan) Benutzerseite


Lesenswert?

>> Klappt damit das Auslesen der Signatur und der AVR Fuses?

Klappt also nicht. Damit müssen wir an dem externen RC-Oszillator oder 
dessen Anschluss an den Atmega16 zweifeln.

Grundsätzlich soll bei verfusten AVRs (Einstellung versehentlich auf 
External Clock) eine eigenständige Taktquelle (günstig 500 kHz bis 2 
MHz) an den XTAL1 (und nur XTAL1) angeschlossen werden. XTAL2 kann zur 
Takterzeugung nicht benutzt werden, denn dort kommt bei dieser 
verflixten Fuseeinstellung nix raus. Die Taktquelle kann sich nicht auf 
Anregung aus dem XTAL2 Pin stützen.

Wenn dein externer Taktgeber ein selbstgebauter ist: Wie ist der externe 
RC-Oszillator exakt aufgebaut und welche Frequenz soll der erzeugen? 
Bitte Schaltplan angeben (Handskizze reicht).

Wenn dein externer Taktgeber ein gekaufter ist: Bitte Datenblatt oder 
Link zum Datenblatt plus Schaltplan angeben (Handskizze reicht).

von Stefan (Gast)


Lesenswert?

Ok Danke erstmal.


Das ist mein Takterzeuger:    VOLTCRAFT FG1617 Funktionsgenerator.

Mit diesem habe ich letztens - als ich geschrieben habe, dass es nicht 
funkionierte - 1 MHz eingestellt.

Somit ist es also KEINE Selbstgebaute Taktquelle.


Ich weiß langsam nicht mehr weiter :-(

Ansonsten kaufe ich mir halt einen neuen AVR.



Gruß

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> Ich weiß langsam nicht mehr weiter :-(
> Ansonsten kaufe ich mir halt einen neuen AVR.

Ist vielleicht besser. Denn ich verliere jetzt auch die Lust noch mal zu 
fragen, wie was angeschlossen ist.

Der VOLTCRAFT FG1617 Funktionsgenerator würde man mit der heissen 
Leitung (Signal) an XTAL1 anschliessen und mit dem kalten Ende an GND 
(nicht! an XTAL2).

Der VOLTCRAFT FG1617 Funktionsgenerator muss so eingestellt sein, dass 
die Anforderungen an die Signalform und Signalpegel die 
Anforderungen im Datenblatt des Atmega16 erfüllen. Fehleinstellungen 
können den AVR gefährden.

Also ein TTL Taktsignal und kein Wechselspannungssignal (Seite 
292ff. im Datenblatt).

von Stefan (Gast)


Lesenswert?

@ Stefan B.:

>Als Taktgenerator dient ein RC-Generator, den ich einmal zwischen
>XTAL1/XTAL2 gegen Masse und einmal zwischen XTAL1 und XTAL2 geschaltet
>habe.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ratsch!























Was war das?
























Der Geduldsfaden, die mir gerade gerissen ist. Bin wech. So long. Mach's 
gut. Viel Glück.

von Carsten (Gast)


Lesenswert?

Schließe den Funktionsgenerator mal so wie in 
Beitrag "Re: Flashproblem - ISP Error" beschrieben an und 
dann mach mal ein Bild mit dem Oszi an XTAL1.
Bei 1 MHz Takt würde ich die ISP-Frequenz nicht höher als 125 kHz 
einstellen.

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.