Arduino: Unterschied zwischen den Versionen

Aus Matthias Wiki
Zur Navigation springen Zur Suche springen
Zeile 25: Zeile 25:
<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf</code>
<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf</code>


Write default fuses:
Write fuses:


<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m</code>
<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0xXX:m -U hfuse:w:0xXX:m -U efuse:w:0xXX:m</code>


Write fuses for internal oszillator no clock division:
Werte für Fuses:


<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m</code>
{| class="wikitable"
 
! Funktion !! lfuse !! hfuse !! efuse
Write fuses for external oszillator:
|- valign="top"
 
| interner Oszillator mit "clock division" (default)  || 0x62 ||      ||
<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m</code>
|- valign="top"
 
| interner Oszillator ohne "clock division"          || 0xe2 ||      ||
Write fuses for external oszillator "full swing":
|- valign="top"
 
| externer Oszillator                                || 0xff ||      ||
<code>avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0xf7:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m</code>
|- valign="top"
| externer Oszillator "full swing"                   || 0xf7 ||      ||
|- valign="top"
| sichere High-Fuse                                  ||      || 0xdf ||
|- valign="top"
| kein Bootloader                                    ||      ||      || 0xf9
|- valign="top"
| 1kb Bootloader                                      ||      ||      || 0xf8
|}


===Locking===
===Locking===

Version vom 15. November 2015, 21:45 Uhr

Arduino als In-System-Programmierer

Links

Beschreibung

  • ATMega besser mit Quartz laufen lassen, ansonsten funktioniert möglicherweise die Kommunikation via SPI nicht
  • Achtung, Taktgeber nicht auf "external Clock" einstellen, dann muss der Takt von außen aktiv vorgegeben werden. Hilfe gibt es hier

Lesen/Schreiben von Fuses für ATMega168

Read fuses:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf

Write fuses:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lfuse:w:0xXX:m -U hfuse:w:0xXX:m -U efuse:w:0xXX:m

Werte für Fuses:

Funktion lfuse hfuse efuse
interner Oszillator mit "clock division" (default) 0x62
interner Oszillator ohne "clock division" 0xe2
externer Oszillator 0xff
externer Oszillator "full swing" 0xf7
sichere High-Fuse 0xdf
kein Bootloader 0xf9
1kb Bootloader 0xf8

Locking

Dokumentation zu den Lock-Bits ist sehr dürftig. Über die Lock-Bits kann man sich aus dem Chip auch aussperren.

Entsperren:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lock:w:0x3F:m

Sperren:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U lock:w:0x0F:m

Flashen

Schreiben:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U flash:w:flash.hex

Lesen:

avrdude.exe -P COM6 -b 19200 -c arduino -p atmega168p -C ..\etc\avrdude.conf -U flash:r:flash.hex:r

Quadrokopter

Siehe Quadrokopter