Sign in Join
Wiki copytemporary

AVR Embedded Tutorial - Various programmers/de

Deutsch · English

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:

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 -Uflash:w:Project1.hex:i

Avrdude installieren

Wen man avrdude installiert, kann man die Start-Parameter Liste bei Lazarus einiges verkürzen.

Linux

bash
sudo apt-get install avrdude

Hinweis: Bei der Paketverwaltung sind meistens etwas ältere avrdude vorhanden. In der Regel ist dies nicht störend, ausser man verwendet brandneue Hardware.

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.

bash
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:

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

Linux

bash
 avrdude -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i

Windows

Folgender Treiber muss installiert sein:

dos
[Pfad]\avrdude.exe -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i

Arduino ISP

Eigenbau ISP-Programmer mit einem Arduino, gemäss diesen Tutorials:

bash
 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:

text
 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:

bash
 sudo apt-get install avrdude

Hinweis: Evtl. PC Neustart nötig.

Zu langsamer Clock

Wen man einen sehr langsamen Clock über die Fuses eingestellt hat, funktioniert das der einfache AVRDude Aufruf nicht mehr.
In meinem Beispiel 128KHz, anstelle der üblichen 8/16MHz.
Das man trotzdem flashen kann muss man die Übertragungsgeschwindigkeit drosseln. Die geschieht über -Bx.

bash
 avrdude -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i -B32

Leider funktioniert dies nicht mit jedem Programmer. Ich konnte dies nur mit einem USBasp mit ATmega8 und mit der neusten Firmware von hier:

Siehe auch

Autor: Mathias


From the Free Pascal wiki, page "AVR Embedded Tutorial - Various programmers/de", as it stood on 2021-02-11 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Edited on wiki.freepascal.org by 2 people, 2018–2021

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
MathiasCreated page
MathiasVerkürzte Parameter
MathiasGenerelles
MathiasProgrammieren über USB
MathiasProgrammieren über ISP
MathiasVerschiedene Programmer
MathiasLazarus IDE (minor)
MathiasLinux
MathiasProgrammieren über ISP
MathiasaspISP
MathiasArduino-IDE
MathiasLazarus IDE (minor)
MathiasProgrammieren über ISP (minor)
MathiasUSBasp
MathiasFehler
MathiasProgrammieren über ISP
MathiasUSB-Port frei geben (minor)
MathiasProgrammieren über USB
MathiasUSB-Port frei geben
MathiasAverdude installieren
MathiasLinux
MathiasUSB-Port frei geben
MathiasAverdude installieren
MathiasLinux
MathiasLazarus IDE
MathiasProgrammieren über USB
MathiasProgrammieren über ISP
TrevFixed template loop; syntax highlighting; updated categories to German versions (minor)
TrevAverdude installieren: Fix typo (minor)
TrevAverdude installieren: Fixed typos (minor)
MathiasWindows
MathiasUSB-Port frei geben
TrevFix title levels; fix syntax highlighting (minor)
TrevSiehe auch: Bypass page redirect (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.