Rumpus
From Lochraster
Contents |
[edit] Rumpus Projektseite
Dokumentation zum Rumpus Board
Für alle ungeduldigen die nach dem Aufbau sofort loslegen möchten gibt es einen Schnellstart. In 30 Minuten zum ersten eigenen Programm.
[edit] Aufbauanleitung
[edit] Wichtige Dokumentation (zum Controller)
- Dokumentation der Hardware des Microcontrollers, atmega168 datasheet: http://atmel.com/dyn/resources/prod_documents/doc2545.pdf
- Dokumentation der Assembleranweisungen die der Microcontroller versteht, avr instruction set: http://atmel.com/dyn/resources/prod_documents/doc0856.pdf
- Dokumentation der in der AVR libc vorhandenen Funktionen, libc-manual: http://www.nongnu.org/avr-libc/ bzw. http://www.nongnu.org/avr-libc/user-manual/index.html
[edit] Wichtige Dokumentation (zum rumpus-Board)
- Infos zum rumpus-Board: http://www.lochraster.org/rumpus?de
- Testsoftware zum rumpus-board: http://git.lochraster.org/fd0/rumpus
[edit] AVR/Mikrocontroller Tutorials
- AVR Tutorial zur Programmierung in Assembler: http://www.mikrocontroller.net/articles/AVR-Tutorial
- avr-gcc Tutorial zur Programmierung in C: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
[edit] Grundlagen
- C-Lernen: http://www.petra-budde.de/download/ansi-c.pdf
- C-Tutorial: http://www.roboternetz.de/wissen/index.php/C-Tutorial
[edit] Wichtige Programme
- gcc-avr
- binutils-avr
- avr-libc
- avrdude
[edit] avr-gcc bekommen
- Windows: http://winavr.sourceforge.net/
- Mac: http://obdev.at/products/avrmacpack/index-de.html
- falls die tools nicht verfuegbar sind, in /etc/profile schauen:
PATH="$PATH:/usr/local/AVRMacPack/bin"
- falls die tools nicht verfuegbar sind, in /etc/profile schauen:
- Ubuntu/Debian:
aptitude install gcc-avr binutils-avr avr-libc avrdude
- Ubuntu-Live-CD: http://www.lochraster.org/rumpus/data/ubuntu-8.04.01-avr-livecd-20080811.iso
[edit] udev anpassen für rumpus Bootloader
(Dann sind keine rootrechte notwendig)
Für Ubuntu/Debian: Nach /etc/udev/local.rules:
# rumpus board (U23) ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE="0660", GROUP="plugdev"
[edit] WinAVR howto
- WinAVR installieren, sonst nichts, kein avr studio
- falls bereits Linux-Tools vorhanden waren: den System-Pfad korrigieren, da sonst evtl. schlechtere Versionen die bei WinAVR dabei waren benutzt werden (WinAVR trägt sich vorn ein)
- Alle Konsolen schließen/neu öffnen bzw. gleich rebooten
- C sollte sofort gehen (einfach "make" im passenden Verzeichnis)
- Für ASM:
- Makefile anpassen: "AS = avr-gcc"
- .global-Definition in der ASM-Datei nicht vergessen
- hoffentlich hab ich nix vergessen
- Notepad++ ist ein brauchbarer, wenn auch nicht immer idealer, Editor.
- Kompilieren/Flashen über die Konsole wie unter Linux
[edit] Bootloader flashen
Falls man nicht den Bausatz im Shop erworben hat, ist natürlich kein Bootloader auf dem nackten
Atmel Chip drauf.
Dieser muss zuerst über den ISP6 Anschluss geflasht werden.
Dafür müssen die Jumper für
- Mosi
- Miso
- SCK
- VCC
- RIN
gesetzt werden. Die Spannungsversorgung kann wahlweise über den Programmer oder den
USB-Anschluss erfolgen (wenn der Programmer externe Versorgung unterstützt).
Jetzt kann geflasht werden (mit su Rechten):
avrdude -p m168 -P /dev/ttyS0 -c stk500v2 -U flash:w:usbload-v0.2-rumpus.hex
Dann müssen noch die Fuse-Bits gesetzt werden:
avrdude -p m168 -P /dev/ttyS0 -c stk500v2 -U lfuse:w:0xe7:m -U hfuse:w:0xdf:m -U efuse:w:0x00:m
Und die Lock-Bits:
avrdude -p m168 -P /dev/ttyS0 -c stk500v2 -U lock:w:0x2f:m
Fertig!
Man kann es mit dmesg überprüfen:
[ 7573.613657] usb 2-10: USB disconnect, address 4 [21351.292038] usb 1-10: new low speed USB device using ohci_hcd and address 4 [21351.538196] usb 1-10: configuration #1 chosen from 1 choice
Bei lsusb müsste sowas auftauchen:
Bus 001 Device 004: ID 16c0:05dc VOTI
Um jetzt per USB flashen zu können müssen die Jumper
- D+ (USB Datenleitung)
- D- (USB Datenleitung)
- USBPVD auf 2-3
Dann einfach mal den Test drauf:
ich@lochraster:~/rumpustest$ sudo avrdude -p m168 -c usbasp -P usb -u -U flash:w:rumpustest.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9406
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "rumpustest.hex"
avrdude: input file rumpustest.hex auto detected as Intel Hex
avrdude: writing flash (3194 bytes):
Writing | ################################################## | 100% 0.38s
avrdude: 3194 bytes of flash written
avrdude: verifying flash memory against rumpustest.hex:
avrdude: load data flash data from input file rumpustest.hex:
avrdude: input file rumpustest.hex auto detected as Intel Hex
avrdude: input file rumpustest.hex contains 3194 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.29s
avrdude: verifying ...
avrdude: 3194 bytes of flash verified
avrdude done. Thank you.