Forum: Mikrocontroller und Digitale Elektronik ATMega1284p: falsche Device ID im AVR Dragon?


von Christian Thorge S. (christianthorge_s)


Lesenswert?

Hallo Forum,

mein AVR Dragon zeigt mir für 2 alte (die ich mal mit einem USBasp 
"verfused hatte) sowie für einen grade frisch von ELV gekauften 
ATMega1284p folgende Device ID an:
1
avrdude: Device signature = 0x1e3705
2
avrdude: Expected signature for ATMEGA1284P is 1E 97 05

Die Bedrahtung des HVPP Interfaces habe ich jetzt mehrfach nach
http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/SCKT3100A3.htm 
überprüft.

Ein Auslesen eines ebenfalls vorhandenen ATTiny85, 2313 sowie eines 328p 
(jeweils mit deren richtiger HVPP Beschaltung) funktioniert.
Testweises setzen von Fuses schlägt ebenfalls schief:
1
$ avrdude -c dragon_pp -p m1284p -P usb -F -U lfuse:w:0x62:m -U hfuse:w:0x99:m -U efuse:w:0xff:m -B 100
2
3
avrdude: AVR device initialized and ready to accept instructions
4
5
Reading | ################################################## | 100% 0.15s
6
7
avrdude: Device signature = 0x1e3705
8
avrdude: Expected signature for ATMEGA1284P is 1E 97 05
9
avrdude: reading input file "0x62"
10
avrdude: writing lfuse (1 bytes):
11
12
Writing | ################################################## | 100% 0.05s
13
14
avrdude: 1 bytes of lfuse written
15
avrdude: verifying lfuse memory against 0x62:
16
avrdude: load data lfuse data from input file 0x62:
17
avrdude: input file 0x62 contains 1 bytes
18
avrdude: reading on-chip lfuse data:
19
20
Reading | ################################################## | 100% 0.05s
21
22
avrdude: verifying ...
23
avrdude: verification error, first mismatch at byte 0x0000
24
         0x62 != 0xff
25
avrdude: verification error; content mismatch
26
27
avrdude: safemode: lfuse changed! Was 62, and is now ff
28
Would you like this fuse to be changed back? [y/n] y
29
avrdude: and COULD NOT be changed
30
avrdude: safemode: Fuses not recovered, sorry
31
avrdude: jtagmkII_close(): bad response to GO command: RSP_ILLEGAL_EMULATOR_MODE
32
33
avrdude done.  Thank you.


Was kann da bloss grade schieflaufen?

Danke,
 Christian (langsam am verzweifeln).

von Thomas E. (thomase)


Lesenswert?

Christian Thorge S. schrieb:
> Was kann da bloss grade schieflaufen?

Sowas ähnliches hatte ich auch schon. Wenn du einen Nullkraftsockel 
hast, klemm mal jeweils 100nF zwischen Vcc bzw. Avcc und GND mit ein. 
Hat bei mir geholfen.

mfg.

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

wenn der per HV, also auch parallel angeschlossen ist, dann geht Bit 7 
nicht

Sascha

von Christian Thorge S. (christianthorge_s)


Lesenswert?

Welcher "Buchstabe" der Anschlusstabelle nach wäre das? Der Defekt muss 
dann ja irgendwie auf dem Dragon selbst sein?!
Gibt es eine Methode, das noch weitergehend zu testen (Kabel, PCB-Trace, 
Lötstelle, ...)?

von Christian Thorge S. (christianthorge_s)


Lesenswert?

Das müsste der Anleitung nach doch HV Pin 8 sein - durchgeklingelt, 
nachgelötet, nochmals durchgeklingelt.
Selbes Ergebnis... ->
1
avrdude: Device signature = 0x1e3705

von Christian Thorge S. (christianthorge_s)


Lesenswert?

> Wenn du einen Nullkraftsockel hast,
Ja, aber ich hab's auch mal ohne probiert. Keine Änderung.

> klemm mal jeweils 100nF zwischen Vcc bzw. Avcc und GND mit ein.
Werde ich gleich Anfang der Woche mal ausprobieren. Mist, dass die Läden 
am Sonntag zu haben wenn man mal was Dringendes braucht ;)

Danke für den Tip!

von Thomas E. (thomase)


Lesenswert?

Christian Thorge S. schrieb:
> Das müsste der Anleitung nach doch HV Pin 8 sein - durchgeklingelt,
> nachgelötet, nochmals durchgeklingelt.
> Selbes Ergebnis... ->
War auch nicht anders zu erwarten.

Sascha Weber schrieb:
> wenn der per HV, also auch parallel angeschlossen ist, dann geht Bit 7
> nicht
Keine Ahnung, was man da, ausser gar nichts, drunter verstehen soll.

Christian Thorge S. schrieb:
>> klemm mal jeweils 100nF zwischen Vcc bzw. Avcc und GND mit ein.
> Werde ich gleich Anfang der Woche mal ausprobieren. Mist, dass die Läden
> am Sonntag zu haben wenn man mal was Dringendes braucht ;)
Von den Dingern sollte man aber immer mindestens, wenn nicht noch mehr 
in der Schublade haben.

