Forum: Mikrocontroller und Digitale Elektronik Probleme mit AVRDude


von Frederik K. (n0ll4k)


Lesenswert?

Ich hab mir ein Controllerboard aufgebaut und wollte nun die Fuses 
setzten, aber avrdude spuckt mir direkt einen Fehler aus:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA32 is 1E 95 02

Beschaltet ist das ganze wie folgt:

http://picfront.org/d/Q0vurMkkFJD/schaltplan_avr.gif

Ist die Beschaltung falsch oder woran kann es liegen?

von Εrnst B. (ernst)


Lesenswert?

AGND + AVCC nicht angeschlossen.

Und das nächste mal den Schaltplan bitte gleich ins Forum, nicht auf so 
eine Cookie+javascriptschleuder Seite mit Lebenszeit+Gencheck Werbung...

von Frederik K. (n0ll4k)


Lesenswert?

Hi,

danke erstmal für die hilfe aber ich kann es grad nicht testen, da ich 
anscheinend den Spannungswandler geröstet habe. der gibt nur noch 1,6V 
ab ich versuch mir morgen mal nen neuen zu besorgen und es dann nochmal 
zu testen.

von Frederik K. (n0ll4k)


Lesenswert?

Alles klar der Fehler tritt nun nicht mehr auf, dafür hab ich nun ein 
anderes Problem.

Und zwar folgendes:

avrdude> write hfuse 0 0xc9
>>> write hfuse 0 0xc9
avrdude (write): error writing 0xc9 at 0x00000, rc=-1
write operation not supported on memory type "hfuse"
avrdude (write): error writing 0xc9 at 0x00000 cell=0x00

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Darf ich mal raten? Du nimmst irgendeine !"§$%&-Programmer-Hardware wie 
PonyProg?

von Frederik K. (n0ll4k)


Lesenswert?

Ich benutze den mySmartUsb

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wie lautet denn die Kommandozeile beim AVRDUDE Aufruf? Hast du dort den 
Atmega32 angegeben (damit klar ist, dass dein AVR eine hfuse hat) und 
den -u Parameter (damit du hfuse beschreiben kannst)? Kannst du die 
Fuses auslesen (würde ich zuerst machen bevor ich sie beschreibe)?

http://www.nongnu.org/avrdude/user-manual/avrdude_8.html#SEC8

von Frederik K. (n0ll4k)


Lesenswert?

Der Befehl zum aufruf lautet wie folgt:

avrdude -p m32 -P /dev/cu.SLAB_USBtoUART -c avr910 -t -u

Die Fuses kann ich nicht auslesen, dabei kommt folgendes raus:
avrdude> d lfuse
>>> d lfuse
error reading lfuse address 0x00000 of part ATMEGA32
read operation not supported on memory type "lfuse"
avrdude> d hfuse
>>> d hfuse
error reading hfuse address 0x00000 of part ATMEGA32
read operation not supported on memory type "hfuse"
avrdude>

von Εrnst B. (ernst)


Lesenswert?

aktualiser deinen avrdude. Schau in das avrdude-configfile 
(/etc/avrdude.conf) ob da für den MEGA32 memories vom typ "hfuse" und 
"lfuse" definiert sind.
Bei mir stehen die drinnen.

Wenn die bei dir auch konfiguriert sind, brauchst du einen anderen 
Programmer. Über das AVR910-Protokoll (das dein Programmer scheinbar 
verwendet) KANN das Fuse-Setzen funktionieren, MUSS aber nicht.
(Im Zweifelsfall mal die Serielle Kommunikation mitlesen, und schauen 
wie der Programmer auf die entsprechenden Kommandos reagiert)

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Da ist was grundlegend komisch.

Was gibt denn die erweiterte Info von AVRDUDE aus (Versionsnummer 
AVRDUDE, Device Signature)?

% avrdude -vvv -p m32 -P /dev/cu.SLAB_USBtoUART -c avr910 -t -u

Und dann Ansicht des Speicherlayouts, wie im Beispiel oben:

> part

von Frederik K. (n0ll4k)


Lesenswert?

Jep Memories sind gesetzt.

Ich schau mal wie ich das mit dem mitlesen bei meinem PowerBook 
hinbekomme.

Ein andere Programm wird wahrscheinlich schwer an nem Mac...


Danke schonmal für die Hilfe

von Frederik K. (n0ll4k)


Lesenswert?

1
Memory Detail         :
2
3
                                  Block Poll               Page                       Polled
4
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
5
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
6
           eeprom         4    10    64    0 no       1024    4      0  9000  9000 0xff 0xff
7
                                  Block Poll               Page                       Polled
8
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
9
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
10
           flash         33     6    64    0 yes     32768  128    256  4500  4500 0xff 0xff
