AVR - Mikrocontroller
eBook - ePub

AVR - Mikrocontroller

MegaAVR® - Entwicklung, Anwendung und Peripherie

  1. 444 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

AVR - Mikrocontroller

MegaAVR® - Entwicklung, Anwendung und Peripherie

About this book

Zur Durchführung eines gemischten Hard- und Softwareprojektes mit Mikrocontrollern ist fundiertes Wissen über die Hardwareeinheiten des Controllers unabdingbar. Ebenso notwendig ist die Kenntnis von Sprachen auf zwei Ebenen - C für die große Struktur der Firmware und Assembler für zeit- oder resourcenkritische oder hardwarenahe Codeabschnitte. Das Buch stellt die notwendigen Grundlagen für erfahrene Entwickler bereit, um eigene Projekte mit Mikrocontrollern realisieren zu können. Als Grundlage dient der 8 bit-Mikrocontroller ATmega16 als typischer Vertreter der megaAVR® Mikrocontroller der Firma Atmel®.
Das Buch stellt Aufbau und Hardwarebaugruppen des ATmega16 stellvertretend für alle megaAVR®-Mikrocontroller und ihre Ansteuerung über Register detailliert vor und liefert Lösungsansätze für typische Problemstellungen aus dem Umfeld der Embedded-Entwicklung wie Messung von Zeit, Frequenz und Geschwindigkeit, Steuerungen, Ereignisbehandlung und asynchrone Programmierung sowie Kommunikation über SPI, TWI oder serielle Schnittstelle. Beispiele wie mikrosekundengenaue Stoppuhren, Fahrradtachometer oder Frequenzzähler illustrieren die Verfahren. Zu jedem Problem ist neben der Schaltung das vollständige Program in C oder - wenn sinnvoll - Assembler gezeigt. Neben Hard- und Softwareentwicklung wird auch die praktische Arbeit mit Atmel Studio® beleuchtet, wie das On-Chip-Debugging und ein Entwicklungszyklus (Editieren, Compilern und Linken, Flashen). Darüber hinaus werden im Rahmen von Projekten wie DDS-Synthese oder Analog-Datenlogger typische Peripheriebausteine (Echtzeituhren RTC, Digital-Analog-Wandler DAC, serielle EEPROMs) vorgestellt.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access AVR - Mikrocontroller by Ingo Klöckl in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Science General. We have over one million books available in our catalogue for you to explore.

1 Einführung, AVR®-Hardware

Dieses Buch behandelt die Entwicklung elektronischer Schaltungen, denen ein Mikrocontroller (MCU) aus der megaAVR®-Familie, einer Reihe von 8bit-MCUs der Firma Atmel®, zugrundeliegt, und zwar der Typ ATmega16. Diese Wahl richtete sich nach folgenden Überlegungen:
Der ATmega16 ist ein typischer Vertreter der „mittelgroßen“ 8 bit-AVR-MCUs.
Er ist einfach und günstig zu beschaffen und auch im DIL-Gehäuse erhältlich, sodaß er einfach für Testaufbauten auf Breadboards verwendet werden kann.
Er verfügt über die Hardware-Baugruppen der megaAVR-Reihe, insbesondere über serielle Schnittstellen wie USART, SPI und TWI sowie Analog-Digital- Wandler.
Er ist der kleinste Typ, der eine JTAG-Schnittstelle zum On-Chip-Debugging aufweist.
Er verfügt über so viele Portpins, daß Testschaltungen nur selten komplett umgebaut werden müssen, wenn Sie rasch zwischen Projekten wechseln wollen. Aufgrund der Pinanzahl müssen wir nicht auf komplizierte Weise „übriggebliebene“ Einzelpins zu Pseudo-8 bit-Ports zusammenfügen, um Peripherie anzusteuern, da wir für jedes Beispiel einen oder zwei komplette 8 bit-Ports zur Verfügung haben.
Das Buch stellt weder eine Einführung in die Programmierung allgemein, noch in die C- oder Assemblerprogrammierung dar, sondern soll erfahrenen Programmierern als kompakter Einstieg in die Welt der AVR-Mikrocontroller dienen. Vorkenntnisse in C und einer Assemblersprache sind daher ebenso wie elektronische Grundlagen und Kenntnisse von Prozessorarchitekturen hilfreich. In diesem Kapitel werden zunächst der innere Aufbau und die elektrischen Eigenschaften des ATmega16 behandelt. Das nächste Kapitel befaßt sich mit der Programmierung der MCU in C und Assembler im allgemeinen. Die einzelnen Baugruppen werden in den nachfolgenden Kapiteln beschrieben.
image
Atmel®, AVR®, AVR Studio®, megaAVR®, tinyAVR®, XMEGA®sind eingetragene Marken oder Warenzeichen der Atmel Corporation oder ihrer Tochtergesellschaften. SPI™ ist ein Warenzeichen von Motorola. Weitere, evt. nicht gekennzeichnete Marken, Produktnamen, Servicenamen oder Warenzeichen sind Eigentum der jeweiligen Inhaber. Aus dem Fehlen einer Kennzeichnung bei diesen und anderen Begriffen kann keine freie Verwendbarkeit abgeleitet werden.
image
Einige Abbildungen, speziell die Timingdiagramme, können unter http://www.degruyter.com/view/ product/449202 zur besseren Lesbarkeit als Graphikdateien in hoher Auflösung heruntergeladen werden.
image
Sie können mit dem hier vermittelten Wissen leicht auf andere megaAVR-Typen umsteigen, die auf Ihr Projekt besser passen. Sie müssen jedoch zuvor das Datenblatt des ins Auge gefaßten Typs konsultieren, um das richtige Pinlayout und die Aufteilung der I/O-Register zu erfahren. Im großen und ganzen sind die Kontrollregister und -bits zwar ähnlich, aber nicht bitgleich.
Der Umstieg auf die kleinen Typen der tinyAVR-Reihe ist nicht so ohne weiteres möglich, da diese nur über eingeschränkte Hardwareunterstützung für Funktionen wie ADC, synchrone serielle Schnittstellen oder TWI verfügen. Meist besitzen sie eine Multifunktions-Baugruppe zur Datenübertragung, mit deren Hilfe Sie softwaregestützt die notwendigen Protokolle implementieren können. Ebenfalls nicht beschrieben sind Funktionen derXMEGA-Typen wie USB- oder CAN-Bus-Unterstützung.
image
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengetragen und überprüft. Dennoch sind Fehler nicht auszuschliessen, und die Übernahme oder Benutzung von Quellcode und Verfahren erfolgen ohne Gewähr und auf eigene Verantwortung.

