Diese Platine wurde mit dem Ziel konstruiert, eine möglichst einfach zu programmierende Entwicklungsplattform für gängige Atmel AVR Mikrocontroller zu schaffen. Besonderes Augenmerk wurde dabei auf den einfachen Einstieg für noch unerfahrene Benutzer gelegt. Deshalb existiert eine sehr ausführliche Dokumentation sowie eine auf Ubuntu Linux basierender bootfähige Live-CD mit allen nötigen Programmen.
Ist der verwendete Mikrocontroller einmal mit dem dafür entwickelten Bootloader bestückt (Bausätze enthalten einen vorprogrammierten Mikrocontroller mit Bootloader), so genügt ein USB-Kabel (USB A auf USB Mini B) zum programmieren und experimentieren. Die Stromversorgung der Schaltung kann dabei auch über USB erfolgen, es wird keine externe Spannungsquelle benötigt.
Weiterhin kann durch Aufspielen der "rumpusbasp"-Firmware das Board als USB-Programmieradapter in Verbindung mit dem Programm "avrdude" genutzt werden um andere AVR-Mikrocontroller zu programmieren.
Diese Schaltung wurde für das Jugendprojekt U23 des Chaos Computer Club Cologne e.V. im Jahr 2008 verwendet. Die dabei entstandene Dokumentation findet sich im Wiki des CCC Cologne unter U23 2008 und U23 2008 #2.
Die Schaltung ist für einen ATmega168 Mikrocontroller entwickelt worden, alle anderen ATmega8-pinkompatiblen Controller (ATmega8, ATmega48, ATmega88, ATmega328p, usw) funktionieren aber auch.
Im Wiki befindet sich die Dokumentation, eine ausführliche bebilderte Aufbauanleitung sowie ein Anleitung zum Schnellstart ("in 30 Minuten zum ersten Programm").
Referenzdokumentation zur Schaltung:
Dokumentation zum Controller (ATmega168):
Dokumentation der Entwicklungsumgebung (avr-gcc):
Die Pins des Mikrocontrollers sind wie folgt belegt:
| Pin | Hardware | Pin | Hardware | Pin | Hardware |
|---|---|---|---|---|---|
| PB0 | PUD | PC0 | S1 | PD0 | RX |
| PB1 | SPK | PC1 | S2 | PD1 | TX |
| PB2 | ISP_RST | PC2 | S3 | PD2 | D+ |
| PB3 | MOSI/CH3 | PC3 | S4/IR_IN | PD3 | LED2/CH4 |
| PB4 | MISO | PC4 | LED1 | PD4 | D- |
| PB5 | SCK | PC5 | TRIMMPOTI | PD5 | IR_OUT/CH2 |
| PD6 | LED3/CH1 |
Die Fuse-Bytes (für ATmega168) müssen wie folgt programmiert werden (nicht nötig für Mikrocontroller aus dem Bausatz):
| Fuse-Byte | alt | neu |
|---|---|---|
| low | 0x62 | 0xe7 |
| high | 0xdf | 0xdf |
| extended | 0x01 | 0x00 |
| lock | 0x3f | 0x2f |
Fast alle auf dem Board befindliche Peripherie lässt sich durch Jumper mit dem Mikrocontroller verbinden (bzw. trennen). Die Jumper-Standardeinstellung ist auf dem Bild oben zu sehen. Wichtigste Jumper sind:
| Jumper | Funktion | Standard |
|---|---|---|
| PWRSEL | Externe Spannungsquelle oder USB | usb-vcc (Spannung per USB) |
| USBPUD | USB Pullup-Widerstand | 2-3 (USB-Pullup Widerstand wird vom Mikrocontroller geschaltet) |
| D+ und D- | USB Datenleitungen | verbunden (Jumper gesetzt) |
| RX und TX | rs232 Datenleitungen | verbunden (Jumper gesetzt) |
Das Testprogramm "rumpustest" sowie die "rumpusbasp"-Firmware (zur Verwendung des Boards als usbasp-Programmieradapter) finden sich im rumpus Software-Repository. Dort kann (durch anklicken von "Snapshot") eine aktuelle Entwicklungsversion (als tar.gz) heruntergeladen werden. Das Repository wird mit dem Program git (Debian/Ubuntu Package: git-core) verwaltet, dieses kann auch genutzt werden, um eine aktuelle Entwicklungsversion auszuchecken:
git clone git://git.lochraster.org/fd0/rumpus
Weiterhin gibt es ein eigenes Repository für den Bootloader, usbload, im Branch 'rumpus' findet sich der Quellcode für den auf dem diesem Board verwendeten Bootloader. Mit git geht das so:
git clone git://git.lochraster.org/fd0/usbload
anschliessend in den anderer Branch wechseln:
git checkout origin/rumpus
Eine aktuelle Version (mit fertig kompilierten hex-Dateien) kann auch hier als tar.gz heruntergeladen werden:
Eine auf Ubuntu Linux basierende bootfähige Live-CD, mit allen notwendigen Programmen drauf: Ubuntu AVR Live-CD(11.8.08)
Zur Verwendung mit eigenen Projekten wird hier ein minimales Makefile zur Benutzung mit avr-gcc und avrdude zur Verfügung gestellt. Einfach im Sourcecode-Verzeichnis abspeichern, nach 'Makefile' umbenennen und im Kopf der Datei die Variablen auf das aktuelle Projekt anpassen. 'make' kompiliert den Quellcode, 'make program' läd ihn hoch.