MicroController - Projektlabor...

13
Micro-Controller Eine Einführung Von Hendrik Pietzsch Für das Projektpraktikum WS 14/15

Transcript of MicroController - Projektlabor...

Micro­ControllerEine Einführung

Von Hendrik PietzschFür das Projektpraktikum WS 14/15

2

Überblick

Was sind μ-Controller und wofür verwendet man sie

Genereller Aufbau und Funktionsweise

Überblick über die verschiedenen Typen

Wichtige Schnittstellen

Spezielles zur Programmierung

3

Was sind μ-Controller und wofür verwendet man sie

atmega8 avrPreis ~ 1,90 Euro Bildquelle:pollin.de

Pic 12C509A04PPreis ~1,00 Euro Bildquelle:pollin.de

μ-Controller sind: kleine μ-Prozessoren (CPUs) günstig und stromsparend langsamer getaktet mit Anschlüssen zur Aussenwelt

(PINs, elektrisch) meist 8 bit RISC Technologie

Anschlüsse = PINs:Steuerung / Überwachung

elektrischer Gerätedigitale Eingänge und Ausgänge

Man findet sie überall !!!

4

Genereller Aufbau und Funktionsweise

PINs haben verschiedene Aufgaben z.B.:

- Stromversorgung- digitale / analoge Ausgänge- digitale / analoge Eingänge- Funktionsauslöser (zB RESET)- Schnittstellensteuerung- Programmierung- Taktgeber

Üblicherweise Multi-purpose PINs

- werden in Software eingestellt,- kann auch zur Laufzeit verändert werden- Funktionen abhängig vom Typen

DatenblattBeispiel: Atmega8 Pinbelegung aus ATMEL Data sheet

5

Überblick über die verschiedenen Typen

Verschiedene Hersteller:Atmel avr ATmegaArduino Board ATmegaMicrochipTechn. PICmicroFeescale ColdFireArm Xscale/Cortex

Verschiedene Bauarten:Spannungen (3.3V -5 V) Gehäuse (SMD, DIP)6 - >100 PINsBis ~40 MHz Takt

extern/ internkbyte – MByte Speicher

→ 1 - 100 Euro

Verschiedene Schnittstellen:SPII2C / TWIJTAGUART / RS232 (serial Port)USBCANEthernet

Verschieden Ausstattungen:Timer / InteruptsA/D WandlerKomparatorenWatchdogs / Brown-Out-DetectionDisplaytreiber

Viele Typen, angepasst auf die benötigten Anforderungen:

6

Überblick über die verschiedenen Typen

Verschiedene Hersteller:Atmel avr ATmegaArduino Board ATmegaMicrochipTechn. PICmicroFeescale ColdFireArm Xscale/Cortex

Verschiedene Bauarten:Spannungen (3.3V -5 V) Gehäuse (SMD, DIP)6 - >100 PINsBis ~40 MHz Takt

extern/ internkbyte – MByte Speicher

→ 1 - 100 Euro

Verschiedene Schnittstellen:SPII2C / TWIJTAGUART / RS232 (serial Port)USBCANEthernet

Verschieden Ausstattungen:Timer / InteruptsA/D WandlerKomparatorenWatchdogs / Brown-Out-DetectionDisplaytreiber

Viele Typen, angepasst auf die benötigten Anforderungen:

7

Wichtige Schnittstellen SPI - Serial Peripheral Interface

- Datenbus – System- ansprechen von Chips / Baugruppen - Verwendung zum Programmieren (InSystemProgramming)

Drei Leitungen, an denen jeder Teilnehmer angeschlossen ist:

- SCK (Serial Clock) wird vom Master zur Synchronisation ausgegeben

- MOSI (Master Output, Slave Input)

- MISO (Master Input, Slave Output)

+ 1 Leitung SS (Slave Select) je Gerät

SPI Verdrahtung Quelle: Wikipedia.de →SPI

8

Wichtige Schnittstellen I2C / TWI - Inter-Integrated Circuit

I2C = TWI: Two Wire Interface- Datenbus – System- ansprechen von Chips / Baugruppen

Vorteil: Weniger Leitungen

Nachteil: Langsamer, da - protokolloverhead - Nicht Duplex

Zwei Leitungen, an denen jeder Teilnehmer angeschlossen ist:

- SCL (clock) wird vom Master (nicht nur) zur Synchronisation ausgegeben

- SDA (data) Struktur nachvorgegebenen Protokoll

I2C Verdrahtung Quelle: Wikipedia.de →I2C

9

Anschluss und Programmierung

Beispiel:SPI als ISP ausgeführt(RESET wird an Stecker geführt)Externer Taktgeber

→ Quarz verwendetDiverse Entstörkondensatoren

Quelle: mikrocontroller.net

Spezieller CompilerÜblicherweise separat

auf anderem Rechner,dann transfer in Speicher

Übliche Sprachen:AsemblerCBasCom

10

Register programmieren

Register des μ-Controllers:

für Daten – z.B. um vorhandene Schnittstellen zu nutzenfür Einstellungen – z.B. um Eingänge / Ausgänge zu definierensind Dokumentiert – Datenblatt lesenRegister in EEPROM (Fuses) & Register in RAM (laufzeit-veränderlich)

Beispiel - Timerregister des Atmega8:

Quelle: Atmel Atmega8 data sheet

Beschreibung

Gewähltes Bit

Register

11

Interuptsteuerung

ISR Interupt-Service-Routinennutzen die Strukturen des μ-Controllersnormaler Programablauf wird unterbrochensteuern bei Ereignissen zu bestimmten Programmstrukturen hin

Wichtige Interupts:ResetCounterTimer (interner Counter)Externes Signal an PINÜbertragung abgeschlossenAD-Wandlung abgeschlossen

Quelle: mikrocontroller.net

12

Beispiel in C

#include <avr/interrupt.h>#include <avr/io.h>

int main (void) { DDRB = 0x0F; // die ersten 4 Anschlüsse des Ports B als Ausgänge

PORTB = (1<<PB1) | (1<<PB0); // setze PIN 0 und 1 auf "ein"=1 // Timer2 konfigurieren TCCR2 = (1<<CS22) | (1<<CS21); // Vorteiler 256 -> Überlaufperiode TIMSK |= (1<<TOIE2); // Timer Overflow Interrupt freischalten sei(); // activate Interupts

while(1) { } // wird nie erreicht cli(); // deactivate Interupts return 0;}

ISR(TIMER2_OVF_vect){ if ( PINB & ( 1 << PB7 ) ) PORTB |= (1<<PB2); // einschalten von PB2 else PORTB &= ~(1<<PB2); // Ausschalten von PB2}

13

Zusammenfassung

Info:Gute info und ein Tutorial (in asm & c) bei: www.mikrocontroller.net

Datenblatt der Atmel atmega Reihe

Controller sind universelle Steuereinheiten:

Es gibt viel Arten – Angepasst auf Verwendungszweck

Programmierbar und Konfigurierbar (z.B. mit C)

→ können komplexe Aufgaben bearbeiten

Können mit Umwelt kommuniziern durch PINs / Schnittstellen