Fehler beim Brennen des Bootloaders bei ATmega328P

Hallo,

ich habe seit längerem das Problem, dass ich bei meinen ATmega328 keinen Bootloader brennen kann bzw. keine Programme mehr draufspielen kann. Ich habe auch schon mehrere Sachen hier aus dem Forum versucht und habe auch schon mehrmals meine Schaltungen überprüft.

Als Programmer benutze ich einen Arduino Uno und benutze die Arduino IDE 1.8.11. Auf dem Uno befindet sich der Sketch ArduinoISP, welcher erfolgreich Hochgeladen worden ist.

Der Aufbau ist nach dieser Anleitung aufgebaut worden Link. Der Aufbau hat auch bereits funktioniert, tut es jetzt aber nicht mehr.

Arduino: 1.8.11 (Windows 10), Board: "ATmega328, Yes (UART0), 328P / 328PA, BOD 2.7V, LTO disabled, External 20 MHz"

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\maxim\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.4/avrdude.conf"

         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    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.

Im Anhang ist ein Foto von dem Aufbau.

Ich versuche schon länger das Problem zu lösen aber es will einfach nicht funktionieren. Woran kann das liegen?
Schon mal danke im Voraus.

Ich würde dir ja gerne helfen, sehe aber nicht, was du falsch machst....


Da fehlen 2 Versorgungsanschlüsse.
Und der Quarz ist recht weit weg.

Übrigens:

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

Wie kannst du dir die Meldung nur anschauen, und dann nicht angemessen darauf reagieren?
Es ist mir ein Rätsel.

In meiner Aufgebauten Schaltung ist der Quarz direkt hinter den Pins 9 und 10. Die beiden Versorgungsleitungen entfallen, da die Kondensatoren direkt von Pin 9 und Pin 10 an GND geschaltet sind.

Das ist der Output, wenn die Option "Ausführliche Ausgabe während der Kompilierung" aktiviert ist.

Arduino: 1.8.11 (Windows 10), Board: "ATmega328, Yes (UART0), 328P / 328PA, BOD 2.7V, LTO disabled, External 20 MHz"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Users\maxim\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.4/avrdude.conf -v -patmega328p -cstk500v1 -PCOM7 -b19200 -e -Ulock:w:0x3f:m -Uefuse:w:0b11111101:m -Uhfuse:w:0xd6:m -Ulfuse:w:0b11110111:m 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\maxim\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.4/avrdude.conf"

         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    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)

Reading | ################Fehler beim Brennen des Bootloaders.
################################## | 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.

Die beiden Versorgungsleitungen entfallen,

Der ATMega328P hat zwei CND, einen Vcc und einen AVcc Anschluss
Davon fehlt die Hälfte auf dem Bild.

In meiner Aufgebauten Schaltung ist der Quarz direkt hinter den Pins 9 und 10.

Alles klar, dann war die vorherige Aussage falsch:

Der Aufbau ist nach dieser Anleitung aufgebaut worden Link.

Tja ...
Ich würde mal sagen:

  1. dein Aufbau ist falsch
  2. der µC ist kaputt
  3. du hast die Fuses falsch eingestellt und dich so abgehangen.
    Such dir was aus, ich kanns nicht prüfen.

Ich sehe keine Abblockkondensatoren 100nF an der Versorgungsspannung und auch keinen Elko 10μF am Reset des Uno.

Der ATMega328P hat zwei CND, einen Vcc und einen AVcc Anschluss

Sorry, hab mich da irgendwie gerade vertan. Habe jetzt noch die beiden Leitungen AVCC und GND gelegt, der ausgegebene Fehler ist jedoch immer noch der gleiche.

  1. dein Aufbau ist falsch

Im Anhang ist nochmal der verbesserte Aufbau.

  1. der µC ist kaputt

Kaputt sein dürfte der Atmega eigentlich nicht, den habe ich vor wenigen Wochen erst gekauft.

  1. du hast die Fuses falsch eingestellt und dich so abgehangen.

