Mikrocontroller-Einstieg mit myAVR Teil 1/7

0,00
Aus ELVjournal 02/2006     0 Kommentare
 Mikrocontroller-Einstieg mit myAVR Teil 1/7
Bausatzinformationen
ungefähr Bauzeit(Std.)Verwendung von SMD-Bauteilen.
- - -

Inhalt des Fachbeitrags

PDF- / Onlineversion herunterladen

Keine Angst vor dem Einstieg in die Welt der Mikrocontroller-Programmierung! Die myAVR-Sets enthalten alles Nötige für den schnellen und fundier ten Beginn der Programmierer-Karriere – Experimentier-Board mit ATMELCont roller, Lehrbuch, Software-Paket, Kabel, sämtliches Zubehör. Wir arbeiten uns im Verlaufe der Artikelserie anhand dieses Sets Schritt für Schritt in den Umgang mit dem AVR-Prozessor sowie den Programmiersprachen ein und zeigen anhand zahlreicher praktischer Anwendungen, dass es durchaus nicht kompliziert ist, in die Welt der Mikrocontroller einzusteigen. Der erste Teil stellt das Experimentiersystem vor und gibt einen Einblick in den Aufbau und die Funktion des behandelten Prozessors bis hin zu dessem Befehlssatz. Zusätzlich gewinnen wir einen ersten Einblick in die Entwicklungsumgebung „SiSy“.

ATMELs beliebte Problemlöser

Die AVR-8-Bit-RISC-Controller der Reihen ATtiny und ATmega von ATMEL erfreuen sich bei Elektronikern einer hohen Beliebtheit. Durch ihre kompakte und vielseitige Architektur erweisen sie sich als einfach zu handhabende Problemlöser für viele Aufgaben, zumal ein großer Teil der benötigten Hardware, wie A/D-D/A-Wand ler, UART usw. bereits Bestandteil des dennoch kompakten Controllers sind. Programmierer schätzen die einfach zu handhabende und übersichtliche Art der Programmierung, eines der Hauptargumente vieler Programmierer, den AVR gegenüber dem ansonsten funktionell nahen Verwandten PIC vorzuziehen. Entsprechend findet man die AVR-Controller in zunehmend mehr Schaltungslösungen – sie sorgen für ein übersichtliches und ökonomisches Hardware- Design und sind auch von Programmier- Einsteigern einfach zu programmieren. Bereits vor 5 Jahren haben wir uns ausführlich mit den Grundlagen der AVR-Architektur und -Programmierung beschäftigt. Seither hat sich viel getan. ATMEL hat die Angebotsbreite der beliebten Controller enorm erweitert, die Entwicklungs- Tools sind immer besser handhabbar, und man findet für jedes zu lösende Problem den passenden Controller. Der Hersteller bietet für den professionellen Entwickler mehrere Entwicklungs- Kits an, großer Beliebtheit erfreut sich z. B. das AVR-Starter-Kit STK 500. Wie gesagt, derartige Werkzeuge wenden sich jedoch an den Profi-Entwickler, also an den, der etwa schon Programmiersprachen wie Assembler oder C beherrscht und außer einer passenden Entwicklungsumgebung kaum weitere Mittel zur Programmierung benötigt. Anders hingegen stellt sich eine solche professionelle Entwicklungsumgebung dem Einsteiger, dem Auszubildenden, Studierenden oder ganz einfach nur dem bisherigen „Hardware“-Elektroniker, der auch gern in die Welt des Mikrocontrollers einsteigen möchte, dar – es wird schlicht alles benötigte Wissen und viel Erfahrung vorausgesetzt. Und manche Werkzeuge sprengen auch den finanziellen Rahmen, den diese Klientel sich setzen kann bzw. will. Ergo kapitulieren viele potentielle Anwender vor der Hürde, ähnlich, wie es vor Jahren bei den PICs zu beobachten war.

SiSy® und myAVR – Lösung für Einsteiger

