PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR ATmega328 über Arduino-Code programmieren



Nachbarino
19.03.2013, 17:17
Hallo,
Seit letztens habe ich vor, mit etwas anderem als einem Arduino Uno, sprich einem "richtigen" Microcontroller, zu arbeiten. Allerdings möchte ich mich nicht sonderlich umstellen, und deshalb suche ich nach einer Möglichkeit, einen ATmega328 direkt über Arduino-Code zu programmieren. Wie ich gehört habe, sollte das möglich sein, weil der Arduino ebenfalls über den ATmega328 funktioniert. Nur bin ich recht unerfahren und weiß nicht wie :)
Kann man den kompilierten Arduino-Code irgendwie auf den AVR "rüberspielen"? Wenn ja, dann suche ich nach einem Tutorial, in dem das ganze verständlich erklärt wird. Optimal wäre es ohne zusätzliche Hardware, falls es damit einfacher ist, bin ich aber bereit, welche zu beschaffen.
Bedanke mich schon im Voraus,
Nachbarino

DanielSan
24.03.2013, 12:53
Hi,

ich hab sowas gerade für einen Atmega48 umgesetzt. Den gibt es ja nichtmal auf irgendeinem ArduinoBoard und es klappt trotzdem.
Ich hab mir das .hex File mit einem USBASP über den ISP in den Chip geschrieben. Auf den Arduino Bootloader hab ich bewusst verzichtet, weil der Mega48 eh schon nicht viel Speicher hat. Du könntest den Bootloader in deinen Mega328 brennen und dann das eigentliche Programm per rs232 in den Chip schreiben. Dann brauchst du nur einmal einen ISP.

Ich hab das hier als Quelle genutzt:
http://arduino.cc/forum/index.php?topic=131969.0

Du wirst ja nur in die Datei "\hardware\arduino\boards.txt" gucken und einen neuen Chip anlegen müssen.
Z.B. so:

atmega328.name= MyCustomBoard w/ ATmega328

atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328 .hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
atmega328.build.variant=standard

Ich übernehme keine Garantie das es bei dir damit klappt! Das ist nicht getestet, weil ich keinen Atmega328 hier hab. Achte auch auf die Frequenz!
Etwas Googlen wird dir sicherlich helfen. Du bist nicht der erste der sowas vorhat.

Gruß Daniel