Sign in Join
Wiki copytemporary

AVR Embedded Tutorial - Various programmers/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: AVR Embedded Tutorial - Various programmers/de

OldNewLine
1+## Generelles
2+
3+### Arduino-IDE
4+
5+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.
6+
7+Siehe:
8+
9+- [[AVR Embedded Tutorial - Set up Lazarus for ATmega and ATTiny/de|Lazarus für ATmega und ATTiny einrichten]]
10+
11+Bei der erst Programmierung der AVR, wird ein Bootloader gebraucht, diesen brennt man am besten mit der Arduino-IDE.
12+
13+Wen man die Taktfrequenz oder sonstige Parameter ändern will, muss man den Bootloader auch neu brennen. Dies FUSE-Parameter werden auch geschrieben.
14+
15+### Lazarus IDE
16+
17+Die bei der Arduino-IDE ermittelten Parameter werden bei Lazarus unter:
18+
19+- *"Projekt --\> Projekteinstellungen... --\> Compiler-Kommandos --\> Nachher ausführen"* eingetragen.
20+
21+Dies sieht bei einem Arduino-Nano etwa so aus:\
22+`/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`
23+
24+### Avrdude installieren
25+
26+Wen man **avrdude installiert**, kann man die Start-Parameter Liste bei Lazarus einiges verkürzen.
27+
28+#### Linux
29+
30+``` bash
31+sudo apt-get install avrdude
32+```
33+
34+**Hinweis:** Bei der Paketverwaltung sind meistens etwas ältere **avrdude** vorhanden. In der Regel ist dies nicht störend, ausser man verwendet brandneue Hardware.
35+
36+### Verkürzte Parameter
37+
38+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**.
39+
40+``` bash
41+avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:Project1.hex:i
42+```
43+
44+## Programmieren über USB
45+
46+Bei den meisten Arduino wird über USB programmiert, das sieht dann bei folgenden Arduino so aus:
47+
48+- **Arduino UNO**:\
49+ `avrdude -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -Uflash:w:Project1.hex:i`
50+
51+- **Arduino Nano, alter Bootloader** ( Ist bei den meisten China-Modellen vorhanden ):\
52+ `avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -Uflash:w:Project1.hex:i`
53+
54+- **Arduino Nano, neuer Bootloader** ( wird ab Anfangs 2018 verwendet ):\
55+ `avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -Uflash:w:Project1.hex:i`
56+
57+## Programmieren über ISP
58+
59+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.
60+
61+### USBasp
62+
63+- Atmega328p oder Arduino Nano, mit einem aspISP-Programmer.
64+
65+#### Linux
66+
67+``` bash
68+ avrdude -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i
69+```
70+
71+#### Windows
72+
73+Folgender Treiber muss installiert sein:
74+
75+- <https://zadig.akeo.ie/> - USBasp Treiber
76+
77+```dos
78+[Pfad]\avrdude.exe -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i
79+```
80+
81+### Arduino ISP
82+
83+Eigenbau ISP-Programmer mit einem Arduino, gemäss diesen Tutorials:
84+
85+- <https://flazer.de/blog/14/arduino-atmel-flash-station> - mit Kontroll-LEDs
86+
87+- <https://playground.boxtec.ch/doku.php/arduino/attiny> - ohne Kontroll-LEDs, oder nach **"arduino attiny isp"** suchen.
88+
89+- ATTiny2313 mit modifizierten Arduino als ISP-Programmer.
90+
91+``` bash
92+ avrdude -v -pattiny2313 -cstk500v1 -P/dev/ttyUSB0 -b19200 -Uflash:w:Project1.hex:i
93+```
94+
95+### USB-Port frei geben
96+
97+Es kann sein, das der USB-Port gesperrt ist und es zu folgendem Fehler kommt:
98+
99+```text
100+ avrdude: Warning: cannot open USB device: Permission denied
101+ avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
102+```
103+
104+Bei Ubuntu basierenden Linux kann man dies beheben, in dem man AVRdude folgendermassen installiert:
105+
106+``` bash
107+ sudo apt-get install avrdude
108+```
109+
110+**Hinweis:** Evtl. **PC Neustart** nötig.
111+
112+### Zu langsamer Clock
113+
114+Wen man einen sehr langsamen Clock über die Fuses eingestellt hat, funktioniert das der einfache AVRDude Aufruf nicht mehr.\
115+In meinem Beispiel 128KHz, anstelle der üblichen 8/16MHz.\
116+Das man trotzdem flashen kann muss man die Übertragungsgeschwindigkeit drosseln. Die geschieht über **-Bx**.
117+
118+``` bash
119+ avrdude -v -patmega328p -cusbasp -Pusb -Uflash:w:Project1.hex:i -B32
120+```
121+
122+Leider funktioniert dies nicht mit jedem Programmer. Ich konnte dies nur mit einem USBasp mit ATmega8 und mit der neusten Firmware von hier:
123+
124+- [[https://www.fischl.de/usbasp/ Thomas Fischl]] - Version: 2011-05-28
125+
126+## Siehe auch
127+
128+- Übersichtseite [[AVR Embedded Tutorials/de|AVR Embedded Tutorials]]
129+
130+Autor: Mathias
131+
132+---
133+*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](/wiki-contact).*
134+Category: AVR/de
135+Category: Arduino/de
136+Category: Deutsch
137+Category: Embedded/de

Back to history