Dieses Problems hat sich die sächsische Firma Laser & Co. Solutions GmbH angenommen. Das Credo: einfach zu verstehende Software entwickeln, was sich im Markenzeichen „SiSy“ manifestiert: „Simple- System“. Diesem Credo verpflichtet, bietet Laser & Co. nun das „myAVR“-System an, ein Mikrocontroller-Experimentier- und Lernsystem für Hobby, Lehre, Studium und Beruf. Es besteht aus einer Reihe von einzelnen Hardware-Komponenten, der komplett deutschen Entwicklungsumgebung „SiSy AVR“ und umfangreichem Lehrmaterial, das Schritt für Schritt, nur sehr wenige Grundkenntnisse voraussetzend, in die Programmierung der AVR-Controller einführt. Jeder Schritt kann praktisch am passenden myAVR-Board nachvollzogen werden, so dass man sehr schnell zu einem Erfolgserlebnis kommt, das zur Lösung der gestellten Übungsaufgaben anspornt. Einschränkend ist hier allenfalls zu vermerken, dass einige wenige Begriffe der Programmierung bekannt sein müssen, eine frühere Begegnung etwa mit BASIC macht den Einstieg leichter und man muss nicht erst Begriffe wie z. B. „Variable“ lernen. Wird das System in der Lehre verwendet, wird diese Einschränkung obsolet, da hier ohnehin eine Einführung in Grundsatzbegriffe und -techniken erfolgt. Der Selbst- Studierende wird ebenfalls über geeignetes Lehr- bzw. Fachliteratur-Ma terial verfügen, um diesen minimalen Voraussetzungen gerecht zu werden. Dem, der bereits in Assembler, C oder BASCOM programmieren kann, wird hier ein besonders einfach zu handhabendes Werkzeug in die Hand gegeben, um schnell zum erwarteten Ergebnis, einem lauffähigen und direkt an der Hardware erprobten Programm, zu gelangen.
Bild 1: Das AVR-Starter- Kit enthält alles, was man zum Start in die Welt des Mikrocontrollers benötigt.
Bild 1: Das AVR-Starter- Kit enthält alles, was man zum Start in die Welt des Mikrocontrollers benötigt.
Das AVR-Starter-Kit (Abbildung 1) enthält faktisch alles, was man zum Einstieg benötigt, bis hin zum kompletten Kabelsatz. Der recht günstige Preis spricht für sich, immerhin erhält man hierfür ein komplett deutschsprachiges Entwicklungs-Kit und sämtliche erforderliche Hardware dazu bis hin zu einem ATmega-Controller.
Bild 2: Das myAVR-Board ist als Seriell-/Parallelport- Version und mit USB-Schnittstelle erhältlich.
Bild 2: Das myAVR-Board ist als Seriell-/Parallelport- Version und mit USB-Schnittstelle erhältlich.
Hauptbestandteile des Kits sind die Entwicklungsumgebung „SiSy AVR“ auf CDROM (mit deutschem Benutzerhandbuch), das auf die Software und das AVR-Board zugeschnittene AVR-Lehrbuch mit ca. 200 Seiten und schließlich das „myAVRBoard“ (Abbildung 2), das neben einem ATmega8-Controller eine Reihe für alle denkbaren Versuche nützlicher Peripherie enthält. Dazu ergänzen Kabel, Batterie, Arbeitsblätter, Schnelleinstieg usw. den Lieferumfang – es kann sofort losgehen, nur ein PC, je nach Kit mit LPT- oder USB-Schnittstelle, wird noch benötigt.
Bild 3: Interessante Zusatzbaugruppe – das LCD-Board wird direkt auf den Expansionsport des myAVR gesteckt. Das Board ist nebst LCD-Programmierlehrgang in der Plus-Version des AVR-Starter- Kits enthalten.
Bild 3: Interessante Zusatzbaugruppe – das LCD-Board wird direkt auf den Expansionsport des myAVR gesteckt. Das Board ist nebst LCD-Programmierlehrgang in der Plus-Version des AVR-Starter- Kits enthalten.
Das Plus-Set der Reihe enthält zusätzlich einen direkt an das AVR-Board ansteckbaren Bausatz für die Programmierung der beliebten ATtiny-Controller (inklusive einem ATtiny12) und als Highlight ein komplettes, ebenfalls an das AVR-Board ansteckbares LCD-Board mit einem zweizeiligen, beleuchtbaren LC-Display (Abbildung 3). Dazu gibt es ein umfangreiches Lehrheft zur LCD-Programmierung, das auf ca. 50 Seiten wirklich alles zur LCDProgrammierung, auch in verschiedenen Programmiersprachen, erklärt. Für weitergehende Experimente und Lösungen sind eine Reihe von Hardware- Komponenten verfügbar, so etwa direkt ansteckbare Laborkarten oder ein Metalldetektor- Projekt. Mit Hilfe der zahlreichen Beispielprogramme ist es dem, der es ganz schnell wissen will, möglich, in wenigen Schritten sein erstes Programm zu laden, zu kompilieren, auf den Controller zu übertragen und zu testen. Anschließend entsteht automatisch der Wunsch, zu verstehen, wie es funktioniert, wie man es anpassen, verbessern und erweitern kann. Besonders für Lehrpersonal ist diese Komplettlösung ideal, kann man doch kostengünstig und unter für jeden Auszubildenden völlig gleicher Hard- und Software- Ausstattung den Einstieg in die Mikrocontroller- Programmierung lehren. Für Lehrer sind übrigens speziell zusammengestellte Paketlösungen, z. B. mit erweiterter Hardware-Ausstattung, verfügbar. Werfen wir zunächst einen Blick auf die Experimentier-Hardware, wozu auch das Wichtigste zur eingesetzten Controllerfamilie gehört, bevor wir uns der Entwicklungsumgebung und ersten Software-Projekten widmen. Dabei wollen wir allerdings nicht das umfangreiche Handbuch zum System ersetzen, dessen Inhalt führt über das Anliegen unserer Artikelserie weit hinaus, sowohl von der Grundlagenseite her als auch von der Projektausführung. Auch überlassen wir den ausführlichen Assemblerkurs dem Lehrbuch. Vielmehr unternehmen wir einen Exkurs durch das Thema mit aktuellen Bezügen zur Entwicklung des Systems.

