Bootloader brennen - Device signature = 0x000000 (Atmega328p und Atmega32a)

Guten Abend Community,

ich scheitere gerade daran den Arduino bootloader auf meine neuen Atmegas zu brennen. Ich habe auch schon ein paar stunden gegooglet aber noch keine Lösung gefunden.

Ich habe meinen Uno wie im Wiki beschrieben als Programmer vorbereitet und alles entsprechend verkabelt. Programmiert werden sollte ein Atmega328p-pu, als das nicht funktionierte habe ich es auch noch mit einem Atmega32a probiert, bei beiden gleiche Fehlermeldung:

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

Da ich gerade keine Quarze da habe und Geschwindigkeit für mein Projekt so wie so nicht so wichtig ist, bin für den 328p dieser Anleitung gefolgt (Link) und für den 32a dieser (Link).

Das ich bei beiden den gleichen Fehler bekomme spricht ja eigentlich dafür, dass ich irgendwo was falsch verbunden habe, allerdings habe ich eigentlich alles mehrfach geprüft und auch noch mal neu aufgebaut.

System info: Arduino Ide 1.8.4 Arch Linux (4.12er kernel)

Vielen dank für Eure Antworten

Norman

ps: Komplette Fehlermeldung (Atmega32a @ 1 Mhz, mit atmega 328p und anderen Geschwindigkeiten identisch)

Arduino: 1.8.4 (Linux), Board: "ATMega32 @ 1 MHz  (internal oscillator; BOD disabled)"

/home/norman/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/home/norman/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -v -patmega32 -cstk500v1 -P/dev/ttyACM1 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:0xFF:m -Ulfuse:w:0xE1:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 11:00:16
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/norman/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf"
         User configuration file is "/home/norman/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM1
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         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 : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Fehler beim Brennen des Bootloaders.
Reading | ################################################## | 100% 0.02s

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.

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Und du hast auch den richtigen Sketch (ArduinoISP) auf dem Uno ?

ja klar!

cvh1606: ja klar!

Ok, dann poste ein deutliches Foto von deinem Aufbau. Dann können wir evtl. deine Fehler erkennen.

cvh1606: ja klar!

Und auch den 10µF Kondensator? (denn, der wird gerne vergessen)

@combie

10uf zwichen reset und GND (beim Uno), 100nf kerkos an VCC und GND beim Atmega32a

@HotSystems

Bilder sind unterwegs

Vielen dank für die Antworten!

Hier sind die Bilder

ps: hab den microcontroller jetzt am ICSP-header, an Pin 13-10 gleiches Ergebnis

Da ich den Atmega32a nicht kenne, kann ich aktuell an den Bildern keinen Fehler feststellen.

ok, ich baue das gnaze dann nochmal für den Atmega328p auf

cvh1606: Vielen dank für die Antworten!

Hier sind die Bilder

ps: hab den microcontroller jetzt am ICSP-header, an Pin 13-10 gleiches Ergebnis

Läuft der zu programmierende Atmega mit internem Takt? Weil ich keinen Quartz/Resonator sehe. Sind da die Fuses richtig gesetzt?

Gruß Tommy

ja, die beiden sollten mit interen Takt laufen. ich hab bis jetzt immer nur gelesen, dass die fuses bei neuen controllern schon auf interenen Takt gesetzt sind.

muss ich da noch was machen?

cvh1606: ja, die beiden sollten mit interen Takt laufen. ich hab bis jetzt immer nur gelesen, dass die fuses bei neuen controllern schon auf interenen Takt gesetzt sind.

muss ich da noch was machen?

Beim Bootloader flashen wird das mit erledigt, zumindest die Standarddinge.

Wenn man die richtigen Boardeinstellungen wählt. Welche hat der TO denn eingestellt? Nicht dass da der UNO gewählt ist.

Gruß Tommy

Tommy56: Wenn man die richtigen Boardeinstellungen wählt. Welche hat der TO denn eingestellt? Nicht dass da der UNO gewählt ist.

