Pfad: Home => AVR-DE => cq-dl-Beiträge => Teil 1 Logo
Experimentierschaltung

cq-dl-Beiträge zu ATMEL-AVR-Mikrocontrollern


Teil I: Hardware von ATMEL-AVR-Mikrocontrollern

Was ist ein AVR-Prozessor?

AVR-Prozessoren sind kleine, fertig aufgebaute Rechner, die schon alles haben, was einen erwachsenen Computer ausmacht: eine Recheneinheit (CPU), nur-lesbaren-Programmspeicher, statischer Speicher, nichtflüchtiger und wiederbeschreibbarer Speicher (EEPROM), eine Unterbrechungssteuerung (Interrupts), den Taktoszillator sowie zahlreiche weitere Hardwarekomponenten wie Parallelports, Timer/Zähler, asynchrone und synchrone serielle Schnittstellen, Pulsweiten-Modulatoren (Digital-Analog-Wandler), Analog-Digital-Wandler, Echtzeituhren. Weil alles schon drin ist im Chip und nur noch ein paar wenige externe Pins zu beschalten sind, sind die externen Beschaltungen sehr einfach.

Typisch für AVR-Prozessoren ist der eingebaute wiederbeschreibbare Programmspeicher. Da kein externes EPROM nötig ist und der Flash-Speicher im seriellen Übertragungsmodus ohne besondere Programmierspannung beschreibbar ist, kann der Chip sogar innerhalb der fertigen Schaltung programmiert werden. Besonders bequem also für den Gelegenheitsprogrammierer, der sich langsam an die Programmierung herantraut und viele Versuche bis zum Erfolg braucht.

Weil Programmspeicher und etwas RAM-Speicher schon im Chip eingebaut sind, wird nach außen hin kein Adress- und Datenbus gebraucht. Das macht es möglich, die kleinsten Prozessoren in einem nur achtpoligen Gehäuse unter zu bringen und stellt die meisten Pins für Ein- und Ausgaben zur Verfügung. In der Schaltung entfällt die Verdrahtung der Busanschlüsse, das macht die Schaltung einfach und hält die extern erforderlichen Komponenten in engen Grenzen.

Trotz der 8-bittigen internen Architektur sind die Prozessoren auch bei 8 bis 10 MHz Takt sehr schnell. Dazu trägt der eigens optimierte Befehlssatz (Reduced Instruction Set, RISC), die 16-bittige Befehlsarchitektur und der von Speicherzugriffen getrennte interne Zugriff auf den Programmspeicher bei. Bis auf wenige Ausnahmen braucht jeder Befehl nur einen Taktzyklus und der Zugriff auf den Programmspeicher erfolgt schon während der Abarbeitung des vorausgegangenen Befehls (Fetch during execution).

Zeitkritische Anwendungen können die Möglichkeit der Unterbrechung nutzen, so dass die Anforderung z.B. durch ein Hardware-Ereignis nach optimal kurzer Zeit bearbeitet wird. Zahlreiche Interrupts sind konfigurierbar, die Bearbeitung gleichzeitig eintreffender Interrupts erfolgt nach einer vorgegebenen Priorität. Zur Geschwindkeitserhöhung trägt auch die Möglichkeit bei, das interne RAM als Zwischenspeicher (Stapel, Stack) zu nutzen. Rein interruptgesteuerte Programme können den Chip in den Schlafmodus versetzen, mit gut halbiertem Strombedarf, und werden auf Anforderung schnell wieder geweckt.

Allgemeine elektrische Eigenschaften

Die Chips lassen sich mit einer Betriebsspannung zwischen 4 und 6 Volt betreiben, manche Ausführungsformen auch mit 2,7 bis 6 Volt. Sie brauchen bei 8 MHz Takt und 5 Volt Betriebsspannung zwischen 10 und 12 mA. Im Schlafmodus mit Weckfunktion sinkt der Verbrauch auf weniger als die Hälfte. Auch eine niedrigere Betriebsspannung und eine niedrigere Taktrate spart Strom. Sie sind also recht sparsam zu betreiben.

Beim Hochfahren der Betriebsspannung wird ein Power-On-Reset durchgeführt, die Hardware wird auf Anfangswerte zurückgesetzt und die Programmbearbeitung beginnt bei Adresse 0000. über einen externen Resetpin kann ein Neustart ebenfalls ausgelöst werden.

Der Takt kann an zwei Pins extern über einen Quarz oder Keramikschwinger erzeugt werden. Er kann aber auch aus einem eigenständigen externen Generator zugeführt werden. Die Taktung mit einem internen RC-Generator ist ebenfalls möglich, allerdings ist die Taktfrequenz dann sehr abhängig von der Betriebspannung und der Temperatur.