mfg.

von Christian Thorge S. (christianthorge_s)


Lesenswert?

Thomas Eckmann schrieb:
> War auch nicht anders zu erwarten.
Es hätte doch durchaus ein Kontakt-/Löt-/Kabelesoterikfehler des Pins 8 
sein können...

>> wenn der per HV, also auch parallel angeschlossen ist, dann geht Bit 7
>> nicht
> Keine Ahnung, was man da, ausser gar nichts, drunter verstehen soll.
Ich habe das so aufgefasst, dass Pin 8 (Bit 7 laut Anleitung (die ich 
natürlich erst jetzt "gefunden" habe ;)) kaputt/falsch/nicht beschaltet 
gewesen hätte sein können. Ich fand es (aus der besserwissenden 
Perspektive dessen dem man grade etwas erklärt hat) ganz logisch. War 
halt anscheinend nur nicht oder der Fehler liegt auf dem PCB des Dragon 
selbst.

>>> (...) 100nF (...)
>> (...)
> Von den Dingern sollte man aber immer mindestens, wenn nicht noch mehr
> in der Schublade haben.
Werde ich in Zukunft meiner Kleinteilesammlung in ausreichender Zahl 
hinzufügen.
Was genau wird der Kondensator eigentlich bewirken bzw. was läuft in der 
Schaltung mit Nullkraftsockel "falsch" dass ich die Dinger brauche?

von Wolfgang (Gast)


Lesenswert?

Christian Thorge S. schrieb:
> avrdude: Device signature = 0x1e3705
> avrdude: Expected signature for ATMEGA1284P is 1E 97 05

Sascha Weber schrieb:
> wenn der per HV, also auch parallel angeschlossen ist, dann geht Bit 7
> nicht

Das würde aber nicht erklären, wieso aus einer 0x9 (0b1001) eine 0x3 
(0b0011) wird. Außer Bit 7 spielt da auch Bit 5 noch mit.

von Thomas E. (thomase)


Lesenswert?

Christian Thorge S. schrieb:
> Es hätte doch durchaus ein Kontakt-/Löt-/Kabelesoterikfehler des Pins 8
> sein können...
Nö. Wenn Bit7 fehlte, also 0 wäre, würde aus 97 17 und nicht 37 werden.

Christian Thorge S. schrieb:
> Was genau wird der Kondensator eigentlich bewirken bzw. was läuft in der
> Schaltung mit Nullkraftsockel "falsch" dass ich die Dinger brauche?
Das hast du jetzt falsch verstanden. Da läuft nichts falsch. Man kann 
den Kondensator im Nullkraftsockel nur einfach mit einklemmen. Ansonsten 
müsste man ihn einlöten, was aber bei anderen Controllern mit anderer 
Pinbelegung zu Störungen führen würde. Dann müsste man ihn wieder 
auslöten.

mfg.

http://www.atmel.com/images/doc2521.pdf

von Christian Thorge S. (christianthorge_s)


Lesenswert?

> Nö. Wenn Bit7 fehlte, also 0 wäre, würde aus 97 17 und nicht 37 werden.
Ahh. Mein Binär ist äußerst rudimentär, ganz im Gegensatz zu Fasel - das 
spreche ich fließend ;)

> http://www.atmel.com/images/doc2521.pdf
Danke!

von Christian Thorge S. (christianthorge_s)


Lesenswert?

Es wird ja immer seltsamer.

Ich habe jetzt drei m1284p's - einer davon garantiert neu, s.o.

Wenn ich jetzt meinen USBasp clone anschließe und die Fuses versuche 
auszulesen geht es mit dem Neuen:
1
# avrdude -c usbasp -p m1284p -n -v -F
2
3
avrdude: Version 5.11.1, compiled on Mar 26 2013 at 19:58:26
4
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
5
         Copyright (c) 2007-2009 Joerg Wunsch
6
7
         System wide configuration file is "/opt/local/etc/avrdude.conf"
8
         User configuration file is "/Users/cts/.avrduderc"
9
         User configuration file does not exist or is not a regular file, skipping
10
11
         Using Port                    : unknown
12
         Using Programmer              : usbasp
13
         AVR Part                      : ATMEGA1284P
14
         Chip Erase delay              : 9000 us
15
         PAGEL                         : PD7
16
         BS2                           : PA0
17
         RESET disposition             : dedicated
18
         RETRY pulse                   : SCK
19
         serial program mode           : yes
20
         parallel program mode         : yes
21
         Timeout                       : 200
22
         StabDelay                     : 100
23
         CmdexeDelay                   : 25
24
         SyncLoops                     : 32
25
         ByteDelay                     : 0
26
         PollIndex                     : 3
27
         PollValue                     : 0x53
28
         Memory Detail                 :