1.1 Aufoau der AVR-MCU

Die wichtigste Referenz zur Hardware des ATmega16 ist das Datenblatt [1]. In [9] finden Sie eine ausführliche Beschreibung des Befehlssatzes auf Maschinenspracheebene. Der ATmega16 wird in den Gehäuseformen PDIP-40, TQFP-44 und QFN/MLF-44 geliefert, Abb. 1.1 zeigt das Pinlayout des für Experimente auf einem Breadboard besonders geeigneten PDIP-40-Gehäuses.
image
Abb. 1.1. Pin-Layout des ATmega16 im PDIP40-Gehäuse.

1.1.1 Prozessorregister

Die ATmega16-MCU verfügt wie alle 8 bit-MCUs von Atmel über 32 allgemein verwendbare 8bit-Register, die R0–R31 genannt werden. Die Registerpaare R27:R26, R29:R28 und R31:R30 (High-Byte/Low-Byte) können zu den drei 16 bit-Registern X, Y und Z kombiniert werden, die als Zeiger ins SRAM dienen, das Z-Register zusätzlich als Zeiger ins Flash-ROM. Zusätzlich zu diesen Registern gibt es den 13 bit-Programmzähler PC und den 10 bit-Stackpointer SP sowie das Statusregister SREG.
Die allgemeinen Register sind in weiten Bereichen gegeneinander austauschbar, eine wichtige Sonderstellung stellt jedoch die Gruppe der Register R16–R31 dar. Diese können im „immediate address mode“ benutzt werden, d. h. Sie können bei den Instruktionen ldi, andi, ori, subi, sbci, cpi, ser, sbr und cbr Konstanten angeben. Weiterhin arbeiten einige Instruktionen wie muls und mulsu nur mit Registern aus diesem Bereich.

1.1.2 Statusregister, Statusbits

Das Statusregister SREG enthält acht Bits oder Flags, die Informationen über die zuletzt ausgeführte Instruktion bzw. das Resultat der letzten arithmetischen oder logischen Operation speichern. Der Einfluß der verschiedenen Instruktionen ist in [9] detailliert dargestellt. Die einzelnen Bits können als Bedingung für Sprungbefehle genutzt werden; da sie bei allen ALU-Operationen aktualisiert werden, können Sie oft ohne explizite Vergleichsoperationen Entscheidungen über Programmverzweigungen aufgrund geeigneter Flags fällen lassen. Im einzelnen stehen folgende Flags zur Verfügung:
Das I-Flag ist das globale Interruptflag, mit dem Interrupts grundsätzlich erlaubt werden. Über dieses Flag hinaus müssen Sie jeden gewünschten Interrupt individuell über ein Bit im Kontrollregister der betreffenden Baugruppe aktivieren. Ist das I-Bit 0, werden keine der individuell aktivierte...

Table of contents

  1. Cover
  2. Titel
  3. Impressum
  4. Dedication
  5. Table of Contents
  6. Vorworte
  7. 1 Einführung, AVR®-Hardware
  8. 2 AVR®-Programmierung unter AVR-GCC
  9. 3 Praktischer Einstieg mit Atmel Studio®
  10. 4 Digital-I/O
  11. 5 Timer/Counter
  12. 6 USART, Serielle Schnittstelle
  13. 7 TWI, TwoWire-Interface
  14. 8 SPI, Serial Peripheral Interface
  15. 9 Analog-I/O
  16. Literatur
  17. Stichwortverzeichnis