ATMEGA328p-AU-Bootloader

Ich habe einen ATMEGA328P-AU-Chip, um den Bootloader zu brennen, habe ich ARDUINO Uno Board als "ARDUINO as ISP" mit Setup Board verwendet: Nanno. Ich erhalte den folgenden Fehler. Bei der Suche nach der Lösung bekam ich Vorschläge von

  1. Überprüfen Sie die Verbindung erneut - Ja, habe ich
  2. Senken Sie die Buad-Rate - Versucht, das gleiche Ergebnis wie unten zu beobachten
  3. Versucht, den externen Oszillator 8 MHz/16 MHz zu variieren. Der Befehl zum Hochladen des Bootloaders lautet wie folgt:

D:\WorkSpace\Arduino\arduino-1.8.7\hardware\tools\avr/bin/avrdude -CD:\WorkSpace\Arduino\arduino-1.8.7\hardware\tools\avr/etc/avrdude.conf -v - patmega328p -carduino -PCOM9 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m

Ich möchte wissen, ob diese Signatur 0xffffff anzeigt, dass ich den IC ähnlich ausgeblasen habe ???

     Using Port                    : COM9
     Using Programmer              : arduino
     Overriding Baud Rate          : 19200 avrdude: stk50

0_recv(): Programmierer reagiert nicht avrdude: stk500_getsync() Versuch 1 von 10: nicht synchron: resp=0x8e AVR-Teil: ATmega328P Chip-Löschverzögerung: 9000 us PAGEL: PD7 BS2: PC2-RESET-Disposition: dedizierter RETRY-Impuls: SCK-Seriell Programmiermodus : ja Paralleler Programmiermodus : ja 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 : Arduino
     Description     : Arduino
     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-Gerät initialisiert und bereit, Anweisungen anzunehmen

Lesen | ################################################## | 100 % 0,00 s

avrdude: Gerätesignatur = 0xffffff (wahrscheinlich .avr8x_mega) (Wiederholungsversuch)

Lesen | ################################################## | 100 % 0,01 s

avrdude: Gerätesignatur = 0xffffff (wahrscheinlich .avr8x_mega) (Wiederholungsversuch)

Lesen | ################################################## | 100 % 0,00 s

avrdude: Gerätesignatur = 0xffffff (wahrscheinlich .avr8x_mega) avrdude: Huch! Ungültige Gerätesignatur. Überprüfen Sie die Verbindungen und versuchen Sie es erneut, oder verwenden Sie -F, um diese Prüfung zu überschreiben. fertig. Danke schön.

