Forum: Mikrocontroller und Digitale Elektronik brauche Unterstützung beim flashen


von Tobias Ö. (t0bias)


Angehängte Dateien:

Lesenswert?

Morgen zusammen,

ich benötige mal eure Unterstützung.
Ich versuche gerade Ethersex auf einen Atmega 644 zu flashen.
Ich habe einen "alten" Diamex ISP (siehe Bild). Alles unter Windows 10. 
Er meldet sich im Gerätemanger als Com6.
Als ich das letze mal vor 10 Jahren auf einem Atmega programmiert habe 
war das noch unter Atmel Studio 4. Daher hab ich noch im Hinterkopf, 
dass das als Programmer STK500 funktioniert hatte. Ich verwende ein 
Pollin Evaluations Board.
Fehler aktuell:
-Im Microchip Studio 7 kann ich alles auswählen (STK500) aber sobald ich 
auf apply gehe damit er sich mit dem Programmer verbindet kommt die 
Fehlermeldung: Unable to connect to Tool STK500 (Com6)
- AVRdude aus dem WinAVR-Paket:

D:\tmp>avrdude -v -p m644 -c stk500 -P com6 -U flash:w:ethersex.hex

avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "D:\tmp\avrdude.conf"

         Using Port                    : com6
         Using Programmer              : stk500
         AVR Part                      : ATMEGA32
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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         4    10    64    0 no       1024    4      0 
9000  9000 0xff 0xff
           flash         33     6    64    0 yes     32768  128    256 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           lock           0     0     0    0 no          1    0      0 
2000  2000 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00
           calibration    0     0     0    0 no          4    0      0 
0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500
         Programmer Model: AVRISP
         Hardware Version: 15
         Firmware Version Master : 2.10
         Vtarget         : 0.0 V
         SCK period      : 233.3 us

avrdude: stk500v2_command(): command failed

Hat jemand Ideen?
Danke und Grüße

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Tobias Ö. schrieb:
> Vtarget         : 0.0 V

Das finde ich auffällig. Meine Programmieradapter zeigen da je nach 
Modell die Spannung des Targets an oder den dummy Wert "5.0 V".

Hast du am Vtarget (Pin 2) deines 10 Poligen ISP Connectors eine 
ausreichende Versorgungsspannung anliegen?

Wenn nicht, ist vielleicht der Dipschalter oder ein Spannungsregler in 
deinem Programmieradapter kaputt. In dem Fall hilft es eventuell, von 
außen eine Versorgungsspannung anzulegen, wie man das normalerweise 
sowieso tun sollte.


Außerdem könntest du mal den avrdude Parameter -B20 versuchen, um die 
Kommunikation so langsam zu machen, dass es mit jungfräulichen 
Mikrocontroller funktioniert. Oder falls er gebraucht ist kannst du auch 
extreme Werte wie -B500 probieren.

von Tobias Ö. (t0bias)


Lesenswert?

Stefan ⛄ F. schrieb:
>
> Außerdem könntest du mal den avrdude Parameter -B20 versuchen, um die
> Kommunikation so langsam zu machen, dass es mit jungfräulichen
> Mikrocontroller funktioniert. Oder falls er gebraucht ist kannst du auch
> extreme Werte wie -B500 probieren.

Ich Vollidiot, ich hatte zum einen den Atmega falsch rum gesteckt und 
dann  -B20 hats gebracht. Danke dir für die schnelle Hilfe

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Zeigt er denn jetzt im funktionierenden Fall immer noch 0.0 V an? Wenn 
ja würde ich dir das irgendwo notieren, dass es bei diesem Gerät 
ausnahmsweise normal ist. Sonst führt das irgendwann später wieder zu 
Irritationen bei der Fehlersuche.

von Tobias Ö. (t0bias)


Lesenswert?

Das spuckt er mir jetzt aus, war leider beim ersten Mal zu schnell und 
habe jetzt nochmal ohne -B20 geflasht:

D:\tmp>avrdude -v -p m644 -c stk500 -P com6 -U flash:w:ethersex.hex

avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "D:\tmp\avrdude.conf"

         Using Port                    : com6
         Using Programmer              : stk500
         AVR Part                      : ATMEGA644
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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    10   128    0 no       2048    8      0 
9000  9000 0xff 0xff
           flash         33     6   256    0 yes     65536  256    256 
4500  4500 0xff 0xff
           lock           0     0     0    0 no          1    0      0 
9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0 
9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0 
9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0 
9000  9000 0x00 0x00
           signature      0     0     0    0 no          3    0      0 
0     0 0x00 0x00
           calibration    0     0     0    0 no          1    0      0 
0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500
         Programmer Model: AVRISP
         Hardware Version: 15
         Firmware Version Master : 2.10
         Vtarget         : 0.0 V
         SCK period      : 182.3 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x1e9609