Das Experimentier-Board „myAVR“

Das „myAVR“ ist in zwei Versionen verfügbar, die sich in der Art des Anschlusses an den PC unterscheiden. Während die eine Version den Kontakt über eine parallele und serielle Schnittstelle herstellt, erfüllt die zweite Version diese Aufgabe per USB-Port. Zentraler Part des Boards (Abbildung 4) ist natürlich der auf einer Steckfassung untergebrachte ATmega8-Controller, der dank seiner In-System-Programmierbarkeit (Kürzel: ISP) direkt hier programmierbar ist.
Bild 4: Der funktionelle Aufbau des myAVR-Boards
Bild 4: Der funktionelle Aufbau des myAVR-Boards
Die Spannungsversorgung erfolgt über eine 9-V-Spannungsquelle. Eine Spannungsregler- Baugruppe sorgt für eine stabile 5-V-Betriebsspannung auf dem Board. Eine Pegelwandler-Baugruppe mit dem MAX 232 realisiert die Umsetzung zwischen der seriellen Schnittstelle des Mikrocontrollers und der RS232-Schnittstelle. Und schließlich gehört zur „festen Verdrahtung“ des Boards noch die Takterzeugung via 3,686411-MHz-Quarz. Jeweils über die beigelegten Drahtbrücken und Buchsenleisten werden die Ports des Mikrocontrollers entsprechend der zu lösenden Aufgabe mit den Leuchtdioden, dem Piezo-Signalgeber, Tasten und Potentiometern auf der Platine verbunden, die als E/A-Bauteile dienen. All diese Bauteile reichen, um den 200-seitigen Mikrocontroller- Lernkurs ohne weitere Hardware zu bewältigen. Alle Ports des Controllers sind über eine Buchsenleiste herausgeführt, an die weitere Baugruppen, z. B. die LCD-Baugruppe oder eine eigene Applikation, einfach ansteckbar sind.

Der Mikrocontroller

