Mikrocontroller - Schnelleinstieg Am Beispiel des Atmel Mega8 Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 1 Mikrocontroller - Schnelleinstieg: - Was ist ein Mikrokontroller? - Welche Ausrüstung brauche ich? - Wie beschalte ich einen Mikrocontroller richtig? - Wie sieht die Programmierung aus? Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 2 Der Mikrocontroller - Was ist ein Mikrocontroller? - Vollwertiger Computer auf einem Chip - Einsatzgebiete - Robotik - Regelungstechnik - Messwerterfassung - Zeitschaltuhren - Vorteile gegenüber diskreten Aufbauten - Ausfallsicher - Kompakt - Preisgünstig - Ersetzt viele analoge Schaltungen - Spart Entwicklungszeit Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 3 Die Ausrüstung: - PC Software: - Assembler: Atmel AVR Studio - Flasher: PonyProg2000 - Programmiergerät: - Wird an den Parallelport angeschlossen - Entfernen des Controllers nicht nötig - Steckbrett: - Dient zum Testaufbau - Ermöglicht schnellen Umbau der Schaltung Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 4 Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 5 Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 6 Die Ausrüstung: - PC Software: - Assembler: Atmel AVR Studio - Flasher: PonyProg2000 - Programmiergerät: - Wird an den Parallelport angeschlossen - Entfernen des Controllers nicht nötig - Steckbrett: - Dient zum Testaufbau - Ermöglicht schnellen Umbau der Schaltung Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 7 Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 8 Die Ausrüstung: - PC Software: - Assembler: Atmel AVR Studio - Flasher: PonyProg2000 - Programmiergerät: - Wird an den Parallelport angeschlossen - Entfernen des Controllers nicht nötig - Steckbrett: - Dient zum Testaufbau - Ermöglicht schnellen Umbau der Schaltung Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 9 Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 10 Grundbeschaltung: Beispiel für eine lauffähige Beschaltung: Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 11 Grundbeschaltung: Zusammenfassung: - Taktgeber (entfällt meistens) - RC Resetglied - Spannungsversorgung - Kondensatoren zur Störungsdämpfung - Angeschlossener ISP Häufige Fehler: - Kondensatoren vergessen - Stromversorgung für den ISP vergessen - Spannung nicht ausreichend gefiltert Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 12 Beschaltung von Ein und Ausgabe Anschluss einer LED: - Anschluss erfolgt über Vorwiederstand gegen VCC oder GND Funktionsweise: - Wenn PB auf „High“ --> LED Aus - Wenn PB auf „Low“ --> LED Ein - Analoges gilt für Beschaltung gegen GND Zu Beachten: - Lasten erfordern Treiber - Auf Störsicherheit achten Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 13 Beschaltung von Ein und Ausgabe Anschluss eines Tasters: - Anschluss erfolgt über Pull-Up Widerstand Funktionsweise: - Schalter geschlossen: PD liegt auf GND --> „False“ - Schalter offen PD liegt auf VCC --> „True“ Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 14 Programmierung in ASM Assembler - Sollte man können - Arbeitet Befehle linear ab - Wirkt am Anfang unlogisch und kryptisch - Es gibt Register anstatt Variablen - Befehle sind im Datenblatt CPU erklärt - Alles weitere würde den Rahmen sprengen Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 15 Programmierung in ASM Ausgabe von Daten: .include "m8def.inc" ;Port konfigurieren ldi r16, 0xFF out DDRB, r16 ;Daten ausgeben ldi r16, 0b11111111 out PORTB, r16 Philipp Fabian Benedikt Maier ;Definition einbinden ;0xFF in r16 zwischenspeichern ;Inhalt von r16 ins Datenrichtungsregister ;schreiben --> Port ist nun für Ausgabe ;konfiguriert und kann benutzt werden ;11111111 in r16 zwischenspeichern ;r16 an Port B ausgeben --> Alle Pins auf ;5V Mikrocontroller – Schnelleinstieg Seite 16 Programmierung in ASM Einlesen von Daten: .include "m8def.inc" ;Port konfigurieren ldi r16, 0x00 out DDRB, r16 ;Daten einlesen in r16, PINB Philipp Fabian Benedikt Maier ;Definition einbinden ;0x00 in r16 zwischenspeichern ;Inhalt von r16 ins Datenrichtungsregister ;schreiben --> Port ist nun für Eingabe ;konfiguriert und kann benutzt werden ;Port B auslesen und Inhalt in r16 ablegen ;--> Weiterarbeit mit Wert in r16 möglich. Mikrocontroller – Schnelleinstieg Seite 17 „Wies funktioniert Ist schnell probiert“ Dietrich Drahtlos Philipp Fabian Benedikt Maier Mikrocontroller – Schnelleinstieg Seite 18