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!
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.
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.
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?
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ß
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
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!
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
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?
>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
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
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
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
Also wie oben geschrieben ....Angeschlossen. Noch immer der gleiche
Fehler. "Leaving Programming Mode....FAILED!" und dann wieder diese
Hassmeldung "1/4 frequency".
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.
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.
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
>> 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).
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ß
> 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).
@ Stefan B.:
>Als Taktgenerator dient ein RC-Generator, den ich einmal zwischen>XTAL1/XTAL2 gegen Masse und einmal zwischen XTAL1 und XTAL2 geschaltet>habe.
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.