AVR Embedded Tutorial - Various programmers/de
Verschiedene Programmer
Generelles
Arduino-IDE
Am einfachsten geht es um die nötigen Parameter für avrdude zu ermitteln, wen man den passenden AVR zuerst mal mit der Arduino-IDE programmiert.
Siehe:
Bei der erst Programmierung der AVR, wird ein Bootloader gebraucht, diesen brennt man am besten mit der Arduino-IDE.
Wen man die Taktfrequenz oder sonstige Parameter ändern will, muss man den Bootloader auch neu brennen. Dies FUSE-Parameter werden auch geschrieben.
Lazarus IDE
Die bei der Arduino-IDE ermittelten Parameter werden bei Lazarus unter
- "Projekt --> Projekteinstellungen... --> Compiler-Kommandos --> Nachher ausführen" eingetragen.
Dies sieht bei einem Arduino-Nano etwa so aus:/home/tux/Programme/arduino-1.8.5/hardware/tools/avr/bin/avrdude -C/home/tux/Programme/arduino-1.8.5/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:Project1.hex:i
Averdude installieren
Wen man averdude installiert, kann man die Start-Parameter Liste bei Lazarus einiges verkürzen.
Linux
sudo apt-get install avrdude
Verkürzte Parameter
Da avrdude im Suchpfad ist, kann man die ganze Pfad-Angabe sparen. Die Zeile mit avrdude.conf braucht es auch nicht, da die Default avrdude.conf verwendet wird, bei Linux befindet sich diese unter /etc/avrdude.conf.avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:Project1.hex:i
Programmieren über USB
Bei den meisten Arduino wird über USB programmiert, das sieht dann bei folgenden Arduino so aus:
- Arduino UNO:
avrdude -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:Project1.hex:i
- Arduino Nano, alter Bootloader ( Ist bei den meisten China-Modellen vorhanden ):
avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:Project1.hex:i
- Arduino Nano, neuer Bootloader ( wird ab Anfangs 2018 verwendet ):
avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:Project1.hex:i
Programmieren über ISP
Man kann die Arduinos auch über ISP programmieren, dabei wird der Arduino über den 6-Pol Pfostenstecker an einem ISP-Programmer angeschlossen. Bei nackten AVR geht dies auf den gleichen Weg, nur muss man da selbst den 6-Pol Stecker anlöten.
USBasp
- Atmega328p oder Arduino Nano, mit einem aspISP-Programmer.
avrdude -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i
Arduino ISP
Eigenbau ISP-Programmer mit einem Arduino, gemäss diesen Tutorials:
- https://flazer.de/blog/14/arduino-atmel-flash-station - mit Kontroll-LEDs
https://playground.boxtec.ch/doku.php/arduino/attiny - ohne Kontroll-LEDs,
oder nach "arduino attiny isp" suchen.
- ATTiny2313 mit modifizierten Arduino als ISP-Programmer.
avrdude -v -pattiny2313 -cstk500v1 -P/dev/ttyUSB0 -b19200 -Uflash:w:Project1.hex:i
USB-Port frei geben
Es kann sein, das der USB-Port gesperrt ist und es zu folgendem Fehler kommt:
avrdude: Warning: cannot open USB device: Permission denied
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
Bei Ubuntu basierenden Linux kann man dies beheben, in dem man AVRdude folgendermassen installiert:
sudo apt-get install avrdude
Hinweis: Evtl. PC Neustart nötig.
Siehe auch
- Übersichtseite AVR Embedded Tutorial
Autor: Mathias