elektro-archiv.de

elektro-archiv.de

Die Wissensplattform für Elektrotechnik

->

Mikrocontroller-Tutorial

Kapitel 1: Einrichten von Hard- und Software

Im ersten Kapitel des Tutorials geht es zunächst einmal darum, die benötigten Bauteile zu beschaffen und die Entwicklungsumgebung entsprechend einzurichten für das eigentliche Programmieren.

Anschaffung

Keine Mikrocontroller-Programmierung ohne Mikrocontroller. Aber welcher ist der richtige für den Einstieg? Ich habe mich dazu entschieden, für dieses Tutorial den ATxmega128A1 von Atmel einzusetzen, genauer gesagt, das Xmega-A1 Xplained Evaluation und Demo-Kit. Es handelt sich dabei um ein Entwicklungsboard, auf dem alle grundlegenden Bestandteile für einen ersten Einstieg bereits vorverdrahtet sind, das gleichzeitig aber nahezu unbegrenzte Möglichkeiten für spätere Erweiterungen bietet.

Hardware

Das Evaluation-Kit gibt es zum Beispiel bei Reichelt schon für 36 €:

www.reichelt.de

Es kommt in einer schnöden Box ohne großartiges Zubehör.

Die Box:




Das Evaluation-Board:




Man benötigt daher noch ein USB-Kabel zur Stromversorgung und zum Programmieren des Boards. Es muss sich um ein Kabel mit USB-A und USB-Mini-Stecker handeln:




Dieses Kabel sollte in jedem guten Elektrofachmarkt für günstiges Geld zu erwerben sein, falls man nicht schon eins zu Hause hat.

Für besseres Debugging und die Überwachung während der Laufzeit kann ein Debugger wie der AVR JTAGICE mkII sinnvoll sein. Um die Kosten für die ersten eigenen Projekte möglichst gering zu halten, verzichten wir aber auf diese Option. Die Aufgaben, welche in diesem Tutorial abgearbeitet werden, sind ohne Probleme auch ohne einen Debugger zu meistern.

Software und Dokumentation

Um den Mikrocontroller programmieren zu können, benötigt man natürlich auch einige Software-Tools sowie die technische Dokumentation des Controllers. Beim Xmega-A1 Xplained kann man sich all diese Bestandteile gratis auf der Homepage der Firma Atmel herunterladen.

Atmel bietet hier eine eigene Seite für den Atxmega128A1 an unter:

http://www.atmel.com/dyn/products/product_card.asp?part_id=4298&category_id=163&family_id=607&subfamily_id=1965

Für den einfachen Start wollen wir uns hier allerdings zunächst nur die wichtigesten Komponenten herauspicken. Dazu gehört eine Entwicklungsumgebung, in welcher das Programmieren und Erzeugen des lauffähigen Maschinencodes stattfindet. In diesem Tutorial habe ich dazu das Atmel AVR Studio 5.0 verwendet. Beim AVR Studio handelt es sich um eine integrierte Entwicklungsumgebung von Atmel, welche speziell auf die AVR-Controller abestimmt ist. Die komplette Toolkette mit dem gesamten Softwareframework wurde dabei in einer Umgebung zusammengefasst. Somit kann man mit einem Programm programmieren, compilieren und bei Bedarf auch debuggen.

Mittlerweile gibt es das Atmel AVR Studio in der Version 5.1 Diese kann heruntergeladen werden unter:

http://www.atmel.com/tools/ATMELAVRSTUDIO.aspx

Um den Download durchführen zu können, muss man sich bei Atmel registrieren. Die Registrierung ist kostenlos und dient lediglich dazu, grundlegende Daten über den Nutzerkreis zu erfassen.

Des weiteren benötigt man ein Programm, um den Controller flashen zu können, also das erstellte Programm auf den Controller zu überspielen. Hierzu eignet sich das Programm FLIP (Flexible In-system Programmer). Dieses muss mindestens in der Version 3.4.2 vorliegen, damit das Flashen des Atxmega128 A1 möglich ist. FLIP ist erhältlich unter:

http://atmel.com/dyn/products/tools_card.asp?tool_id=3886

Darüber hinaus gibt es eine Vielzahl an technischen Dokumenten über das Entwicklungsboard auf der Homepage.

Die Wichtigsten sind nachfolgend jeweils mit Link auf die Atmel-Homepage aufgeführt:


ATxmega64A1/128A1/192A1/256A1/384A1 Preliminary