Bild 5: Anschlussbelegung der AVRMikrocontroller, oben ATtiny, unten ATmega8
Bild 5: Anschlussbelegung der AVRMikrocontroller, oben ATtiny, unten ATmega8
Da man für die jeweils anstehende Aufgabenlösung nicht ohne Grundkenntnisse über den Aufbau und die Arbeitsweise des Mikrocontrollers auskommt, wollen wir uns zunächst diesem zuwenden. Der hier betrachtete ATmega8-Controller ist in der grundsätzlichen Architektur all seinen AVR-Verwandten ähnlich. Die Controllerbaureihe unterscheidet sich im Wesentlichen nur durch die Anzahl der I/O-Ports und die Speicherausstattung von seinen „großen“ Verwandten. Auch der ATtiny- Mini-Controller passt in dieses Schema. Die Anschlussbelegung der beiden Controller, die auf dem Board vorhanden bzw. im ATtiny-Programmierbausatz enthalten sind, ist in Abbildung 5 zu sehen.
Bild 6: Grundaufbau eines Mikrocontrollers
Bild 6: Grundaufbau eines Mikrocontrollers
Zum Grundverständnis des Controller- Aufbaus werfen wir einen Blick auf Abbildung 6. Hier sind die Hauptbaugruppen eines Mikrocontrollers zu sehen. Der entscheidende Unterschied zu einer reinen Zentraleinheit (CPU, Prozessor), wie wir sie etwa vom PC her kennen, ist die Ausstattung mit weiteren Bausteinen wie Speicher, analogen und digitalen I/O-Baugruppen, Schnittstellencontrollern, Timern usw. Natürlich darf man die Rechenleistung und den Befehlsumfang der kleinen Zentraleinheit eines solchen Controllers nicht mit der einer PC-CPU vergleichen, für die Ausführung der für diese Controller spezifischen Aufgaben sind Rechenleistung und Befehlsumfang (hieraus leitet sich auch der Begriff RISC-Prozessor ab: Reduced Instruction Set Computer – eingeschränkter Befehlssatz) jedoch ausreichend. Nur durch diese Architektur sind Mikrocontroller- Baugruppen extrem kompakt (und stromsparend) aufzubauen, man benötigt kaum Peripherie.
Bild 7: Blockschaltbild des ATmega8
Bild 7: Blockschaltbild des ATmega8
Da der Befehlsaufbau mit nur wenigen, einfach strukturierten Befehlen (Tabelle 1 am Ende des Artikels zeigt eine Kurzübersicht aller von den AVR-Mikrocontrollern unterstützten Befehle, hierauf kommen wir im Verlauf der Serie zurück) erfolgt, konnte man den Rechnerkern auf hohe Rechengeschwindigkeit optimieren, so sind die Controller auch bis hin zu Echtzeitaufgaben einsetzbar. Dazu kommt eine auf die Controller-Architektur speziell zugeschnittene Programm-Übersetzung und -Bearbeitung, die die Abarbeitungsgeschwindigkeit von Befehlen nochmals erhöht – RISC-Prozessoren sind in der Welt der Ein-Chip-Rechner die schnellsten Prozessoren! Abbildung 7 zeigt bereits ein komplexeres Bild – den Aufbau unseres verwendeten AVR ATmega8. Hier finden sich alle besprochenen Baugruppen in detaillierter Aufteilung wieder.

Register, RAM, ROM, Flash …

Wichtig für das Verständnis bei der späteren Programmierung ist hier noch der etwas detailliertere Blick in die Speicherausstattung. Mikrocontroller verfügen über mehrere Speicherarten, die jeweils unterschiedliche Aufgaben haben. Direkt im Kontakt mit dem Prozessorkern, dem Rechenwerk (ALU), verbunden sind die Register. Diese dienen der Verwaltung des Befehlscodes, sie sind die Operanden und Ergebnisspeicher für die direkten Maschinenbefehle des Rechenwerks. Die einzelnen Register haben jeweils bestimmte Aufgaben, wie wir noch im Verlaufe der Programmentwürfe sehen werden. Wichtig zu wissen ist die Tatsache, dass die Speicherinformationen der Register beim Abschalten der Betriebsspannung gelöscht sind! Das sind auch die des SRAM-Datenspeichers. Der dient zur Speicherung der bei der Abarbeitung von Programmen anfallenden Programmdaten sowie aller Informationen, die nicht fest im eigentlichen Programm des Controllers verankert sind, etwa auch von außen erfasster bzw. eingegebener oder zwischengespeicherter Daten. Seine Leseund Schreibzeiten sind sehr kurz, so dass der SRAM der schnellste Speicher des hier besprochenen Verbunds ist. Die dritte Klasse von Speichern sind die nicht flüchtigen Speicher. Diese kommen als ROM oder (E)EPROM vor. Sie behalten grundsätzlich einmal hier gespeicherte Informationen, auch bei Abschalten der Betriebsspannung, und eignen sich so z. B. für die Speicherung des Betriebsprogramms eines Controllers, das beim Wiedereinschalten sofort zur Verfügung steht. Im ROM werden Daten fest gespeichert, sie sind zwar auslesbar, aber nicht mehr veränderbar. Der ROM ist ein Einmal-Speicher – einmal mit Daten geladen, ist der Festspeicher nicht mehr löschbar. Ganz im Unterschied zum EPROM. Dieses ist zwar ebenfalls ein Festwertspeicher wie das ROM, es ist jedoch durch Bestrahlung eines Löschfensters im Gehäuse per UV-Licht löschbar und daraufhin wieder neu beschreibbar. Die Zahl der Lösch-/ Schreib-Vorgänge ist jedoch begrenzt. Der moderne Ableger des EPROMs ist das elektrisch löschbare EEPROM. Es ist von außen mit einem elektrischen Impuls blockweise löschbar und bis zu hunderttausend Mal wieder neu beschreibbar. Somit kann es sehr einfach mehrfach beschrieben werden, auch wenn dies nicht sehr schnell erfolgt. Diese geringe Lese- und Schreibgeschwindigkeit ist bei der Konzipierung des Programms zu beachten. Deutlich schneller arbeiten die modernsten nicht flüchtigen Speicher – die Flash- Speicher. Sie sind schnell, behalten ihre Daten auch beim Abschalten der Spannungsversorgung und sind immer wieder beschreibbar, wenn auch nicht so oft wie die EEPROMs. Über ihre serielle Schnittstelle eignen sie sich hervorragend für die Programmierung des Controllers, etwa von einem PC aus. Bis auf das ROM finden wir alle besprochenen Speicherarten in unserem AVR ATmega8 wieder, wie Abbildung 7 beweist. Das soll es zunächst in puncto Hardware gewesen sein, widmen wir uns nun der Software bzw. der Programm-Entwicklungsumgebung.

