Forum: Mikrocontroller und Digitale Elektronik ATTINY84 mit AVRDUDE nicht beschreibbar..


von Ralph H. (guru)


Lesenswert?

Hallo ich habe hier 2 LP mit nem ATTINY84 drauf daliegen, wo ich ein 
Update machen wollte.
Die eine LP lies sich vollkommen problemlos mit AVRDUDE (auf W2k) via 
(echtem) COM-Port flashen.. :) Soweit gut.. die 2. Platine jedoch macht 
nicht mit.

Konkret habe ich die gleiche Routine zum flashen wie bei der 1.Platine 
verwendet.. das heisst, die Routine und der Syntax sind ok.(ging ja bei 
1.Platine)

Bei der defekten (die vorher ging !!) kann ich zwar flashen..und es 
sieht alles in den Ausschriften von AVRDUDE gut aus, aber das VERIFY 
schlägt fehl und meldet an Adresse x0000 xFF statt dem Wert der dastehen 
sollte,
und ich bekomme ne komische Meldung mit "current erase.." oder und dann 
irgendwas von 400  Was könnte das heissen ?

Die FuseBits stimmen, der ChipCode passt, natürlich habe ich auch alle 
Verbindungen geprüft. Alles ok.

Da der ATTINY ja auch auf die Kommandos von AVRDUDE reagiert, denk ich 
mal das der ok sein müsste.
Gibt es irgendwas wo ich mich vielleicht ausgesperrt hab und was ich 
noch testen könnte?

Danke für Eure Hilfe sagt Ralph

von C-Fragensteller (Gast)


Lesenswert?

Ralph H. schrieb:
> Konkret habe ich die gleiche Routine zum flashen wie bei der 1.Platine
> verwendet.. das heisst, die Routine und der Syntax sind ok.(ging ja bei
> 1.Platine)
Das ist natürlich unheimlich konkret ;).

Ralph H. schrieb:
> und ich bekomme ne komische Meldung mit "current erase.." oder und dann
> irgendwas von 400  Was könnte das heissen ?
Die genaue Fehlermeldung wäre sicherlich hilfreich.

Die 400 könnte vielleicht für die Anzahl der Schreib- bzw. Löschvorgänge 
stehen. Der Flash-Speicher "nutzt" sich beim Schreiben bzw. Löschen 
leider ab. Im Normalfall wird garantiert, dass 1000 (bei älteren Chips 
von AVR) bzw. 10000 (bei aktuelleren) Schreibvorgänge möglich sind.

Vielleicht hat es deinen schon früher erwischt, weshalb auch immer.

Ralph H. schrieb:
> Gibt es irgendwas wo ich mich vielleicht ausgesperrt hab und was ich
> noch testen könnte?
Du kannst natürlich einmal die Fuses auslesen und vergleichen.

von Ralph H. (guru)


Lesenswert?

Also die FuseBits hab ich ja auslesen können und die stimmen auch :-)

Der AtTiny verhält sich beim Schreiben auch so wie er soll, nur das eben 
nix geschrieben wird. D.h. das auslesen bringt den VERIFY Fehler.

Die Abnutzung des Flash sollte es nicht sein, denn laut Datenblatt 
müsste der AtTiny 10000 Zyklen verkraften.

Ist denn schonmal sowas jemand anderen passiert ?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Was für einen Programmer benutzt du denn?

Ansonsten: bitte poste die exakten Meldungen (mit copy&paste bitte
bzw. als Textdateiim Anhang, nicht als Screenshot).

von spess53 (Gast)


Lesenswert?

Hi

Controller vor dem Programmieren gelöscht?

MfG Spess

von Ralph H. (guru)


Lesenswert?

Danke Jörg, ich benutze den einfachen SerCon mit echter COM 
Schnittstelle und Win2k

Syntax: avrdude.exe -p attiny84 -c ponyser -P COM1 -U lfuse:w:0xC2:m -U 
hfuse:w:0xD4:m -U flash:w:firmware.hex

Es kommt ganz banal die Meldung: "verification error, first mismatch at 
byte 0x0000 0xef! = 0xff" "verification error, content mismatch"
"safemode: Fuses OK"

Gruß Ralph

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ralph H. schrieb:
> ich benutze den einfachen SerCon

Im Zweifelsfalle was besseres benutzen.

Du kannst versuchen, ob du mit der -i-Option das Ding zu
zuverlässigerer Arbeit überreden kannst, mal mit -i10 beginnen
und dann die Zahl kleiner machen.

von One (Gast)


Lesenswert?

Hi Ralph

Es ist möglich, dass der Attiny Probleme hat mit der Geschwindigkeit. 
Daher nutze mal das -B Argument von avrdude mit 10:

avrdude.exe -p attiny84 -B 10 -c ponyser -P COM1 -U lfuse:w:0xC2:m -U
hfuse:w:0xD4:m -U flash:w:firmware.hex

Gruss

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

One schrieb:
> Daher nutze mal das -B Argument von avrdude mit 10:

Aus hysterischen Gründen funktioniert die -B-Option nur mit
"intelligenten" Programmern, also denen, denen man explizit per
Protokoll sagen kann, wie schnell sie sein dürfen.

Programmer wie ponyser, bei denen AVRDUDE das Bitbanging selbst
macht, muss man mit der -i-Option zu zusätzlichen Delays überreden.

von spess53 (Gast)


Lesenswert?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

spess53 schrieb:

> Was ist mit
>
> Beitrag "Re: ATTINY84 mit AVRDUDE nicht beschreibbar.."