11
                                  Block Poll               Page                       Polled
12
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
13
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
14
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
15
                                  Block Poll               Page                       Polled
16
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
17
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
18
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
19
                                  Block Poll               Page                       Polled
20
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
21
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
22
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
23
                                  Block Poll               Page                       Polled
24
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
25
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
26
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
27
                                  Block Poll               Page                       Polled
28
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
29
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
30
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00

avrdude: Version 5.3.1.osxintelhack, compiled on Feb  2 2007 at 03:18:01
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/


Ich hoffe das meinst du.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das ist ein Teil. Der Teil zeigt, um welches AVRDUDE es geht und dass 
die Atmega32 korrekt on der Kommandozeile und dem Konfigurationsfile von 
AVRDUDE übernommen wurden.

Was fehlt ist das, was AVRDUDE von dem aktuell angeschlossenen ATmega32 
mitbekommt. Ein erster Hinweis wäre z.B. die ausgelesene Device 
Signature oder die ausgelesenen Fuses. Wenn es ein fabrikneuer Atmega32 
ist könnte man die ausgelesenen Fuses-Werte mit den Werten aus dem 
Datenblatt vergleichen und so herausfinden, ob die Kommunikation Rechner 
<-> mysmartUSB <-> Atmega32  in Ordnung ist.

Lies auch

Beitrag "MAC OS X avrdude"
http://tinkerlog.com/2007/09/29/programming-avr-with-a-macbook/ 
(gleicher Programmer, gleiches Problem => Tip von Jörg Hermann, als 
Programmer butterfly (oder avr911) einzustellen)
http://www.mail-archive.com/avrdude-dev@nongnu.org/msg01001.html (wenn 
read auch nicht geht, probieren!)
http://www.ladyada.net/make/usbtinyisp/avrdude.html (Link für Avrdude 
5.4 Binaries für Intel-Mac OSX, und Sourcen für 5.5, wenn du selber 
übersetzen kannst)
http://www.hoepfl.de/articles/2008/02/AVR_am_Mac.html (5.5 aufm MAC 
selber kompilieren)

von Frederik K. (n0ll4k)


Lesenswert?

Hallo,

nach langer Zeit habe ich mal wieder probiert mich mit meinem Problem 
hier auseinander zu setzen.

Mittlerweile kann ich die Fuses auch gescheit auslesen und es sind auch 
die im Datenblatt des ATmega angegeben.

Aber schreiben kann ich die Fuses immer noch nicht.

Ist es wirklich ein HardwareProblem des Programmieradapters oder gibt es 
noch eine andere Lösung?

von _BT (Gast)


Lesenswert?

hallo,

kannst du deine hardware zur not mal auf einem windows system 
ausprobieren? also ich hab auch einen mySmartUsb und fuse auch mega32 
und es geht definiv... aber ich arbeite halt unter windoofs :-/ ... das 
ganze mal an einen windoofs-pc probieren und dann könnte man vielleicht 
die hardware ausschließen ;-)

cu BT

von Frederik K. (n0ll4k)


Lesenswert?

Ich hab momentan leider keinen Windows PC zur Verfügung, Mitte der Woche 
bekomme ich wahrscheinlich einen geliehen.

Arbeitest du auch mit avrdude am win pc oder mit was anderem?

von Detlef N. (xunil)


Angehängte Dateien:

Lesenswert?

Hi,
habe momentan das gleich Problem, aber unter Linux.
Sowohl ATTiny13 als auch Mega8 weigern sich beharrlich einen anderen 
Wert in die Fusebits zu übernehmen. Programme ins Flash schreiben 
funktioniert allerdings gut.
Mein Equipment:
-mysmartUSB (2.11)
-avrdude 5.5
Im Dateianhang habe ich mal ein Brennvorgang geloogt.
Suche auch vergeblich bisher nach einer Lösung.

Gruß xunil

von Frederik K. (n0ll4k)


Lesenswert?

Also ich habs nun mitm windows pc hinbekommen die fuse bits zu setzen, 
von daher denke ich das es irgendwie mit ddem treiber oder so 
zusammehängt.

von jackfritt (Gast)


Lesenswert?

mysmartUSB V2.11 verlangt avr910 als Programmer. Leider ist in avrdude 
5.10 immer noch nich der ATtiny13 damit zu programmieren. Also in die 
avrdude.conf folgendes mit unter ATtiny13 aufnehmen, so kann er dann 
korrekt programmiert werden(inkl. Fuse Bits).

#------------------------------------------------------------
# ATtiny13
#------------------------------------------------------------

part
    id                  = "t13";
    desc                = "ATtiny13";
     has_debugwire = yes;
     flash_instr   = 0xB4, 0x0E, 0x1E;
     eeprom_instr  = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
               0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC,
               0x99, 0xE1, 0xBB, 0xAC;
    stk500_devcode      = 0x14;
    avr910_devcode      = 0x55;