Die Hardware-Dokumentation speziell zum Atxmega 128A1 Mikrocontroller sowie weiteren verwandten Controllern. Gibt eine Übersicht über die dort verwendeten Komponenten.


Atmel AVR XMEGA A Manual Preliminary

Die allgemeine Hardware-Dokumentation zur XMEGA A Familie. Dort sind sämtliche Komponenten des hier verwendeten Controllers und ihre Funktionsweise genau beschrieben. Weiterhin werden dort auch sämtliche Register erklärt, über welche der Controller eingestellt wird und die Datenabfrage erfolgt.


AVR1924: XMEGA-A1 Xplained Hardware User's Guide

Die technische Dokumentation des Evaluation Boards mit Schaltplänen, Bestückungsplänen und Bauteillisten

Überblick über die Hardware

Der Mikrocontroller

Wenn alle Besorgungen erledigt sind und nach hoffentlich kurzer Lieferzeit das Evaluation Board zur Verfügung steht, ist es an der Zeit, sich einmal etwas genauer mit der Hardware zu befassen.

Daher hier zunächst die wichtigsten technischen Daten zum verwendeten Prozessor, dem Atxmega128A1 im Überblick:

CPU 8-bit Atmel, 32 Mhz
interner Flash-Speicher 128 kBytes
EEPROM 2 kBytes
SRAM 8 kBytes
DMA-Controller 4-Kanal
Event System 8-Kanal
Timer / Counter 8 x 16 Bit
AD-Wandler 2x8 Kanäle
DA-Wandler 2x2 Kanäle
USART 8

Die CPU des Atxmega128A1 ist als RISC ausgeführt. Sie ist in Harvard-Architektur aufgebaut, d.h. Programmspeicher und Datenspeicher sind getrennt voneinander. Das auszuführende Programm wird im Flash-Speicher hinterlegt. Die zu bearbeitenden Daten befinden sich im SRAM. Darüber hinaus steht auch ein EEPROM-Modul zur Verfügung, wodurch Daten auch nicht-flüchtig gespeichert werden können.

Der Controller verfügt über insgesamt 11 Ports (A-F, H, J, K, R, Q)

Weitere Informationen zur Funktion der einzelnen Controller-Bestandteile finden sich im entsprechenden Artikel zum Thema Mikrocontroller -> zum Artikel

Das Entwicklungsboard

Der Controller bildet das zentrale Element auf dem Entwicklungsboard. Darüber hinaus befinden sich auf dem Board aber noch eine Vielzahl an weiteren Funktionseinheiten.

Das Board in der Übersicht:




In der Mitte ist der Mikroprozessor zu sehen. Diesem wird über das Board auch die benötigte Spannungsversorgung von 3,3 V zur Verfügung gestellt. Das Board selbst benötigt 5 V Versorgungsspannung. In der Mitte oben befinden sich die Anschlüsse zur Spannungsversorgung und zur Programmierung, wahlweise über JTAG/PDI oder USB. Die Stiftleiste zwischen den beiden Anschlüssen dient zur Strommessung und ist üblicherweise gejumpert. Unterhalb des USB-Anschluss sitzt die zweifarbige Power-LED, welche den Betriebszustand der Platine anzeigt.

Die Platine verfügt über vier Stiftleisten zum Anschluss diverser Aktoren und Sensoren. Diese sind wie folgt belegt:

  • J1: Port F (GPIO bzw. UART und SPI)

  • J2: Port A (AD-Wandler A)

  • J3: Port D, Bit 0-5 und Port R, Bit 0-1 (GPIO, gleichzeitig mit Tastern verbunden)

  • J4: Port C (GPIO bzw. UART und SPI)

Zur Kommunikation mit dem Anwender verfügt das Board über 8 LED und 8 Taster. Die LEDs werden über Port E angesteuert. Dabei ist zu beachten, dass die Ansteuerung "active low" erfolgt. Die jeweilige LED ist also aus, wenn der Port geschaltet wird.

Die Taster sind an Port D, Bit 0-5 und Port R, Bit 0-1 angeschlossen, wobei hier eine Doppelbelegung vorliegt, da diese Ports auch auf die Stiftleiste J3 geführt sind.

Um auch mit der Analogwertverarbeitung direkt experimentieren zu können, sind auf dem Entwicklungsboard zudem ein Temperatursensor (NTC), ein Photosensor sowie ein Lautsprecher verbaut. Die beiden Sensoren sind an Port B Pin 0 (NTC) bzw Pin 1 (Photosensor) angeschlossen. Das Audiosignal wird über Port B Pin 2 ausgegeben.

