Hast du mal die ISP Leitungen (MISO, MOSI, Reset, SCK) überprüft?
Hi,
ich habe die Grundschaltung vom Wiki aufgebaut und habe ein Problem mit avrdude. Un zwar bekomme ich eine Fehlermeldung (mit einem mega32) die wie folgt aussieht:
Leider weiß ich nicht was das bedeutet. Hier mal die Ausgabe wenn ich folgenden Befehl eingebe:Code:avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.
Bei einem mega8 lautet die Fehlermeldung:Code:avrdude -p m32 -c AVR910 -P /dev/ttyUSB0 -n -v -b 115200 avrdude: Version 5.10, compiled on Mar 23 2010 at 15:05:31 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "/etc/avrdude.conf" User configuration file is "/home/xrtm4e/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : /dev/ttyUSB0 Using Programmer : AVR910 AVR910_devcode (avrdude.conf) : 0x72 Overriding Baud Rate : 115200 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 : AVR910 Description : Atmel Low Cost Serial Programmer Found programmer: Id = "AVR ISP"; type = S Software Version = 1.1; Hardware Version = 1.4 Programmer supports auto addr increment. Programmer supports buffered memory access with buffersize = 64 bytes. Programmer supports the following devices: Device code: 0x13 = AT90S1200 Device code: 0x20 = ATtiny84 Device code: 0x28 = AT90S4414 Device code: 0x30 = AT90S4433 Device code: 0x34 = AT90S2333 Device code: 0x38 = AT90S8515 Device code: 0x48 = (unknown) Device code: 0x4c = AT90S2343 Device code: 0x68 = AT90S8535 Device code: 0x6c = AT90S4434 Device code: 0x01 = (unknown) Device code: 0x04 = (unknown) Device code: 0x05 = (unknown) Device code: 0x06 = (unknown) Device code: 0x07 = (unknown) Device code: 0x08 = (unknown) Device code: 0x09 = (unknown) Device code: 0x0e = (unknown) Device code: 0x1a = (unknown) Device code: 0x0f = (unknown) Device code: 0x1b = (unknown) Device code: 0x14 = (unknown) Device code: 0x1c = (unknown) Device code: 0x1d = (unknown) Device code: 0x23 = (unknown) Device code: 0x31 = (unknown) Device code: 0x33 = (unknown) Device code: 0x35 = (unknown) Device code: 0x37 = (unknown) Device code: 0x39 = (unknown) Device code: 0x3d = (unknown) Device code: 0x3e = (unknown) Device code: 0x57 = (unknown) Device code: 0x3a = ATMEGA8515 Device code: 0x3b = (unknown) Device code: 0x41 = ATMEGA103 Device code: 0x43 = ATMEGA128 Device code: 0x44 = (unknown) Device code: 0x45 = ATMEGA64 Device code: 0x46 = (unknown) Device code: 0x5e = ATtiny2313 Device code: 0x60 = ATMEGA161 Device code: 0x61 = (unknown) Device code: 0x62 = (unknown) Device code: 0x63 = ATMEGA162 Device code: 0x64 = ATMEGA163 Device code: 0x66 = (unknown) Device code: 0x69 = ATMEGA8535 Device code: 0x6a = (unknown) Device code: 0x72 = ATMEGA32 Device code: 0x73 = (unknown) Device code: 0x74 = ATMEGA6450 Device code: 0x75 = ATMEGA6490 Device code: 0x76 = ATMEGA8 Device code: 0x77 = (unknown) Device code: 0x78 = ATMEGA169 Device code: 0x79 = (unknown) avrdude: AVR910_devcode selected: 0x72 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude done. Thank you.
avrdude: Device signature = 0xffffff
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Was könnte ich dagegen tun?
Wäre sehr dankbar für Hilfe.
Gruß
Hast du mal die ISP Leitungen (MISO, MOSI, Reset, SCK) überprüft?
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Jep hab ich. Hab die Schaltung auch mal komplett neu aufgebaut, funktioniert immer noch nicht.
Spannungsversorgung am ATMega ist auch in Ordnung?
Hilft es, den Programmer mit der avrdude-Option "-B 100" oder "-B 500" zu bremsen?
Hast du es mal versuchsweise mit einem anderen Programmer probiert? Vielleicht liegts ja an dem...
Wenn ich die Baudrate kleiner mache geht gar nichts, dann antwortet der Programmer nicht. Wenn ich versuche ein Programm draufzuladen und die -F Option dazumache kommt folgendes:
Found programmer: Id = "AVR ISP"; type = S
Software Version = 1.1; Hardware Version = 1.4
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize = 64 bytes.
Programmer supports the following devices:
Device code: 0x13 = AT90S1200
Device code: 0x20 = ATtiny84
Device code: 0x28 = AT90S4414
Device code: 0x30 = AT90S4433
Device code: 0x34 = AT90S2333
Device code: 0x38 = AT90S8515
Device code: 0x48 = (unknown)
Device code: 0x4c = AT90S2343
Device code: 0x68 = AT90S8535
Device code: 0x6c = AT90S4434
Device code: 0x01 = (unknown)
Device code: 0x04 = (unknown)
Device code: 0x05 = (unknown)
Device code: 0x06 = (unknown)
Device code: 0x07 = (unknown)
Device code: 0x08 = (unknown)
Device code: 0x09 = (unknown)
Device code: 0x0e = (unknown)
Device code: 0x1a = (unknown)
Device code: 0x0f = (unknown)
Device code: 0x1b = (unknown)
Device code: 0x14 = (unknown)
Device code: 0x1c = (unknown)
Device code: 0x1d = (unknown)
Device code: 0x23 = (unknown)
Device code: 0x31 = (unknown)
Device code: 0x33 = (unknown)
Device code: 0x35 = (unknown)
Device code: 0x37 = (unknown)
Device code: 0x39 = (unknown)
Device code: 0x3d = (unknown)
Device code: 0x3e = (unknown)
Device code: 0x57 = (unknown)
Device code: 0x3a = ATMEGA8515
Device code: 0x3b = (unknown)
Device code: 0x41 = ATMEGA103
Device code: 0x43 = ATMEGA128
Device code: 0x44 = (unknown)
Device code: 0x45 = ATMEGA64
Device code: 0x46 = (unknown)
Device code: 0x5e = ATtiny2313
Device code: 0x60 = ATMEGA161
Device code: 0x61 = (unknown)
Device code: 0x62 = (unknown)
Device code: 0x63 = ATMEGA162
Device code: 0x64 = ATMEGA163
Device code: 0x66 = (unknown)
Device code: 0x69 = ATMEGA8535
Device code: 0x6a = (unknown)
Device code: 0x72 = ATMEGA32
Device code: 0x73 = (unknown)
Device code: 0x74 = ATMEGA6450
Device code: 0x75 = ATMEGA6490
Device code: 0x76 = ATMEGA8
Device code: 0x77 = (unknown)
Device code: 0x78 = ATMEGA169
Device code: 0x79 = (unknown)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0xffffff
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA32 is 1E 95 02
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 "neu.hex"
avrdude: input file neu.hex auto detected as Intel Hex
avrdude: writing flash (180 bytes):
Writing | ################################################## | 100% 2.56s
avrdude: 180 bytes of flash written
avrdude: verifying flash memory against neu.hex:
avrdude: load data flash data from input file neu.hex:
avrdude: input file neu.hex auto detected as Intel Hex
avrdude: input file neu.hex contains 180 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.08s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0c != 0xff
avrdude: verification error; content mismatch
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Also der Ladebalken läd kurze Zeit (wie bei einer funktionierenden Schaltung) aber das Programm scheint nicht zu funktionieren (LED blinken).
Auch nicht bei der Option -B (groß B)?
Dann liegt es vermutlich wirklich an den Leitungen. Korrekt angeschlossen? Jede Leitung sicher verbunden (durchgemessen)? Kalte Lötstelle? Kurzschluss irgendwo?
Board ok?
Anderen Programmer probiert?
Nein, mit -B funktioniert es leider auch nicht. Am Programmer sollte es eigentlich nicht liegen, da ich mit diesem auch mein fertiges Controllerboard programmiere (auch mit einem mega32) und da funktioniert es einwandfrei. Habe hier zwar noch einen Parallelport-Programmer (stk200) liegen, den bekomme ich aber momentan irgendwie nicht zum laufen. Ich nutze ein USB zu rs-232 + parallelport kabel, da will das stk200 aber irgendwie nicht. Wenn ich
avrdude -c stk200 -p m32 -P /dev/usb/lp0
mache dann erscheinnt das (schreibrechte sind gesetzt):
avrdude: can't claim device "/dev/usb/lp0": Inappropriate ioctl for device
Geändert von xrtm4e (10.03.2012 um 13:31 Uhr)
Hi,
ich bin jetzt auch bei diesem Problem angelangt. Ich versuche grade, wie im thread https://www.roboternetz.de/community...?highlight=acs ein ACS selber zu entwickeln. Ich habe dazu testweise einen Atmega16 verwendet. da ich den Tip erhalten habe, es mal mit einem Atmega32 zu versuchen (da Code von der Roboter RP6 Lib), nahm ich meinen atMega32 vom meiner Modellbahnsteuerung. Er hat immer zuverlässig funktioniert, nur nachdem ich den Programmcode aufgespielt habe, lief er los und blinkt (genau wie programmiert). Allerdings hat meine Hinderniserkennung nicht funktioniert, aber egal, ich wollte dann wieder das Programm für die Modellbahnsteuerung aufspielen, aber er gibt mir nur noch aus:
E:\Roboter\WINAVR\bin\avrdude.exe -C E:\Roboter\WINAVR\bin\avrdude.conf -p m32 -P com2 -c stk500v2 -B100 -U hfuse:r:C:\Users\Daniel\AppData\Local\Temp\hfuse29 05653203157537424.hex:r -U lfuse:r:C:\Users\Daniel\AppData\Local\Temp\lfuse58 43379132835687097.hex:r
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude.exe: Device signature = 0xffffff
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Wie hat sich die Device signature geändert? Kann man den Controller irgendwie resetten? Quasi auf Werkszustand zurückversetzen?
Ich hoffe ihr könnt mir helfen. Es liegt definitiv keine Verdrahtungsfehler/USB-ISP-Programmer-Fehler vor, weil wenn ich den atmega 16 in den selben Sockel stecke, kann ich diesen programmieren.
Vielen Dank schonmal für eure Hilfe.
Mfg
RP6fahrer
Wenn man bei der Device signature = 0xffffff oder Device signature = 0x000000 bekommt, ist das ein starker hinweis darauf, dass die Verbindung vom Programmer zum µC nicht funktioniert, oder µC nicht läuft, etwa weil der Takt fehlt.
Ob der µC läuft kann man sonst auch ganz gut am Stromverbrauch erkennen, zumindest bei genügend schnellem Takt. Der Mega32 braucht GND und VCC an je 2 Pins um zuverlässig zu laufen.
Solange die Divice ID nicht stimmt, funktioniert die ISP Schnittstelle nicht. Man könnte den µC theoretisch auch per pralleler Programmierung mit hoher Spannung am Reset Pin programmieren, wenn man z.B. ein original STk500 hat. Die meisten einfachen Programmer können dies aber nicht.
Lesezeichen