......

Damit kann man dann auch den ATtiny13 programmieren. Vorallem die Fuses 
setzen.

Achtung! Programmieren geht auch mit avr911. Allerdings geht fas Fuses 
setzen nicht und man bekommt eine Fehlermeldung. Programm läuft aber :)

Reading | ################################################## | 100% 
0.12s

avrdude: verifying ...
avrdude: 226 bytes of flash verified
avrdude: reading input file "0x7a"
avrdude: writing lfuse (1 bytes):

Writing |  ***failed;
################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0x7a:
avrdude: load data lfuse data from input file 0x7a:
avrdude: input file 0x7a contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 
0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xff"
avrdude: writing hfuse (1 bytes):

Writing |  ***failed;

hf,

Joerg

von Tom (Gast)


Lesenswert?

Hallo,

diese Meldung hatte ich beim 328-er auch:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATmega328p is 1E 95 02

Ich arbeite mit Ubuntu 11.04, starte das Programm AVR8-burn-o-mat über 
die Kommandozeile mit sudo, damit er auf das USB-Device des AVR ISP mkII 
zugreifen darf.
Die Meldung kommt sowohl beim Lesen als auch beim Schreiben oder Verify.

Ich bin mir folgender Fehler zuvor bewusst:
a) falsche Flash-Datei für den Bootloader
b) vertausche Fuse-Werte

Ich habe den 328-er gegen einen funktionierenden vom Arduino Uno 
getauscht. Dann habe ich den Flash und die Fuses gelesen. Wenn ich diese 
Daten in einen frischen Chip flashe, funzt alles.

Preisfrage:
Was ist nun mit dem gegrillten Chip? Bekommt man den wieder hin oder ist 
das mein "Lehrgeld"? Ich habe es nicht geschafft, mit dem avrdude (5.10) 
über den Parameter -F den Check zu überspringen. Geht das dann nur ohne 
die Java-GUI?

Bye,
Tom

von brungi (Gast)


Lesenswert?

Hallo allerseits.

Ich habe so ein ähnliches Problem. Das hatte ich auch schon im Forum von 
myavr.de gepostet. Leider noch nicht mal das obligatorische RTFM als 
Antwort.

Ich arbeite mit:
openSuSE 11.4 auf m Laptop, mysmartUSB 2.11, avrdude 5.11... , 
myavrmkII, und atmega8.

Problem: Ich kann den Flash-Speicher des µC s lesen und schreiben, ich 
kann auch die fuses und locks lesen. Aber ich kann die Fuses nicht 
schreiben.

Das Problem besteht sowohl mit der Konfig´ wie oben als auch mit nem 
ATmega32 auf einer selbstgebauten (Lochraster)-Platine.

Ich kann mich daran erinnern, daß ich vor ca. 1/2 Jahr einen atmega32 
gefust habe. Das hat nach langen versuchen mit Programmer avr911 
funktioniert.

Jetzt geht mit avr911 garnichts. (kann lesen und auch flashen, aber 
nicht fuses schreiben.

Mit avr910 schreibt er tatsächlich in die fuses, leider kann ich den 
atmega8 danach wegwerfen, weil die Signatur des µC auf 0xffffff gesetzt 
wird, genauso alle fuses auf 0xff.

Gestern abend folgendes Fänomen:
avrdude mit programmer avr910 im terminalmodus

( Der Code ist aus der Erinnerung nachgetippt weil mir durch ´s verfusen 
langsam die atmega8 ausgehen :(  )
1
 avrdude -c avr910 -p m8 -P /dev/ttyUSB0 -t
2
-> read lfuse
3
## antwort:  lfuse 0xe1
4
-> write lfuse 00 0xe0
5
## antwort: NIX ( jedenfalls keine Fehlermeldung)
6
-> read lfuse
7
## antwort: lfuse 0xff (*grrrr*)
8
-> quit

dann:
1
-> avrdude -c avr911 -p m8 -P /dev/ttyUSB0 -n -v
2
YIKES ! Device signature 0xffffff
3
expected signature of atmega8 is 0x(Undsoweiter)
also nochmal...
1
...
2
YIKES ! Device signature 0x0000ff
3
...
1
... signature 0x00ffff
und so weiter...

Also liegt s doch an der kommunikation irgendwo zwischen meinem Laptop
und dem atmega8. Vielleicht der USB-Controller meines Laptops ?
Oder das USB-Kabel? Oder der mysmartUSB2.11 ? Oder einfach nur am 
avrdude ?

Für Hinweise was es noch sein könnte wäre ich sehr dankbar.

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.