Zur Zwischenspeicherung von größeren Datenmengen verfügt das Board über einen zusätzlichen Speicherbaustein von 8 MB SDRAM. Dieser wird über die Ports H,J, und K angesprochen.

Installation der Software

Die Installation von AVRStudio und FLIP gestaltet sich relativ einfach. Durch Befolgen der Anweisungen nach Starten der Installationsdateien erklärt sich eigentlich alles von selbst. Man muss lediglich beachten, dass AVRStudio ab Version 5.0 unter Windows XP mindestens das Service Pack 3 benötigt.

Damit das Evaluation Board über USB angesprochen werden kann, sind noch einige Einstellungen nötig. Die entsprechenden Konfigurationsdateien erhält man ebenfalls auf der Atmel-Homepage (wie beim AVR Studio ist eine Registrierung nötig) unter folgender Adresse:

http://www.atmel.com/Images/AVR1927_XMEGA-A1_Xplained_Example_Applications.zip

Nach dem Entpacken des .zip-Files erhält man eine Reihe von Verzeichnissen, welche neben einem USB-Treiber noch einige Skripte, Einstellungsdateien und ein Demo-Programm enthalten.

Damit der Controller über FLIP geflash werden kann, müssen dem Programm Informationen über das Zielsystem an die Hand gegeben werden. Hierzu findet man die benötigte XML-Datei, in dem entpackten .zip-File unter \Bootloader. Diese muss in das Installationsverzeichnis von FLIP kopiert werden unter: \bin\PartDescriptionFiles\

virtual com-Port installieren -> bei Frage nach Treiber auf driver verzeichnis in 1927 verweisen

Erstinbetriebnahme

Damit es zum Abschluss des ersten Kapitels auch noch ein vorzeigbares Ergebnis gibt, wollen wir noch die Erstinbetriebnahme des Evaluation Boards durchführen. Werkseitig ist dazu von AVR ein Demo-Programm installiert, welches die wichtigsten Funktionen des Controllers nutzt. Dazu muss der Controller lediglich an eine 5V Spannungsversorgung angeschlossen werden. Dies kann am einfachsten über das eingangs erwähnte USB-Kabel erfolgen.

Wichtig: Bevor eine Spannungsversorgung angeschlossen wird, muss an den Stiftkontakten für die Strommessung entweder ein Jumper gesteckt oder Amperemeter angeschlossen sein. Wenn dies nicht der Fall ist, versucht der µC sich die benötigte Leistung über IO-Pins zu ziehen, was zur Beschädigung führen kann!!!

Nach dem Anschluss der Spannungsversorgung sollte die Power-LED grün leuchten. Es startet automatisch das Demo-Programm.

Gleichzeitig meldet sich Windows, da es ein neues Gerät erkannt hat. Dieses verlangt nach einem Treiber, den wir an dieser Stelle manuell installieren wollen. Die Verbindung mit Windows-Update lehnt man daher ab:



Im anschließenden Dialog wählt man die manuelle Installation an.



Damit der Treiber vom Installationsanssistenten gefunden wird, wählt man über die Durchsuchen-Schaltfläche das Verzeichnis \driver aus dem im vorherigen Kapitel entpackten .zip-Archiv.



Die anschließende Abfrage nach dem Windows-Logo-Test kann übersprungen werden. Der Treiber sollte dann erfolgreich installiert werden und im Geräte-Manager ist ein neues Gerät als "XPLAINED Virtual Com Port" aufgetaucht.



Nun kann abschließend noch das bereits auf dem Controller vorhandene Demo-Programm getestet werden. Dabei handelt sich dabei um ein Memory-Spiel. Der Controller befindet sich zunächst im Wartemodus, erkennbar an einem Wechselblinklicht der LEDs. Nach Betätigung eines beliebigen Tasters startet das Spiel. Dabei leuchten die LEDs in zufälliger Reihenfolge auf. Die Reihenfolge muss anschließend mit den entsprechenden Tastern wiedergegeben werden, wobei jeder Taste ein bestimmter Ton zugeordnet ist, welcher über den Lautsprecher wiedergegeben wird.

Mit dieser kleinen Spielerei ist das erste Kapitel nun abgeschlossen!


hier gehts weiter mit Teil 2: Ansteuerung von Ports...


zum Seitenanfang

www.elektro-archiv.de