Arduino ISP-Shield
Dank des Bootloaders lassen sich Arduinos per serieller Verbindung programmieren. Benötigt man jedoch den Speicherplatz des Bootloaders oder möchte man einen AVR ohne Bootloader programmieren, braucht man einen Programmer.
So einen Programmer kann man sich entweder kaufen (von ganz günstig bis sehr teuer) oder man baut ihn sich einfach selbst. Denn aus einem Arduino lässt sich ganz einfach ein STK500v1 Programmer bauen.
ArduinoISP
Grundlage dieses Projekts ist der Arduino-Sketch "ArduinoISP". Von ihm gibt es diverse Forks, ich habe mich für die Version von PeterVH gewählt. Sie entspricht weitgehend der originalen Version, aber mit einigen Verbesserungen.
Spielt man den Sketch auf einen Arduino, kann er anschließend über die serielle Schnittstelle mit dem STK500v1-Protokoll angesprochen werden. Viele Programme zur Programmierung, auch AVRDUDE, unterstützen dieses Protokoll.
Doch wenn man nun einfach loslegen will, wird es nicht funktionieren. Beim Herstellen der Verbindung erreicht man wegen eines automatischen Resets nur den Bootloader, nicht aber das Programm auf dem Arduino. Um dies zu umgehen, setzt man einen 10 µF Kondensator zwischen GND und RST.
Die Hardware
Ich habe mich für einen Arduino Nano entschieden, da dieser eine USB-Schnittstelle anbietet und bei einem China-Nachbau äußerst günstig ist. Meistens lötet man Stiftleisten an den Nano, ich hingegen habe Buchsenleisten (wie beim großen Bruder) genommen. So kann ich ihn zwar nicht auf ein Breadboard stecken, aber das ist meistens eh recht mühsam. Dafür kann ich oben ein Shield aufstecken.
Auf dem Shield befinden sich drei Status-LEDs mit Widerständen, der Kondensator um den Reset zu verhindern und ein AVR ISP Header. Die Belegung ist wie folgt:
7 - LED Programming
8 - LED Error
9 - LED Heartbeat
10 - ISP RST (5)
11 - ISP MOSI (4)
12 - ISP MISO (1)
13 - ISP SCK (3)
5V - ISP VCC (2)
GND - ISP GND (6)
RST - Kondensator +
GND - Kondensator -
Diesen DIY-Programmer habe ich nun mit einem ISP-Kabel mit meinem ATtiny-Breadboard-Adapter verbunden.
Gekostet hat mich das alles nur wenige Euro und Spaß hat das Basteln auch noch gemacht.