Was mit den Fuses ist, weiß ich nicht, aber ich habe mit dem Atmega nichts anderes als diesen Aufbau gebaut.

Ich sehe keine Abblockkondensatoren 100nF an der Versorgungsspannung und auch keinen Elko 10μF am Reset des Uno.

Den 100nF Kondensator habe ich zwischen den Pins 7 und 8 geschaltet. Brauche ich wirklich einen Elko am Reset des Uno? Es hat vorher schon mal funktioniert ohne den Elko.

Und der Elko ?

Den Elko brauchst du, wenn es funktioniert hat, war es Zufall.

HotSystems:
Den Elko brauchst du, wenn es funktioniert hat, war es Zufall.

Okay, dann schau ich das ich einen 10µF Elko besorge, und dann versuche ich es mit dem nochmal.
Danke soweit schon mal für die Hilfe.

Der Elko verhindert, dass der Uno resettet und der Sketch anschließend auf dem landet.

Im Anhang ist nochmal der verbesserte Aufbau.

Die beiden dicken blauen Brocken sollen 22pF Kondensatoren sein?
Das kann ich fast gar nicht glauben.

Das ist der Output, wenn die Option "Ausführliche Ausgabe während der Kompilierung" aktiviert ist.

Hochladen!
Nicht Kompilieren, sondern Hochladen.

Da fehlt die Kommandozeile!

combie:
Die beiden dicken blauen Brocken sollen 22pF Kondensatoren sein?
Das kann ich fast gar nicht glauben.

Da könntest du Recht haben, sind ein bissel dick. :wink:

combie:
Die beiden dicken blauen Brocken sollen 22pF Kondensatoren sein?
Das kann ich fast gar nicht glauben.
Hochladen!
Nicht Kompilieren, sondern Hochladen.

Da fehlt die Kommandozeile!

Ich vorhin bei beiden den Haken gesetzt. Das dürfte ja nicht weiter schlimm sein, wenn das beides aktiviert ist.

Die beiden Kondensatoren sollten 22pF haben, habe sie jetzt nochmal gegen andere 22pF ersetzt die kleiner sind. Der Fehler ist allerdings unverändert.

Ich hätte dennoch gerne die Kommandozeile mal gesehen.

Wenn ich den UNO Bootloader brennen will, sieht diese so aus:

E:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CE:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM9 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

Dann kann man auch die Fuses untersuchen, ob da Mist gebrannt werden soll.

Nun, wenn die Kondensatoren um den Quarz den richtigen Wert von 22pF aufweisen, jedoch der 10uF Kondensator am Reset des Uno noch fehlt, KANN es NICHT funktionieren. Aber es ist wichtig für den Alleinstehenden Atmega, dass die Kondensatoren um den Quarz stimmen, sonnst geht es dann auch nicht , wenn der Uno mit dem Elko am Reset ausgestattet ist.

combie:
Ich hätte dennoch gerne die Kommandozeile mal gesehen.

Wenn ich den UNO Bootloader brennen will, sieht diese so aus:

E:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CE:\Programme\arduino\portable\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM9 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

Dann kann man auch die Fuses untersuchen, ob da Mist gebrannt werden soll.

Meinst du die Zeile?

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Users\maxim\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.4/avrdude.conf -v -patmega328p -cstk500v1 -PCOM7 -b19200 -e -Ulock:w:0x3f:m -Uefuse:w:0b11111101:m -Uhfuse:w:0xd6:m -Ulfuse:w:0b11110111:m

Habe jetzt auch den 10µF Elko an den Arduino angeschlossen, der Fehler besteht aber immer noch. Sicherheitshalber hab ich jetzt auch mal einen anderen ATmega328 ausprobiert, der Fehler bleibt aber.

-Ulfuse:w:0b11110111:m

Du nutzt den Full Swing Crystal Oszillator.
Das muss mit Revision K des ATMega328P nicht klappen.
(Siehe Datenblatt)
Hast du einen Rev K?