Pins, die als Ausgabeports konfiguriert sind, können je nach Betriebsspannung zwischen 10 und 20 mA treiben, so dass z.B. LEDs über einen Strombegrenzungswiderstand direkt gegen die Betriebsspannung getrieben werden können.

Die Abbildung 1 (Anzeige als PDF-Datei) zeigt einen der einfachsten AVRs in seiner Außenbeschaltung.

2323 mit Beschaltung

Die RC-Kombination am Reseteingang verzögert den Reset beim Hochfahren der Betriebsspannung, der Widerstand vor dem Reseteingang begrenzt den Strom aus dem Elko in den Pin insbesondere beim Abschalten der Betriebsspannung, die Diode sorgt für einen sicheren Reset beim kurzen Absenken der Betriebsspannung. Der Kondensator am Betriebsspannungsanschluss glättet die Schaltspitzen, die durch die Taktung im Chip entstehen und sorgt für weniger HF auf der Versorgungsleitung. Der Taktoszillator ist mit einem Standardquarz bestückt, die beiden Kondensatoren helfen beim Anschwingen des internen Oszillators.

Welche AVR-Typen gibt es?

Die AVR-Typen unterscheiden sich hinsichtlich des verfügbaren Speichers (z.B. von 2k bis 8k), der nach außen hin verfügbaren Ein- und Ausgabepins (z.B. 3 bis 48 Pins) und der eingebauten Hardwarekomponenten. Drei beliebte Typen sind in der Tabelle 1 charakterisiert.
Tabelle 1: Ausgewählte AVR-Typen und ihre Charakteristika
AVR-TypAT90S2323AT90S2313AT90S8515
Anschlusspins82040
max. Taktrate MHz8108
Programmspeicher K Words228
Statisches RAM Bytes128128512
EEPROM-Speicher Bytes128128512
Ein-/Ausgabe-Pins31532
Wer noch mehr I/O-Pins oder Speicher braucht, wird bei den AT-MEGA-Typen fündig, die es allerdings nur in besonderen Gehäuseformen gibt.

Die eingebauten Hardwarekomponenten dieser drei vorgestellten Typen sind in der Tabelle 2 aufgelistet.
Tabelle 2: Die Hardwarekomponenten ausgewählter AVR-Typen
AVR-TypAT90S2323AT90S2313AT90S8515
8-Bit-Timer111
16-Bit-Timer/Counter-11
Async. (UART)-11
Pulsweitenmodulator (PWM)-12
Analogvergleicher(AnaComp)-11
Wer synchrone serielle Schnittstellen, Analog-Digital-Wandler oder Real-Time-Clocks braucht, wird bei den anderen Typen der Serie fündig.

Multifunktionale Pins

Typisch ist, dass die Ein- und Ausgabepins verschiedene Aufgaben übernehmen können, je nachdem welche Hardwarekomponenten per Software aktiviert werden. Sie können einfache Ein- oder Ausgabe-Ports bilden. Wenn sie als Eingabepins geschaltet sind, kann ein Pull-Up-Widerstand softwaremäßig zugeschaltet werden. über einige Ein- und Ausgabepins erfolgt die serielle Programmierung des Programm-Flash-Speichers (SCK, MOSI und MISO genannt), wenn der Reset-Pin aktiviert ist. Die Doppelfunktion der Pins ist in Abbildung 2 ( Anzeige als PDF-Dokument) am Beispiel des 20-poligen 2313 gezeigt.

2313 mit Interna

Pins, die für die interne Funktionalität benötigt werden, stehen als allgemeine Ein- und Ausgabe-Pins nicht mehr zur Verfügung. Die Planung der Beschaltung des AVR sollte daher von Anfang an diese benötigten Funktionen berücksichtigen. Zur Not muss der nächstgrößere Typ herhalten, wenn die Funktionalität oder die Zahl der I/O-Pins nicht mehr ausreicht.

Quellen

Wer Schaltungen entwirft (und die Software dafür schreiben will), braucht dringend die Datenblätter der Typen vom Hersteller. Dort ist genau beschrieben, wie die Pins zu beschalten sind, welche Timinganforderungen zu beachten sind, usw. Die Datenblätter für alle Typen kriegt man von der Internetseite des Herstellers (http://www.atmel.com, dort 8-Bit-RISC AVR auswählen).

©2002 by Gerhard Schmidt, DG4FAC
Webseite mit den Beiträgen: http://www.avr-asm-tutorial.net/cq-dl/index.html
Benutzung, Kopie und Weiterverbreitung der Seiten zulässig, solange die Copyright-Angaben im Text bleiben.