Ja, das ist Vorraussetzung. ;) Beim Atmega328p-pu (Dil) ist der Uno als Board aber richtig.

@HotSystems nicht ganz, denn wenn der Atmega328p auf dem Arduino sitzt, dann hat er ja noch denn externen Quarz.

@Tommy56: TO?

cvh1606: @HotSystems nicht ganz, denn wenn der Atmega328p auf dem Arduino sitzt, dann hat er ja noch denn externen Quarz.

Verstehe ich nicht. Der Atmega, den du flashen willst, steckt doch auf dem Steckbrett. Das hat mit dem Quarz am Uno nichts zu tu.

Welche Board wählst du denn ?

TO = Threadopener.

was ich damit meine ist, dass ich ja auch wenn das der gleiche Chip ist nicht einfach "uno" als board auswählen kann. schließlich wird der Atmega328p dann so geflasht, dass er auf einen externen Quarz mit 16 Mhz wartet. oder hab ich da irgendwas falsch verstanden?

deswegen habe ich mir die boarddaten aus dieser anleitung geholt und dann auch beim brennen als board ausgewählt.

cvh1606: @Tommy56: TO?

ThreadOwner

Gruß Tommy

cvh1606: was ich damit meine ist, dass ich ja auch wenn das der gleiche Chip ist nicht einfach "uno" als board auswählen kann. schließlich wird der Atmega328p dann so geflasht, dass er auf einen externen Quarz mit 16 Mhz wartet. oder hab ich da irgendwas falsch verstanden?

deswegen habe ich mir die boarddaten aus dieser anleitung geholt und dann auch beim brennen als board ausgewählt.

Ja, ok. Das stimmt natürlich. Bei meinem vorherigen Post bin ich von dem Atmega328 mit 16 MHz Quarz ausgegangen. In deinem Fall (ohne Quarz) muss es entsprechend der Boarddatei eine Einstellung sein.

Ich habe eben meinen "Eigenbau"-Flasher angeschlossen und den Bootloader geflasht, wähle ich ein falsches Board (Controller) kommt eine aussagekräftige Fehlermeldung. Sobald ich den Atmega entferne, kommt die von dir genannte Signatur-ID.

Somit vermute ich eine fehlerhafte Verbindung zwischen dem Uno und dem Atmega.

hm... denke ich eigentlich auch. aber ich hab das ganze jetzt nochmal für den atmega328p aufgebaut... und gleicher fehler wie vorher.

ich weiß natürlich nicht ob die Boarddaten, die ich von instrucables habe, auch stimmen. ich musste noch zwei sachen hinzufügen, damit ich überhaupt die device signatur Meldung bekomme. das ist der Boardeintrag:

##############################################################

atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)

atmega328bb.upload.tool=avrdude ------ Musste ich hinzufügen
atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600

atmega328bb.bootloader.tool=avrdude ---- das auch
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F

atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard

ich habe eine fehlermeldun zur fehlenden konfiguration bekommen und da das bei allen anderen baords auch stand habe ich das eingefügt. ich denke aber nicht, dass das die fehlermeldung hervorruft. auch, weil ich das beim atmega32a nicht machen musste um die Device signature Meldung zu bekommen

zum vergleich der boardeintrag vom Uno:

##############################################################

uno.name=Arduino/Genuino Uno

uno.vid.0=0x2341
uno.pid.0=0x0043
uno.vid.1=0x2341
uno.pid.1=0x0001
uno.vid.2=0x2A03
uno.pid.2=0x0043
uno.vid.3=0x2341
uno.pid.3=0x0243

uno.upload.tool=avrdude
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.maximum_data_size=2048
uno.upload.speed=115200

uno.bootloader.tool=avrdude
uno.bootloader.low_fuses=0xFF
uno.bootloader.high_fuses=0xDE
uno.bootloader.extended_fuses=0xFD
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.bootloader.file=optiboot/optiboot_atmega328.hex

uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.board=AVR_UNO
uno.build.core=arduino
uno.build.variant=standard