Falsche Adresse beim Auslesen der Fuses mit AVRDUDE

Gast #6317625
Lesenswert?

Hallo,
ich habe gerade zum ersten mal eine Platine selber mit einem Atmega328P 
und einen 8MHZ quarz erstellt. Der Controller läuft mit 3,3V
Jetzt habe ich mit avrdude die fuses ausgelesen
avrdude -c stk500v2 -P com7 -p m328p -n -v
und folgendes erhalten
        System wide configuration file is "H:\Apps\AVRdude\avrdude.conf"

         Using Port                    : com7
         Using Programmer              : stk500v2
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page 
Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages 
MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0 
3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0 
0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: STK500
         Hardware Version: 10
         Firmware Version Master : 2.10
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
         Topcard         : Unknown
         Vtarget         : 5.0 V
         SCK period      : 17.4 us
         Varef           : 5.0 V
         Oscillator      : Off

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.03s

avrdude: Device signature = 0x1e95ff
avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.

Wovon ist die signatur 0x1e95ff? Erwartet wurde ja 0x1e950f
Da er aber eine Signatur bekommen hat, ist die Verbindung richtig? Oder 
holt der sich diese irgendwo anders her?

und woran kann es liegen, dass zwischendrinn was failt?
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_getparm(): failed to get parameter 0x9a

Habe die Platine durchgemssen. Verbindungen und Spannung ist überall da.
Gast #6317647
Lesenswert?

Johannes schrieb:

> avrdude: Device signature = 0x1e95ff
> avrdude: Expected signature for ATmega328P is 1E 95 0F

> Wovon ist die signatur 0x1e95ff?

Wackelkontakt/miese Lötstelle.

> Da er aber eine Signatur bekommen hat, ist die Verbindung richtig?

Ja, sehr wahrscheinlich, da zumindest Teile erwartungsgemäß sind.

> und woran kann es liegen, dass zwischendrinn was failt?

Wenn Wackelkontakt, dann wirkt der natürlich nicht nur beim Auslesen der 
Device-ID.
Gast #6317663
Lesenswert?

Christian H. schrieb:
> Ist die id immer gleich?

Nein, die ist immer unterschiedlich.
Auch die Meldung ist unterschiedlich (meistens jedoch eine andere Id)

Manchmal erhalte ich auch
avrdude: Device signature = 0x1e950f
avrdude: safemode: Verify error - unable to read lfuse properly. 
Programmer may not be reliable.
avrdude: safemode: To protect your AVR the programming will be aborted

oder

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
Gast #6317699
Lesenswert?

Arduino Fanboy D. schrieb:

> Könnte auch ein grenzwertiger Takt sein

Eher unwahrscheinlich, das sieht dann anders aus. Da sind dann höchstens 
einzelne Bits gekippt und dann die die nachfolgenden verschoben. Kommt 
aber auch vor, dass nur Verschiebungen zu sehen sind, wenn halt das 
ausgelassene Bit mitten in einer Folge gleicher Bits liegt.
Beitrag #6317972 wurde von einem Moderator gelöscht.
Moderator Persönliche Seite #6317974
Lesenswert?

Johannes schrieb:
> Wird da irgendwie der letzte Wert irgendwo gespeichert?

Ja, wenn es ein originaler STK500 ist, wird der Wert gespeichert.

Wenn du durch das Setzen der Fuses im AVR einen schnelleren Takt 
produzierst als vorher (bspw. durch Löschen der CKDIV8-Fuse), dann 
kannst du danach auch mit einem schnelleren ISP-Takt arbeiten. Käme als 
potenzielle Ursache auch in Frage.
Beitrag #6318001 wurde von einem Moderator gelöscht.
Beitrag #6318003 wurde von einem Moderator gelöscht.
Beitrag #6318005 wurde von einem Moderator gelöscht.
Beitrag #6318006 wurde von einem Moderator gelöscht.
Beitrag #6318025 wurde von einem Moderator gelöscht.
Beitrag #6318026 wurde von einem Moderator gelöscht.
Beitrag #6318027 wurde von einem Moderator gelöscht.
Beitrag #6318028 wurde von einem Moderator gelöscht.
Gast #6318038
Lesenswert?

