AVR Butterfly

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Der AVR-Butterfly ist ein Demo-Board für den ATMega169V AVR-Controller von Atmel. Der Preis liegt zwischen ca. 19 und 35 Euro, dies ist für die gebotene Ausstattung sehr günstig.

Avr-butterfly.jpg

Aufbau/Bestandteile

  • AVR ATMega169V Controller (low-voltage-Ausführung, 16kB Flash, LCD-Controller)
  • LCD-Display (6 Stellen)
  • "Joystick"
  • RS-232-Schnittstelle
  • 4MBit Flash-Speicher (DataFlash)
  • Piezo-Lautsprecher
  • Lichtsensor (LDR)
  • Temperatursensor (NTC)
  • Anschluss für Spannungsmessung (0-5V)
  • USI Schnittstelle (für I2C, SPI und Software-UART)
  • JTAG-Schnittstelle
  • Knopfzelle

Man kann aber auch eigene Programme erstellen und auf den Butterfly mittels RS232-Verbindung übertragen. Es ist dazu keine besondere Programmierhardware erforderlich, ein einfaches Kabel zum seriellen Anschluss genügt (siehe: TODO nach unten verlinken).


Programme für den AVR-Butterfly erstellen

Der Butterfly wird mit einer vorinstallierten Anwendung geliefert, die bis auf das DataFlash und die USI-Schnittstelle die Funktion aller Komponenten demonstriert. Der Quellcode dieser Anwendung (in C) ist frei verfügbar und kann als Grundlage für eigene Entwicklungen genutzt werden.

Der Mikrocontroller auf dem Butterfly ist ein ATmega169V, man kann also Programme für den Controller wie für jeden anderen AVR in Assembler, C, Basic oder Pascal erstellt werden.


Anwendungsprogramm zum AVR-Butterfly übertragen

Die vom Compiler bzw. Assembler erzeugte HEX-Datei mit dem Anwendungsprogramm kann über den vorinstallierten Bootloader, das ISP-Interface, die JTAG-Schnittstelle oder im "Parallel-Programming-Mode" auf den Mikrocontroller (ATmega169V) übertragen werden.

Seriell über Bootloader

Diese Methode ist die einfachste und auch die sicherste Art der Programmierung. Mithilfe des vorinstallierten Bootloaders kann der Code schnell übertragen werden, benötigt keine besondere Hardware, lediglich ein "Adapterkabel" (TODO Programmierkabel). Die Vorgehensweise und die Anschlussbelegung ist im "Butterfly User-Guide" beschrieben. Software zur Übertragung ist AVR-Studio und aktuelle Versionen von AVRDUDE (letzteres auch für UNIX/BSD-Systeme). In diesem Modus ist es nicht möglich, Fuse oder Lockbits zu verändern, man kann als nichts "wirklich kaputt machen".

(low-voltage-serial) ISP Programmierung

Über den ISP-Abschluss (Jxyz)am Butterfly werden Anwendungen im "low-voltage-serial-programming-mode" zum ATmega übertragen. Dazu kann jeder ISP-Programmer genutzt werden, der mit der empfohlenen maximalen Betriebsspannung des Butterfly (4,5V) zurecht kommt (STK500, ATMEL AVRISP, AVR910, Evertool, eingeschänkt mglw. auch STK200-Dongles). (TODO wiki-verlinkung). Programmiersoftware ist jede zur Programmierhardware passende (AVRStudio, yaap, avrdude, uisp etc.).

Mit dieser Methode ist es möglich, Grundeinstellungen (Fuse- und Lockbits) zu ändern, was mit der Programmierung über Bootloader nicht möglich ist. Unerfahrene Anwender sollten hierbei jedoch besondere Vorsicht walten lassen. Auch der vorinstallierte Bootloader kann über ISP gelöscht werden ("Chip-Erase"). Man kann also damit einiges so verstellen, dass der Controller nur mit hohen Aufwand wieder in den Auslieferungszustand versetzt werden kann. Also: vor Benutzung Datenblatt lesen!

JTAG Programmierung/Debugging

Über die ATmega JTAG-Schnittstelle, die am Butterfly an Jzxy herausgeführt ist, kann der Controller über das Atmel JTAGICE (oder "Nachbau") programmiert werden. Zusätzlich besteht die Möglichkeit, das Programm "im Controller" zu debuggen. Näheres dazu im Butterfly User-Manual und in der AVRStuido-Online-Hilfe. Programmiersoftware ist AVRStudio und (TODO: OS-Programm fuer JTAGICE).

Parallel-Programming-Mode

Dieser Modus kann nur nach umlöten einiger (sehr kleiner) Bauteile auf dem Butterfly genutzt werden. Er dient sozusagen als "letzte Rettung" falls sonst kein Zugriff mehr möglich ist, z.B. bei stark "verstellten" Fusebits (z.B. Taktquelle auf externen Oszillator/Quarz). Hardware ist das STK500, das dazu entsprechend "gejumpert" werden muss und die Software AVRStudio. Die Vorgehensweise ist detailliert im Users-Manual und in der AVRStudio Online-Hilfe beschrieben.


Weblinks


Siehe auch