AVR Butterfly: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
Zeile 9: Zeile 9:
== Aufbau/Bestandteile ==
== Aufbau/Bestandteile ==


* AVR ATMega169V Controller (low-voltage-Ausführung, 16kB Flash, LCD-Controller)
* AVR ATMega169V Controller (low-voltage-Ausführung, 16kB Flash, [[LCD]]-Controller)
* [[LCD]]-Display (6 Stellen)
* LC-Display (6 Stellen)
* "Joystick"
* "Joystick"
* [[RS-232]]-Schnittstelle
* [[RS-232]]-Schnittstelle

Version vom 2. April 2006, 21:23 Uhr

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)
  • LC-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

Eigene Programme können über eine RS232-Verbindung zum AVR auf dem Butterfly übertragen werden. Es ist dazu keine besondere Programmierhardware erforderlich, ein einfaches Kabel zum seriellen Anschluss genügt (z.B. Kabel einer alten/defekten seriellen PC-Maus "recyclen").

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. Programme für den Controller können also 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. Dazu wird lediglich ein "Adapterkabel" (3-adrig) zwischen einem RS-232 Anschluss am PC (COMx, ttyX) und dem RS-232/UART Anschuss des Butterfly benötigt. 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 also nichts "wirklich kaputt machen". Siehe dazu auch den Artikel: AVR Butterfly über serielle Schnittstelle programmieren.

(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-Programmer, Evertool, möglicherweise auch manche STK200-Dongles). Programmiersoftware ist jede zur Programmierhardware passende (AVR-Studio, yaap, AVRDUDE, Uisp etc.).

Mit dieser Methode ist es möglich, Grundeinstellungen (Fuse- und Lockbits) zu ändern, was bei 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!

NIE die Taktquelle auf einen externen Quarz(-oszillator) einstellen. Das wieder rückgängig zu machen kann kniffig werden. NUR internen R/C-Oszillator als Taktquelle verwenden (kann für genaues UART-Timing mittels des Uhrenquarzes kalibriert werden).

JTAG Programmierung/Debugging

Über die ATmega JTAG-Schnittstelle, die am Butterfly an J402 herausgeführt ist, kann der Controller über das Atmel JTAGICE (oder "Nachbauten" wie BootICE oder Evertool) programmiert werden. Zusätzlich besteht die Möglichkeit, das Programm "im Controller" zu debuggen. Näheres dazu im Butterfly User-Manual und in der AVRStudio-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. Der Modus 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 (oder der "Teil-Nachbau" HVProg). Das STK500 muss dazu entsprechend "gejumpert" werden, die erforderliche Software ist AVRStudio. Die Vorgehensweise ist detailiert im Users-Manual und in der AVRStudio Online-Hilfe beschrieben.

Anwendungshinweise

Bei Problemen mit den ADC-Eingaengen und PORTB: Der vorinstallierte Bootloader deaktiviert einige Eingänge. Der Kommentar zum Code und der Code selbst sind verwirrend und moeglicherweise falsch. Abhilfe: Vergleiche ATmega169-Datenblatt Register DIDR0 und DIDR1.

Weblinks


Siehe auch