Hallo

Johannes schrieb:
> und folgendes erhalten
>         System wide configuration file is "H:\Apps\AVRdude\avrdude.conf"
>
>          Using Port                    : com7
>          Using Programmer              : stk500v2
>          AVR Part                      : ATmega328P
>          Chip Erase delay              : 9000 us
>          PAGEL                         : PD7
...

Wo kann ich eigentlich Nachschauen was alle diese Ausgaben bedeuten?

Manches ist ja mehr oder weniger selbsterklärend, vieles aber nicht bzw. 
wäre es interessant zu wissen warum bestimmte Werte "gewählt" wurden?

Google findet zumindest mit "Erklärung AVRDude Ausgabe" und ähnlichen 
Suchbegriffen nicht wirklich was brauchbares.

Neugieriger
Beitrag #6318063 wurde von einem Moderator gelöscht.
Beitrag #6318064 wurde von einem Moderator gelöscht.
Beitrag #6318065 wurde von einem Moderator gelöscht.
Gast #6318081
Lesenswert?

Hallo

Jörg W. schrieb:
> Die kommen, sofern es nicht voreingestellte Werte sind, aus der
> avrdude.conf.

Danke

Aber auch die Werte wurden ja nicht ausgewürfelt oder sind vom "Himmel 
gefallen" sondern haben ihre Ursache.
Und die ist wohl im Datenblatt des jeweiligen µC (Meist wohl ein AVR) 
hinterlegt - aber wo?
Irgendwelche Pin Zuordnungen wie PAGEL und PC2 ist ja recht leicht 
erkennbar und für "unsereins" ;-) hoffentlich klar.

Aber woher "kommen"  denn die Werte für z.B. Chip Erase Delay - 
überhaupt die ganzen delays - wo finde ich das im Datenblatt (auch des 
ursprünglichen Programmers STK500?).
Unter den diversen Loops kann ich mir gar nichts vorstellen - außer das 
es halt irgendwelche Schleifen sind was letztendlich soviel aussagt als 
das es tagsüber Hell ist, was nur für einen andauernden Höhlenbewohner 
eine Neuigkeit wäre - wir hier sind aber (hoffentlich) keine 
Höhlenbewohner ;-)
#6318084
Lesenswert?

Johannes schrieb:
> Alexander S. schrieb:
>> Hast Du auch einmal kleinere Werte, z.B. -B 10, ausprobiert oder geht es
>> nur ab -B 200?
>
> Ja, mit -B 10 geht es auch.
> Jetzt geht es auch komplett ohne -B (auch nach neustart).
> Wird da irgendwie der letzte Wert irgendwo gespeichert?

Ich behaupte jetzt einfach mal, daß Du einen neuen AVR hattest, der noch 
auf 1MHz int RC gefust war.
Hier braucht es -B, damit der dude nicht zu schnell flasht.
Da der fuse jetzt vermutlich auf den Quarz steht, ist der AVR jetzt 
schnell genug zum flashen ohne -B.

Neugieriger schrieb:
> Wo kann ich eigentlich Nachschauen was alle diese Ausgaben bedeuten?

Im Manual z.B.?
http://download-mirror.savannah.gnu.org/releases/avrdude/avrdude-doc-6.3.pdf
Moderator Persönliche Seite #6318129
Lesenswert?

Neugieriger schrieb:
> Aber auch die Werte wurden ja nicht ausgewürfelt oder sind vom "Himmel
> gefallen" sondern haben ihre Ursache.

In vielen Fälllen sind das Werte, die für avrdude "opaque" sind, da er 
sie 1:1 an die Firmware von STK500 & Co weiterreicht. Sie stammen aus 
den Atmel-XML-Dateien – wo auch die Atmel-Studio-Tools sie her nehmen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren