Informationen für Beginner

nächste Seite 1) Grundausstattung zur Handhabung eines Mikrocontroller

Hier einige Hinweise auf hilfreiche Seiten!
Atmega8 Dekoration Der Mikrocontrollerkurs
Elektronik-kompendium
AVR-Tutorial

Anhand des Atmega8 möchte ich zeigen, wie ein Mikrocontroller in Assembler programmiert und benutzt wird.
Als Neuling ist das Interesse daran durchaus vorhanden. Schaut man in einigen Onlineshops nach findet man Entwicklungssysteme, Evaluation-Boards oder Debugger und Programmiergeräte. Die Informationen dazu taugen für den Neuling nicht um eine entschlossene Kaufentscheidung zu treffen. Die zum Teil sündhaft teuren Preise schrecken dann eventuell endgültig davon ab dieses Hobby auszuprobieren.
Alles was zur erfolgreichen Handhabung des Atmega8 und vielen anderen Typen benötigt wird:

  • kostenlose Software
  • das Programmiergerät für etwa 60,00 EUR
  • eine Lochrasterplatine, den Mikrocontroller, einige LEDs, Taster und Kleinteile für unter 10,00 EUR (www.reichelt.de)
  • Bastelgeschick
  • und das Internet! Hier habe auch ich alle Informationen gefunden um vorwärts zu kommen

Mikrocontroller oder Mikroprozessor
In einfachen, kurzen Worten (ohne Anspruch auf Vollständigkeit):.
Ein Mikroprozessor ist eine CPU am Chip
Ein Mikrocontroller ist eine CPU am Chip + zusätzliche Peripherie wie Speicher, Portbausteine, Timer, etc.
Um einen Mikroprozessor in einer Schaltung einsetzen zu können, braucht es eine 'Rundumbeschaltung'.
Ein Mikrocontroller hingegen hat so ziemlich alles 'on Bord'.
Er kann daher als Einchip-Lösung auf ein Board gesetzt werden und ist so einsatzfähig.

XXX

nächste Seite 2) Test Schaltung und ISP-Programmierschnittstelle

ISP = In System Programmer. Auf der Seite www.mikrocontroller.net sind dazu sehr gute Informationen zu finden. Unbedingt reinschauen.
ISP ist eine serielle Schnittstelle zur Kommunikation mit dem Atmega8. Der Controller-Chip kann in der Arbeitsschaltung verbleiben während er programmiert wird.
Der Pin 1 ist der Reseteingang des Controllers. Standardmäßig sollte dieser durch pull up auf Vcc=+5V liegen. Zum Programmieren zieht der ISP-Programmer die Resetleitung auf Masse (GND), die Programmausführung wird dadurch unterbrochen und der interne Speicher des Controllers kann neu programmiert werden.

Grundschaltung Test-Aufbau

Der Plan links zeigt eine einfache Testschaltung:

  • ISP-Stecker
  • Pull-Up Wiederstand
  • LED mit Vorwiderstand
  • Taster
  • Kondensatoren zur Beruhigung der Versorgungsspannung.

Hiermit lassen sich einfache Programme testen.

XXX

nächste Seite 3) Die Hardware muss zur Software passen!

Der Einfachheit halber gehe ich davon aus, das ein original Atmel ISP-Adapter (kein Clone) zur Verfügung steht.
Ich selbst hatte mir einen wesentlich günstigeren ISP-Adapter einer Fremdfirma gekauft. Wegen vieler Probleme habe ich mir später dann doch Atmels original AVRISP mkII gekauft und seit dem klappt die Programmübertragung problemlos.
AVRISP mkII Hier einige Bezugsquellen als Beispiel:
AVRISP mkII bei Reichelt oder AVRISP mkII bei Pollin


Kenntnis des Datenblattes erforderlich!
Zum experimentieren mit dem Controller ist eine solide Kenntnis des Datenblattes erforderlich! Eine hervorragende Webseite dafür ist www.avr-modelleisenbahn.de Der Autor stellt das komplette Datenblatt in deutscher Sprache zur Verfügumg.

Mein Favorit zum Programmieren ist das AVR Studio 4 von ATMEL. Dieses Programm ist kostenlos zu downloaden, direkt von ATMEL über diese Seite hier Download-Quelle AVR-Studio 4

Mittlerweile sind neuere Programmversionen vorhanden, diese sind sehr umfangreich und bedienen die neuesten Chips.
Zur einfachen Assembler Programmierung ist Version 4 ausreichend und für Beginner besser geeignet.
AVR Studio 4 bietet eine kleine auch übersichtliche Arbeitsplattform, ideal für neu Einsteiger.

XXX

nächste Seite 4) Projekt Wizard

Um mit AVR Studio 4 arbeiten zu können sind Grundlegende Einstellungen notwendig.
Die Installation hat bei mir immer gut geklappt.
Nach der Installation, beim Starten des Programmes, wird der "Project Wizard" geöffnet (Im Menü zu finden unter "Project" und dann "Project Wizard"), dieses Fenster ist unten zu sehen.
Hier sind schon einige Projekte zur Auswahl zu sehen, bei erstmaligem Aufruf sind dort noch keine vorhanden.
Menüfenster 1 Neues Projekt anlegen

Sofern ein neues Projekt gewünscht ist klickt man die Schaltfläche "New Project".

XXX

nächste Seite 5) New Project

Das "New Project" Menü-Fenster öffnet sich:
Menüfenster 2 Assembler auswählen

Hier befinden sich die Eingabefelder um ein neues Projekt anzulegen. Ich selbst programmiere in Assembler, weshalb im linken Fensterteil "Atmel AVR Assembler" aktiviert ist. Rechts beschreibt man den Projektnamen (keine Leerzeichen!) und ganz wichtig: unten den Speicherort angeben.
"Create initial file" und "Create folder" die zwei Häkchen bitte setzen. Weiter mit Schaltfläche "Next".

XXX

nächste Seite 6) Arbeits-Plattform

Das Menü-Fenster zur Auswahl der Arbeits-Plattform öffnet sich:
Menüfenster 3 Entwicklungsumgebung festlegen

Da der AVRISP mkII nur ein Programmer ist (keine debug Platform), bleibt für den Atmega8 nur "AVR Simulator" zur Auswahl.
Es ist schlecht zu erkennen, aber im linken Fenster ist "AVR Simulator2" und im rechten Fenster "ATmega8" angewählt.
Diese Auswahl beschreibt, welche Entwicklungsumgebung zur Programmerstellung und zum Testen verwendet wird.


Speichern mit Schaltfläche "Finish".

Nach "Finish" ist das neue Projekt angelegt worden. Es erscheint die Arbeitsfläche. Die linke Seite zeigt den Projekt-Stammbaum, in der Mitte ist das Assembler-Codefenster (noch leer) zu sehen.

XXX

nächste Seite 7) Select AVR Programmer

Der Programmer wird im AVR Studio angemeldet. Das neue Projekt wird mit Programmcode gefüllt.

Nun ist noch der verwendete Programmer auszuwählen. Es wird dem AVR Studio 4 mitgeteilt mit welcher Hardware es kommuniziert. Hierzu im Haupt-Menü anklicken:
"Tools", weiter unten
"Program AVR", nach rechts erweitert
"Connect...".
Menüfenster Select AVR Programmer

Das Fenster "Select AVR Programmer" öffnet sich.
Alternativ dazu kann das linke schwarze Icon "CON" angeklickt werden (Display the 'Connect' Dialog) um dieses Fenster zu öffnen.
(In der Darstellung links ist zu sehen: Der "AVRISP mkII" am USB-Port wurde ausgewählt).
Ist der Programmer mit dem PC verbunden, kann mit "Connect" das nächste Menüfenster geöffnet werden.

XXX

nächste Seite 8) Assembler Options

Jetzt kommuniziert das AVR Studio mit dem Programmer. Weitere Einstellungen sind notwendig!
Das neue Menüfenster AVRISP mkII in ISP mode ... kann beiseite geschoben werden, es wird später benötigt!
Zunächst im Haupt-Menü; anklicken:
"Project", dann unten
"Assembler Options ..."
Menüfenster  Assembler Options

Das Fenster "Assembler Options öffnet sich.
Wenn ein Assembler Projekt angelegt wurde, sind hier Auswahlpunkte zu setzen wie im Bild gezeigt.
Jetzt ist in "Additional include phat" noch folgender Pfad einzutragen:
C:\Program Files\Atmel\AVR Tools \AvrAssembler2\Appnotes

Die Angabe des Verzeichnisses "Appnotes" wird benötigt.

In diesem Verzeichnis "Appnotes", wurden bei der Installation die Definitionsdateien für die Hardware abgelegt. Passend zu diesem Pfad ist im Auswahlfeld "AVR Assembler" das Häkchen in "Version 2" zu setzen.
(Sollte der Ordner "Appnotes" woanders sein, dann eben diesen Pfad angeben.)

XXX

nächste Seite 9) AVRISP mkII in ISP mode "Main":

Das erste Programm:
Es ist soweit, jetzt wird ein Programmcode benötigt.
Für den Einsteiger steht eine kleine Routine bereit, welche eine LED am Pin 2 des Atmega8 blinken lässt. Dazu den Assembler-Code aus ASM_LED_blink.asm in das Hauptfenster von "AVR Studio 4" kopieren. Jetzt muß dieses ASM-Programm in brauchbaren Code assembliert werden.
Im Haupt-Menü anklicken:
"Built", weiter unten
"Built     F7".
Das Ergebnis ist im Projektverzeichnis zu finden.
Der brauchbare Programm-Code besteht nun aus:
Atmega8 Dekoration

Das neue Menüfenster "AVRISP mkII in ISP mode ...", welches vorher beiseite geschoben wurde (Seite 8), wird jetzt benötigt.

-- Die Menükarte "Main":
Menüfenster ISP Options - Main -- In der Menükarte "Main" ist es notwendig den passenden Controller auszuwählen. Das wäre, diesem Thema entsprechend, der Atmega8.

XXX

nächste Seite 10) AVRISP mkII in ISP mode "Program":

-- Die Menükarte "Program":
Hier sind wichtige Grundeinstellungen notwendig. Die Dateipfade müssen eingetragen werden.
Wie im Bild unten zu sehen, sind die Pfade zu den ".hex" und ".eep" Dateien auszuwählen. Menüfenster ISP Options - Program

 
 
 
 
 
 
 
.hex Datei siehe Seite 9
Speicher Pfad siehe Seite 5
 
 
.eep Datei siehe Seite 9
Speicher Pfad siehe Seite 5
 
Im "ELF Production File Format" ist nichts auszufüllen.

XXX

nächste Seite 11) AVRISP mkII in ISP mode "Auto":

-- Die Menükarte "Auto":
Hier sind Auswahlhäkchen, mit diesen wird festgelegt welche Daten zum oder vom Mikrocontroller geschrieben oder gelesen werden.
Menüfenster ISP Options - Auto

 
 
 
Wie im Bild zu sehen ist, sind diese Häkchen gesetzt um den Programmcode zum Controller zu senden.

Mit dem Schalter "Start" oder dem Icon mit der Roten Schrift "AUTO" wird die Aktion gestartet.

Unmittelbar nach der Übertragung wird der Atmega mit der Programmausführung beginnen.
Dann wird die LED an Pin 2 des Atmega im Sekundentakt blinken.

XXX

nächste Seite 12) Test Schaltung

Die LED ist mit einem Vorwiderstand an Pin 2 des Atmega anzuschließen, der Atmega benötigt eine Betriebsspannung von 5V. Die Beschaltung der Hardware mit der Blink-LED ist hier zu sehen. (Vergleiche ähnliche Beschaltung Seite 2).
Testschaltung passend zum LED-Blink Testprogramm

 
 
Pin-Belastung:
Die LED ist mit einem Vorwiderstand an Pin 2 des Atmega anzuschließen, der Atmega benötigt eine Betriebsspannung von 5V. Die Beschaltung der Hardware mit der Blink-LED ist hier zu sehen. Vergleiche Seite 2.

Achtung: der Ausgang des Atmega ist mit der LED voll belastet. Höhere Ströme können nicht direkt angeschlossen werden!

XXX

nächste Seite 13) LCD Ansteuerung

Lesbar machen was im Controller geschieht.
Hierfür ist mein komplett lauffähiges Projekt für AVR-Studio4 zum runterladen vorhanden!
Das Projekt, LCD-Ansteuerung, enthält folgende Routinen:

Bild LCD Display

Hier nochmal der Hinweis unbeding das Datenblatt der Bauteile zur Hand zu nehmen. Nur darin sind alle notwendigen Informationen zu finden.
Datenblatt LCD162A von Displaytech.

 
Die hier zum Download angebotene Datei mit Assembler Quelltext ist meine Eigenentwicklung. Das Urheberrecht liegt bei mir. Der gesamten Programmcode in diesem LCD-Projekt darf zur Eigenverwendung genutzt werden. Ich erlaube diesen in eigenen Programmcode zu integrieren oder nach Bedarf abzuändern.
Alles was hierfür benötigt wird gibt es in der Zip-Datei.
ZIP-Datei ASM-Projekt LCD Ansteuerung 4-Bit-Modus
Jetzt brauchen Sie nur noch die Dateien in ein neues LCD-Projektverzeichnis entpacken. Viel Spaß!

XXX