Die Entwicklungsumgebung SiSy

Bevor wir die eigentliche Entwicklungsumgebung betrachten, müssen wir uns den üblichen Gang der Programm-„Produktion“ vergegenwärtigen – die folgenden Schritte werden uns immer wieder begleiten. Zuerst wird der Quellcode in einem geeigneten (ASCII-Text-)Editor geschrieben. Hier erfolgt die Zusammenstellung der einzelnen Befehle, von der Initialisierung des Controllers über die Zusammenstellung der Unterprogramme bis zum Abschluss des Programms. Dieser Quellcode muss anschließend in die so genannte Maschinensprache übersetzt werden, einen Code, der vom Rechenwerk des Controllers direkt „verstanden“ wird und durch diesen abarbeitbar ist. Diese Übersetzung übernimmt ein Compiler. Er prüft auch den Quellcode auf syntaktische Fehler. Um mehrere Objektdateien (Programmteile) zu einer ausführbaren Programmdatei zusammenzufügen, kommt ein so genannter Linker zum Einsatz. Zur Programmierumgebung gehören auch Testwerkzeuge, die eine Programmlaufsimulation sowie eine systematische Fehlersuche ermöglichen, Simulatoren und Debugger. Und schließlich gehören noch Werkzeuge für die Übertragung des Maschinencodes in das EEPROM oder, wie bei unserem ATmega8, in den Flash-Speicher des Controllers hierzu. Bei manchen Programmierumgebungen, wie auch bei „SiSy“, sind die Schritte Linken (Übersetzen der Objektdatei in eine für den Controller ausführbare Hexdatei) und Speichern auf den Flash-Speicher („Brennen“) getrennt, bei anderen hingegen ist dies nur ein Werkzeug, das lediglich Rückfragen vor dem Brennen stellt.
Bild 8: Die Programmieroberfläche von SiSy: Die beiden Beispiele zeigen die verschiedenen Programmiermethoden per Zeileneditor und per Programmablaufplan.
Bild 8: Die Programmieroberfläche von SiSy: Die beiden Beispiele zeigen die verschiedenen Programmiermethoden per Zeileneditor und per Programmablaufplan.
Kommen wir damit zu „SiSy“, einem so genannten Modellierungswerkzeug, das für die objektorientierte Programmierung von Branchenlösungen entwickelt wurde. Unsere hier genutzte Entwicklungsumgebung ist ein Add-on für dieses Modellierungswerkzeug, das speziell für die AVR-Programmierung entwickelt wurde. Es erlaubt sowohl die einfache Programmentwicklung über einen üblichen Programmeditor als auch die Generierung eines Programms über einen grafischen Programmablaufplan (PAP). Abbildung 8 vermittelt einen ersten Eindruck dieser beiden Vorgehensweisen anhand der Bedienoberfläche von SiSy. Diese werden wir anhand erster Programmierschritte in der nächsten Ausgabe eingehender kennen lernen.

Fachbeitrag online und als PDF-Download herunterladen

Inhalt

Sie erhalten den Artikel in 2 Versionen:

online  als Online-Version

pdf  als PDF (6 Seiten)

Sie erhalten folgende Artikel:
  • Mikrocontroller-Einstieg mit myAVR Teil 1/7
    • 1 x Journalbericht
weitere FachbeiträgeForen


Hinterlassen Sie einen Kommentar:
  Name
  E-Mail
KATEGORIEN
DAS KÖNNTE SIE AUCH INTERESSIEREN