Ich verwende den Atmega328 (nicht den Atmega328P, der bei Arduino Standard ist) auf einer Steckbrettversion des Arduino. Mit diesen Anweisungen kann ich den Bootloader auf dem Atmega328 abrufen . Zusammenfassend fügen Sie der avrdude.conf
Datei und der boards.txt
Datei einen neuen Eintrag für die 328 hinzu.
Dann kann ich mein Programm auf den Chip bringen, indem ich zu gehe Tools>Board
und es so einstelle, dass es Arduino Uno w/ ATmega328 (non-P)
dann den Bootloader auf den Chip brennt, indem ich die 328-Konfigurationsdateien mit dem AVR Pocket Programmer verwende . Dann gehe ich zu Tools>Board
und schalte es um Arduino Uno
und lade das Programm über die normale USB-Verbindung hoch.
Meine Frage bezieht sich nun auf die Verwendung der File>Upload Using Programmer
Funktion. Wenn ich das für den Atmega328p auf einem frischen Chip mache, funktioniert alles. Wenn ich es jedoch für den Atmega328 versuche, wirft die IDE, die zum Hochladen eingestellt ist, Arduino Uno
den Fehler:
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.`
Gibt es eine andere Konfigurationsdatei, die geändert werden muss, um die Funktion „Upload Using Programmer“ auf anderen Chips zu aktivieren? Wenn jemand einen Tipp hat, wo man suchen kann, wäre ich sehr dankbar!
Bearbeiten1:
Ich habe auch versucht, die IDE auf einzustellen, Arduino Uno w/ ATmega328 (non-P)
und es wird dieser Fehler ausgegeben:
unknown MCU 'atmega328' specified
Known MCU names:
avr2
at90s2313
at90s2323
at90s2333
at90s2343
attiny22
attiny26
at90s4414
at90s4433
at90s4434
at90s8515
at90c8534
at90s8535
avr25
attiny13
attiny13a
attiny2313
attiny24
attiny44
attiny84
attiny25
attiny45
attiny85
attiny261
attiny461
attiny861
attiny43u
attiny48
attiny88
at86rf401
avr3
at43usb320
at43usb355
at76c711
avr31
atmega103
avr35
at90usb82
at90usb162
attiny167
avr4
atmega8
atmega48
atmega48p
atmega88
atmega88p
atmega8515
atmega8535
atmega8hva
at90pwm1
at90pwm2
at90pwm2b
at90pwm3
at90pwm3b
avr5
atmega16
atmega161
atmega162
atmega163
atmega164p
atmega165
atmega165p
atmega168
atmega168p
atmega169
atmega169p
atmega32
atmega323
atmega324p
atmega325
atmega325p
atmega3250
atmega3250p
atmega328p
atmega329
atmega329p
atmega3290
atmega3290p
atmega406
atmega64
atmega640
atmega644
atmega644p
atmega645
atmega6450
atmega649
atmega6490
atmega16hva
at90can32
at90can64
at90pwm216
at90pwm316
atmega32m1
atmega32c1
atmega32u4
atmega32u6
at90usb646
at90usb647
at94k
avr51
atmega128
atmega1280
atmega1281
atmega1284p
at90can128
at90usb1286
at90usb1287
avr6
atmega2560
atmega2561
avrxmega4
atxmega64a3
avrxmega5
atxmega64a1
avrxmega6
atxmega128a3
atxmega256a3
atxmega256a3b
avrxmega7
atxmega128a1
avr1
at90s1200
attiny11
attiny12
attiny15
attiny28
Blink:-1: error: MCU 'atmega328' supported for assembler only
Edit2: Hier ist eine andere Person mit dem gleichen Problem, aber ohne Antwort.
Sie könnten das Problem möglicherweise lösen, indem Sie die folgende Variante Ihres Ansatzes ausprobieren:
Bearbeiten Sie avrdude.conf (befindet sich in \hardware\tools\avr\etc), indem Sie zum Atmega328P-Eintrag gehen und dann "0x1e 0x95 0x0F" durch "0x1e 0x95 0x14" ersetzen.
Mit anderen Worten, ERSETZEN Sie die erwartete Signatur von Atmega328P durch die von Atmega328 (dh machen Sie KEINEN separaten Eintrag, sondern ersetzen Sie tatsächlich ... um im Wesentlichen zu versuchen, die IDE auszutricksen).
Achten Sie darauf, die Arduino IDE nach dem Speichern der .conf-Datei neu zu starten.
Fahren Sie nun mit "Upload using Programmer" fort, wobei das Atmega328P-Board (dh das Original) ausgewählt ist.
Wenn dies fehlschlägt, können Sie stattdessen ein FTDI-Board/-Kabel zum Hochladen verwenden, wenn die Umstände dies zulassen.
Ich glaube, ich bin zu spät angekommen (etwa 10 Jahre), aber vielleicht wird dies in Zukunft nützlich sein. Für diesen Job gibt es eine interessante Bibliothek:
https://github.com/MCUdude/MiniCore
Diese Bibliothek bietet Ihnen viele Flash-Optionen (verschiedene Kristalle, Mcus, BDO usw.).
Chris Stratton
Alexis K
Alexis K
Chris Stratton
Alexis K
Alexis K