Sie müssen die genaue Baudrate für den von Ihnen geflashten Bootloader, die richtige Taktquelle, den richtigen Befehl, die richtige serielle Verbindung verwenden, um das Zurücksetzen zum richtigen Zeitpunkt auszulösen ... Im Wesentlichen ist keine der kritischen Schlüsselinformationen in Ihrer Frage enthalten.
Danke für den Vorschlag.. den Befehl hinzugefügt
Es fehlt noch zu viel. Versuchen Sie vielleicht, eine Skizze zu schreiben, die eine endlose, unaufgeforderte serielle Ausgabe macht, idealerweise mit kurzen Pausen, laden Sie diese mit dem ISP hoch und stellen Sie sicher, dass Sie die Ausgabe lesen können, bevor Sie alle zusätzlichen Komplikationen der Bootloader-Kommunikation hinzufügen. Sobald das funktioniert, können Sie versuchen, einen Bootloader erneut hochzuladen, informiert über alles, was Sie über die Situation gelernt haben.
Entschuldigung, ich verstehe Sie nicht speziell "Vielleicht versuchen Sie, eine Skizze zu schreiben, die endlose, unaufgeforderte serielle Ausgaben macht, idealerweise mit kurzen Pausen", ich habe diesen Link für das obige Verfahren arduino.cc/en/Tutorial/ArduinoToBreadboard verwendet
Ein Bootloader ist nicht erforderlich, um eine Skizze zu laden, und ein Bootloader benötigt mehr, um richtig zu funktionieren, als eine Skizze, die nur ausgibt. Beginnen Sie also mit einer solchen Skizze, verwenden Sie "Upload via Programmer" (oder wie auch immer sie diese Menüoption jetzt nennen) und erhalten Sie diese serielle Ausgabe, die Sie zuerst erfassen können. Dabei können Sie sich selbst helfen vs. zu sagen, dass Sie die Anweisungen befolgt haben, aber das Ergebnis nicht funktioniert, macht eine Frage hier nicht beantwortbar.
Ich habe einen frischen Chip, also muss ich zuerst den Bootloader hochladen und dann den Code auf Serial, ich habe Probleme mit dem Bootloader
Okay, ich verstehe, was Sie sagen, ich habe versucht, einen einfachen Blinkcode mit dem folgenden Befehl hochzuladen: D:\WorkSpace\Arduino\arduino-1.8.7\hardware\tools\avr/bin/avrdude -CD:\WorkSpace\Arduino\arduino-1.8 .7\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM12 -b9600 -D -Uflash:w:C:\Users\Dell\AppData\Local\Temp\arduino_build_701939/Blink.ino. hex:i Ergebnis: avrdude: stk500_recv(): Programmierer antwortet nicht avrdude: stk500_getsync() Versuch 2 von 10: nicht synchron: resp=0x86
Dann ist Ihr Problem ein ISP-Problem, kein Bootloader-Problem ... Sehen Sie sich die Quelle der Arduino ISP-Skizze an und sehen Sie, welche Baudrate verwendet wird. Stellen Sie sicher, dass Sie die Reset-Modifikation durchgeführt haben. Überprüfen Sie Ihre Verkabelung und editdokumentieren Sie sie in Ihrer Frage.
würde etwas mehr klären und auch die Lösung für dasselbe; Landet jeder Synchronisierungsfehler bei einem ISP-Fehler?
Der Synchronisierungsfehler ist typischerweise die Kommunikation mit dem Programmierer, die Gerätesignatur ist typischerweise die Kommunikation zwischen dem Programmierer und dem Ziel . Sie haben jetzt beides in verschiedenen Experimenten berichtet ...
ok vielen dank!! Also muss ich das Code-Uploader-Board ändern, oder??
Ich habe Zweifel bezüglich des Boot-Loading. Können Sie diese Zeile verdeutlichen: "Sie müssen jedoch bedenken, dass das Verfahren "Upload Using Programmer" keine Sicherungen durchbrennt. Wenn Sie also einen fabrikneuen Mikrocontroller haben, müssen Sie zuerst den Bootloader brennen um ein richtig funktionierendes Gerät zu haben." von diesem Link- arduino.cc/en/Hacking/Programmer und du hast mich gebeten, den Code direkt hochzuladen, es ist etwas verwirrend
ARGH, wie viele Arduino-Dokumentationen, ist das schrecklich. Was sie wahrscheinlich meinen, ist die Tatsache "auszuleihen", dass das Brennen eines Bootloaders auch Sicherungen setzt. Sie verwenden den Bootloader nicht wirklich (sobald Sie ihn löschen, um etwas anderes zu laden, ist er sowieso weg), nur der Nebeneffekt, dass der Prozess auch die Sicherungen durchführt und diese bestehen bleiben.
Okay, bedeutet das, dass "die für den Code-Upload (UART-Komm) erforderlichen Sicherungen unter Bootloading gesetzt sind", was man auch ohne Bootloading tun kann?

Antworten (1)

Nachdem ich viel Zeit beim Hochladen des Bootloads mit Arduino als ISP ausprobiert hatte, wechselte ich zu USBASP. Und den Code erfolgreich auf diesen verdächtigen IC hochgeladen, den ich als tot beiseite gelegt habe. Obwohl ich den Fehler in Arduino beim Hochladen nicht herausfinden konnte, würde ich vorschlagen, dasselbe zu tun, wenn jemand über eine ähnliche Frage stolpert.

Dies ist eine ziemlich zufällige Lösung, aber akzeptieren Sie bitte Ihre Selbstantwort, damit die Frage als gelöst angezeigt wird und nicht ständig wieder aufgewühlt wird.