Impressum

Deutsch | English

rumpus Projektseite

rumpus v2

Beschreibung

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.

Dokumentation

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):

Hardware

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)

Software

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 -b rumpus origin/rumpus

Eine aktuelle Version (mit fertig kompilierten hex-Dateien) kann auch hier als tar.gz heruntergeladen werden:

Live-CD

Eine auf Ubuntu Linux basierende bootfähige Live-CD, mit allen notwendigen Programmen drauf: Ubuntu AVR Live-CD(11.8.08)

Makefile

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.

Links