MicroController - Projektlabor...
Transcript of MicroController - Projektlabor...
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