avrdude: safemode: lfuse reads as 62
avrdude: safemode: hfuse reads as 99
avrdude: safemode: efuse reads as FF
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "ethersex.hex"
avrdude: input file ethersex.hex auto detected as Intel Hex
avrdude: writing flash (28402 bytes):

Writing | ################################################## | 100% 
6.25s

avrdude: 28402 bytes of flash written
avrdude: verifying flash memory against ethersex.hex:
avrdude: load data flash data from input file ethersex.hex:
avrdude: input file ethersex.hex auto detected as Intel Hex
avrdude: input file ethersex.hex contains 28402 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 
5.77s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x00f1
         0x0a != 0x00
avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as 62
avrdude: safemode: hfuse reads as 99
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Die 0.0V sind immer noch da. Was sagt mir das?

von Stefan F. (Gast)


Lesenswert?

Tobias Ö. schrieb:
> Die 0.0V sind immer noch da. Was sagt mir das?

Dass dein Programmieradapter das Auslesen der Spannung wohl nicht 
unterstützt. Das ist nicht ungewöhnlich, wohl aber dass "0.0 V" 
angezeigt werden. Merke dir einfach, dass dies bei deinem Gerät offenbar 
normal ist.

von Egonwalter M. (heiner1234)


Lesenswert?

Tobias Ö. schrieb:
> Das spuckt er mir aus
> avrdude: verifying ...
> avrdude: verification error, first mismatch at byte 0x00f1
>          0x0a != 0x00
> avrdude: verification error; content mismatch
>

Diese letzte Meldung würde mich irritieren - fkt Dein Programm?

von Einer K. (Gast)


Lesenswert?

Egonwalter M. schrieb:
> Diese letzte Meldung würde mich irritieren - fkt Dein Programm?

Mich eigentlich nicht....
Denn 1MHz intern und ohne -B Parameter, das kann schon ins Auge gehen.
Der Fall scheint hier vorzuliegen.

von Egonwalter M. (heiner1234)


Lesenswert?

Arduino Fanboy D. schrieb:
> Egonwalter M. schrieb:
>> Diese letzte Meldung würde mich irritieren - fkt Dein Programm?
>
> Mich eigentlich nicht....
> Denn 1MHz intern und ohne -B Parameter, das kann schon ins Auge gehen.
> Der Fall scheint hier vorzuliegen.

Ok, wußte ich nicht.
Eine Fehlermeldung wie die o.a muss also nicht unbedingt bedeuten, dass 
das Programm nicht funktioniert, kommt also auch drauf an, mit welchen 
Parametern geflasht  wird.

Danke für die Erklärung 😉

von Einer K. (Gast)


Lesenswert?

Egonwalter M. schrieb:
> Eine Fehlermeldung wie die o.a muss also nicht unbedingt bedeuten, dass
> das Programm nicht funktioniert,
Muss es nicht.

Es ist ein Fehler, bei der Überprüfung, aufgetreten.
Dabei ist nicht klar, ob das Schreiben oder nur das Überprüfen versagt 
hat.

Mögliche Ursachen:

ISP Takt zu hoch
Stromversorgung schlecht/wackelig
Abblockkondensator vergessen
Flash defekt
Zu lange ISP Kabel

usw.

Allenthalben, sollte einem die Meldung ins Bewusstsein rufen, dass da 
dringend noch Nacharbeit erforderlich ist.

von Egonwalter M. (heiner1234)


Lesenswert?

Arduino Fanboy D. schrieb:
> Egonwalter M. schrieb:
>> Eine Fehlermeldung wie die o.a muss also nicht unbedingt bedeuten, dass
>> das Programm nicht funktioniert,
> Muss es nicht.
>
> Es ist ein Fehler, bei der Überprüfung, aufgetreten.
> Dabei ist nicht klar, ob das Schreiben oder nur das Überprüfen versagt
> hat.
>
> Mögliche Ursachen:
>
> ISP Takt zu hoch
> Stromversorgung schlecht/wackelig
> Abblockkondensator vergessen
> Flash defekt
> Zu lange ISP Kabel
>
> usw.
>
> Allenthalben, sollte einem die Meldung ins Bewusstsein rufen, dass da
> dringend noch Nacharbeit erforderlich ist.

Vielen Dank für Deine Erklärungen, speziell die Auflistung der möglichen 
Ursachen (falls es mal bei mir Probleme mit dem Flashen gibt, weiß ich 
worauf ich zu achten habe)

😉👍

von Stefan F. (Gast)


Lesenswert?

In diesem Zusammenhang könnte der folgende Aufsatz für dich interessant 
sein: http://stefanfrings.de/avr_verfused/index.html

von Egonwalter M. (heiner1234)


Lesenswert?

Stefan ⛄ F. schrieb:
> In diesem Zusammenhang könnte der folgende Aufsatz für dich
> interessant
> sein: http://stefanfrings.de/avr_verfused/index.html

Vielen Dank für den Tip,  werde ich mir zu Gemüte führen 👍

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.