Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨...

35
Einf ¨ uhrung Hardwareeigenschaften Programmierung Fazit Die AVR Mikrocontrollerfamilie Johannes Bauer AKES - Ausgew¨ ahlte Kapitel eingebetteter Systeme 10. Mai 2006 Johannes Bauer Die AVR Mikrocontrollerfamilie

Transcript of Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨...

Page 1: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Die AVR Mikrocontrollerfamilie

Johannes Bauer

AKES - Ausgewahlte Kapitel eingebetteter Systeme

10. Mai 2006

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 2: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Ubersicht uber den Vortrag

Was sind AVRs? 2/35

I Anwendungsfelder

I Hardwareeigenschaften

I Programmierung

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 3: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Ubersicht uber den Vortrag

Mikrocontroller 3/35

I Kleiner ChipI Viel integrierte Hardware

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 4: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Ubersicht uber den Vortrag

Mikrocontroller 4/35

I Nur noch wenig zusatzliche ICs notwendigI Reduktion externer Bauelemente

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 5: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Ubersicht uber den Vortrag

Anwendungsbeispiel 5/35

I Warum einen AVR?I Einfach beschaffbar

I Leicht programmierbar

I Gut zu debuggen

I Sehr flexibel (mehrere Großen)

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 6: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Die AVR-Familie 6/35

I AT90S...I Alteste AVR 8-Bit GenerationI AbgekundigtI Noch ca. 7 aktive Typen

I ATtiny...I Kleine ICs (8-Pinner)I StromsparendI 8 aktive Typen

I ATmega...I Teilweise sehr groß (64 Pins beim ATmega128)I Viel on-board HardwareI 15 aktive Typen

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 7: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Die AVR-Familie 7/35

I Bis auf wenige Ausnahmen Opcode-kompatibel

I SPI-Programmierung immer gleich

I Moglichkeit, multiple Footprints handzuhaben

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 8: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Name Flash RAM EEPROM I/O PreisS1200 1kB - 64 Bytes 15 1,45S2313 2kB 128 Bytes 128 Bytes 15 1,85tiny11 1kB - - 6 1,15tiny15 1kB - 64 Bytes 6 1,50tiny26 2kB 128 Bytes 128 Bytes 16 2,00mega8 8kB 1kB 512 Bytes 23 2,75mega16 16kB 1kB 512 Bytes 32 4,15mega32 32kB 2kB 1kB 32 6,20mega128 128kB 4kB 4kB 53 10,50

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 9: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 10: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Flash-Speicher 10/35

I Programmspeicher

I On-Chip

I Bis zu 10.000 wiederprogrammierbar

I Uber SPI seriell programmierbar (SCK, MISO,MOSI)

I Typische Große 1kB-128kB

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 11: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 12: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Das EEPROM 12/35

I Datenspeicher

I On-Chip

I Bis zu 100.000 wiederprogrammierbar

I Durch das Programm selbst les- und schreibbar

I Speicher fur Konfigurationsdaten

I Typische Große 128-4kB

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 13: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 14: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Standardhardware 14/35

I 32 General Purpose Registers

I On-Chip Flash

I (Fast) jeder AVR hat SRAM und ein EEPROM

I Mindestens einen Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 15: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 16: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 17: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Spezialhardware: USART 17/35

I Kommunikation mit anderen AVRs oder PCs

I Bei RS232 verwendet (Pegelwandlungerforderlich)

I Benotigt zwei Portpins: RX, TX

I Hat so gut wie jeder AVR (bis auf dietiny1n-Typen)

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 18: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 19: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Spezialhardware: PWM 19/35

I Pulsbreitenmoduliertes Signal an einemAusgabepin (variabler Dutycycle)

I Effiziente Steuerung von bspw. Motoren oderLampen

I Mit Tiefpaß als DAC verwendbar

I Schon kleine AVRs (ATtiny26) haben 2PWM-Kanale

I Bis zu 8 Kanale (z.B. ATmega128)

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 20: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Spezialhardware: ADC 20/35

I 10 Bit ADC, 15kSPS

I Schon ein kleiner ATtiny15 hat 4 Kanale

I Bei großeren AVRs (ATmega128) kann der Gaineingestellt werden

I ATmega128: 8 Kanale (gemultiplext)

I Spart insgesamt ein bis zwei ICs (Verstarker,Wandler)

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 21: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Interrupts 21/35

I Asynchrone Programmunterbrechung

I Einsprungpunkt im Programm:”Vektor“

I Verschiedene Quellen fur Interrupts, z.B.:I ZeitgeberI Datenempfang (z.B. uber das USART)I Externe Quelle

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 22: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 23: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 24: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Interrupts: Timer 24/35

I Sehr feingranulare Zeiteinstellung moglich

I Praemptives Multitasking durch Timerinterrupts

I”Time-Triggered“ Tasksplanung moglich

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 25: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 26: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Grunds atzlichesHardwareausstattungInterrupts und Timer

Interrupts: Ereignisse 26/35

I”Event-Triggered“ Interrupts

I Beispiel:”Daten empfangen“ oder

”Bereit zum

Senden“I Externe Signale (Flanken) konnen Programm

unterbrechenI Vorteil: Kein Polling, Erkennung der Flanke in

Hardware (Latch)I Schalten der MCU in den Sleep-Mode,

”Wake on

Interrupt“Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 27: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

Die offene AVR-Toolchain 27/35

I Assemblierung: avr-asI Compilierung: avr-gccI Flashing: avrdude

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 28: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

Der Assembler 28/35

I Makroassembler ahnlich dem normalen gcc-as

I Ubersetzt Assembler-Input in Objektdatei-Output

I Danach Linking mit avr-ld notwendig

I Extraktion der Binardaten mit avr-objdump

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 29: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

Der Compiler 29/35

I C oder C++-Compiler

I Schon standardisierte Header-Files (nacheinigen Anderungen)

I Kompilierung mit avr-gcc erzeugt direkt dasOutputfile

I Handling multipler Objekte wie vom gcc gewohnt

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 30: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

Das Flashprogramm 30/35

I Intuitive Kommandozeilenbedienung

I Gut aus Makefiles heraus zu verwenden

I Unterstutzt auch problematische AVRs

I Unterstutzt alle gangigen Flashgerate (inkl.selbstgebauter)

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 31: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

BTnodes 31/35

I Basierend auf ATmega128, 8MHz

I Zusatzlich BT-Hardware auf dem Board

I Viele Interfaces der MCU extern herausgefuhrt(I2C, UART, ADC, ...)

I BT-Stack als OpenSource in C verfugbar

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 32: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 33: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

ToolchainAVRs in der Praxis

BTnodes 33/35

I Entwicklung der ETH ZurichI Vorteile:

I Keine HardwareentwicklungI Funktioniert Out-of-the-box

I Developer-Kit (inkl. Programmiergerat, Software,2 BTnodes) fur 520 EUR zu haben

I Anwendungsgebiete: Biologie, verteilte Systeme

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 34: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Fazit 34/35

I Kleine 8-Bit RISC MCUs

I Sehr flexibel, viel Hardware auf dem Chip

I Wenige externe Komponenten benotigt

I Ausgesprochen gute Wahl, um mit MCUsherumzuprobieren

I Ein riesen Spielspaß!

Johannes Bauer Die AVR Mikrocontrollerfamilie

Page 35: Die AVR Mikrocontrollerfamilie · Die AVR-Familie 6/35 I AT90S... I Alteste AVR 8-Bit Generation¨ I Abgekundigt¨ I Noch ca. 7 aktive Typen I ATtiny... I Kleine ICs (8-Pinner) I

EinfuhrungHardwareeigenschaften

ProgrammierungFazit

Gibt es noch... 35/35

Fragen?

Johannes Bauer Die AVR Mikrocontrollerfamilie