Macht AVRDUDE von sich aus (wenn man es nicht explizit daran hindert).

von Ralph H. (guru)


Lesenswert?

Danke Euch ..  Ich habe grade eben mal

avrdude.exe -p attiny84 -B 10 -c ponyser -P COM1 -U lfuse:w:0xC2:m -U
hfuse:w:0xD4:m -U flash:w:firmware.hex

avrdude.exe -p attiny84 -i 10 -c ponyser -P COM1 -U lfuse:w:0xC2:m -U
hfuse:w:0xD4:m -U flash:w:firmware.hex

probiert und jedesmal das gleiche Ergbenis bekommen.:-( (Fehler verify)

Komisch ist aber folgendes.. Ich hab mal versucht den Flash zu lesen ! 
und zwar mit:
avrdude.exe -p attiny84 -c ponyser -P COM1 -U lfuse:w:0xC2:m -U
hfuse:w:0xD4:m -U flash:r:firm.hex

Das geht auch ni !!! Fehlermeldung komischerweise nach dem 
offensichtlichen lesen:
"Error oppening firm.hex"
"invalid output file format: -1"
"write to file 'firm.hex' failed"

Was is an dem Syntax falsch ? AVRDUDE V5.11.1 verwnede ich unter Win2K

Edit: Nicht vergessen, ein 2.AtTiny machts richtig alles !!

von Ralph H. (guru)


Lesenswert?

So, ich hab jetzt nochmal versucht, den AtTiny auszulesen und bekomme 
KEINE Fehlermeldung mehr, wenn die Datei wohin der Inhalt geschrieben 
werden soll schon existiert !!

Allerdings steht da statt dem Inhalt nur das hier drinne...
:0000001FF

Mehr is da komischerweise nicht drinne.. ich glaub der AtTiny hat wohl 
eins abgekriegt oder ?
Spannung ist stabil und bricht nicht ein ! (Akku NiMH 10,8V)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ralph H. schrieb:
> Fehlermeldung komischerweise nach dem
> offensichtlichen lesen:
> "Error oppening firm.hex"
> "invalid output file format: -1"

Wenn du eine automatische Formatauswahl möchtest (das ist der Default,
wenn der Formatbuchstabe weggelassen wird), geht das natürlich
logischerweise nur dann, wenn die Datei bereits existiert und ein
sinnvolles Format hat.

Was du schreiben müsstest ist:
1
-U flash:r:firm.hex:i

Ralph H. schrieb:
> Allerdings steht da statt dem Inhalt nur das hier drinne...
> :0000001FF

D. h., der ganze Flash-Inhalt ist 0xffff.  Zusammenhängede 0xffff-
Blöcke entsprechen dem nicht programmierten Speicher und werden
daher in der Flash-Ausgabedatei weggelassen.

> Mehr is da komischerweise nicht drinne.. ich glaub der AtTiny hat wohl
> eins abgekriegt oder ?

Gemessen daran, dass ein zweiter unter sonst gleichen Umständen
funktioniert, würde ich das nun auch vermuten.

Kannst du denn noch irgendetwas da drin programmieren, beispielsweise
die Fuses ändern?

von Ralph H. (guru)


Lesenswert?

Danke Jörg :)

Ich glaube ich kann die Fuses auch nicht mehr ändern. Hab mal testweise

avrdude.exe -p attiny84 -c ponyser -P COM1 -U hfuse:w:0xD2:m

gemacht. Aber da kam wieder ne Fehlermeldung:
"verification error first mismatch at byte 0x000 0xd2! = 0xd4"
und danach die Ausschrift "safemode hfuse changed! was d2, and is now d4
Would you like this fuse to be changed back ? (y/n)"
Ich hab dann y eingegeben und nix passiert.. ausser das ich AVRDUDE mit 
Ctrl+C abbrechen kann.

Es sieht also so aus, als würde der AtTiny nicht mehr schreiben können.

Danke für Eure Hilfe, sagt Ralph der erst heute abend wieder reingucken 
kann.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ralph H. schrieb:
> Es sieht also so aus, als würde der AtTiny nicht mehr schreiben können.

Dafür gäbe es zumindest im Prinzip eine Erklärung: das Schreiben der
Flash-Zellen erfordert intern eine "Hochspannung", irgendwas um die
12 bis 15 V, wie man es als Vpp früher bei EPROMs extern angelegt
hat.  Diese Spannung wird chipintern durch eine Ladungspumpe erzeugt.
Wenn die kaputt ist, funktioniert der Controller halt bis auf das
Schreiben jeglicher Flash-Zellen.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Jörg Wunsch schrieb:
> Dafür gäbe es zumindest im Prinzip eine Erklärung: das Schreiben der
> Flash-Zellen erfordert intern eine "Hochspannung", irgendwas um die
> 12 bis 15 V, wie man es als Vpp früher bei EPROMs extern angelegt
> hat.  Diese Spannung wird chipintern durch eine Ladungspumpe erzeugt.
> Wenn die kaputt ist, funktioniert der Controller halt bis auf das
> Schreiben jeglicher Flash-Zellen.

Klingt plausibel.
Könnte aber auch sein, dass die Spannungsversorgung für den 
Mikrocontroller einen Knacks weg hat und ab einem gewissen Strom 
einbricht. Zum Schreiben wird ja ein bisschen mehr Strom benötigt als 
zum Lesen.

Wie wäre es, den ATtiny84 mal gegen einen neuen zu tauschen, um 
rauszukriegen, ob es am Mikrocontroller oder an der Platine liegt? Du 
suchst dir sonst einen Wolf, und wir stochern im Nebel...

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.