29
30
                                  Block Poll               Page                       Polled
31
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
32
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
33
           eeprom        65    10   128    0 no       4096    8      0  9000  9000 0xff 0xff
34
           flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
35
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
36
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
37
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
38
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
39
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
40
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
41
42
         Programmer Type : usbasp
43
         Description     : USBasp, http://www.fischl.de/usbasp/
44
45
avrdude: auto set sck period (because given equals null)
46
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
47
avrdude: AVR device initialized and ready to accept instructions
48
49
Reading | ################################################## | 100% 0.00s
50
51
avrdude: Device signature = 0x1e9705
52
avrdude: safemode: lfuse reads as 62
53
avrdude: safemode: hfuse reads as 99
54
avrdude: safemode: efuse reads as FF
55
56
avrdude: safemode: lfuse reads as 62
57
avrdude: safemode: hfuse reads as 99
58
avrdude: safemode: efuse reads as FF
59
avrdude: safemode: Fuses OK
60
61
avrdude done.  Thank you.

Mit den zwei "alten", von denen ich davon ausgehe das sie "verfused" 
sind, geht es weiterhin nicht:
1
# avrdude -c usbasp -p m1284p -n -v -F
2
3
(...s.o....)
4
avrdude: auto set sck period (because given equals null)
5
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
6
avrdude: error: programm enable: target doesn't answer. 1
7
avrdude: initialization failed, rc=-1
8
avrdude: AVR device initialized and ready to accept instructions
9
avrdude: Device signature = 0x000000
10
avrdude: Yikes!  Invalid device signature.
11
avrdude: Expected signature for ATMEGA1284P is 1E 97 05
12
13
avrdude done.  Thank you.

Liege ich also richtig in der Annahme, dass ich mich aller 
Wahrscheinlichkeit nach tatsächlich "ausgesperrt" habe und ich mich 
wahrscheinlich tatsächlich nur mit HVPP herausretten kann?

Ausserdem ist interessant, dass der Dragon auch den "heilen" m1284p mit 
der falschen Device ID ausliest:
Da ich jetzt nochmals alles nachgelötet habe und alle Kabel ausgetauscht 
habe (mit besonderer Beachtung der Bits 5 und 7 ;) ist doch wohl dem 
Dragon vorzeitig das Feuer ausgegangen, oder?

Ich muss bald weinen.

 Christian.

von MWS (Gast)


Lesenswert?

Wenn das eine nicht geht, würd' ich das andere nehmen. Also ein 
AVR-Studio 4 laden und mit dessen Programmierdialog schauen, was da so 
passiert...

von Thomas E. (thomase)


Lesenswert?

Christian Thorge S. schrieb:
> Ich muss bald weinen.
Verschieb das Geheule auf den Moment, nachdem du das mit den 
Stützkondensatoren am Dragon getestet hast.

mfg.

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


Lesenswert?

Christian Thorge S. schrieb:
> Liege ich also richtig in der Annahme, dass ich mich aller
> Wahrscheinlichkeit nach tatsächlich "ausgesperrt" habe und ich mich
> wahrscheinlich tatsächlich nur mit HVPP herausretten kann?

Das glaube ich eher nicht...

> avrdude: warning: cannot set sck period. please check for usbasp
> firmware update.

Ich denke, diesen Rat solltest du befolgen. Mit der (inzwischen relativ) 
alten Firmware kann der USBasp nicht mit sehr niedrigen 
Geschwindigkeiten arbeiten. Da hilft auch der immer wieder genannte 
"Jumper 2" nichts, weil der Takt damit nur bis zu einem bestimmten Wert 
runtergesetzt werden kann.

> avrdude: error: programm enable: target doesn't answer. 1
> avrdude: initialization failed, rc=-1

Genau das passiert, wenn der Takt des Programmers zu schnell ist. 
Natürlich kommt dieser Fehler auch, wenn eine der Leitungen falsch oder 
gar nicht angeschlossen ist. Meistens liegts aber doch am Takt.

> avrdude: Device signature = 0x000000
> avrdude: Yikes!  Invalid device signature.
> avrdude: Expected signature for ATMEGA1284P is 1E 97 05

Das ist dann der übliche Folgefehler.

P.S.: Den Rat mit den Kondensatoren solltest du auch ernst nehmen, denk 
ich...

von Christian Thorge S. (christianthorge_s)


Lesenswert?

Um es aufzulösen: Der Dragon war kaputt. Nach einem Telefonat mit einem 
(sehr netten) ELV-Techniker innerhalb von zwei Tagen (inkl. 
Postlaufzeit!) Austausch gegen ein nun funktionierendes Modell. Heute 
dann noch die E-Mail Bestätigung dass der Dragon wirklich kaputt war, 
das ist jetzt auch "vom Herstellerservice bestätigt worden" (wie auch 
immer das so schnell geklappt hat ;).

Danke an das Forum für die Tipps und die Ermunterung weiterzumachen!

 Christian.

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.