Arduino als ISP Programmer


ISP - auch bekannt als In System Programming ist eine Schnittstelle, die es erlaubt, Software auf einen Chip aufzuspielen, der in einem Gerät verbaut ist.
Das ISP Protokoll läuft auf Hardwareebene als SPI ab, und lässt sich daher mit einem Arduino problemlos sprechen.
Wie geht das?
Eine Videoanleitung lässt sich hier finden. Der Sketch zum Programmieren findet sich unter File -> Examples -> ArduinoISP.


Achtung! Beim Arduino Uno ist es nötig, einen 10µF Kondensator zwischen Reset und GND zu schalten, damit der AutoReset durch den ATmega16U2 funktioniert.
Nach dem Uploaden selbigen Sketches lässt sich der Arduino als STK500v1 Programmer über den Seriellen Port des Arduinos mit einer Baudrate von 19200 Baud ansprechen.
Das Programmieren geschieht über die Software WinAVR, die zusammen mit allen anderen benötigten Dateien unten verlinkt sind.
Funktionieren tut dies mit folgenden CMD-Befehlen: (unter Linux muss als Port einfach /dev/ttyUSB0 bzw. der entsprechende Port angegeben werden)
ATMega8:
avrdude -p m8 -P com3 -c stk500v1 -b 19200 -F -v -v -e -Ulock:w:0x3F:m -Uhfuse:w:0xca:m -Ulfuse:w:0xdf:m
avrdude -p m8 -P com3 -c stk500v1 -b 19200 -F -v -v -e -U flash:w:ATmegaBOOT.hex
ATMega 168:
avrdude -p m168 -P com3 -c stk500v1 -b 19200 -F -v -v -e -Ulock:w:0x3F:m -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m
avrdude -p m168 -P com3 -c stk500v1 -b 19200 -F -v -v -e -U flash:w:ATmegaBOOT_168_diecimila.hex
ATMega 168P (reichelt):
avrdude -p m168p -P com3 -c stk500v1 -b 19200 -F -v -v -e -Ulock:w:0x3F:m -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m
avrdude -p m168p -P com3 -c stk500v1 -b 19200 -F -v -v -e -U flash:w:ATmegaBOOT_168_diecimila.hex
ATMega 328:
avrdude -p m328 -P com3 -c stk500v1 -b 19200 -F -v -v -e -Ulock:w:0x3F:m -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m
avrdude -p m328 -P com3 -c stk500v1 -b 19200 -F -v -v -e -U flash:w:ATmegaBOOT_168_atmega328.hex
ATMega 328p:
avrdude -p m328p -P com3 -c stk500v1 -b 19200 -F -v -v -e -Ulock:w:0x3F:m -Uefuse:w:0x00:m -Uhfuse:w:0xdd:m -Ulfuse:w:0xff:m
avrdude -p m328p -P com3 -c stk500v1 -b 19200 -F -v -v -e -U flash:w:ATmegaBOOT_168_atmega328.hex



Wo bekomme ich die Dateien?
WinAVR - Download
avrdude.conf - Download
ATMega8 Bootloader - Download
ATMega168 Bootloader - Download
ATMega328 Bootloader - Download