AVR-Mikrocontroller (Atmel): Architektur, Merkmale & Geschichte
AVR-Mikrocontroller (Atmel): Architektur, Merkmale & Geschichte – Kompakte Übersicht zu Aufbau, Leistung, On‑Chip‑Flash und Entwicklungsgeschichte für Entwickler & Elektronikfans.
Die AVR-Mikrocontroller-Architektur wurde 1996 von Atmel (insbesondere dem norwegischen Team um Alf‑Egil Bogen und Vegard Wollan) eingeführt. Technisch handelt es sich um eine RISC-Architektur mit modifiziertem Harvard‑Speicheraufbau: Programmspeicher und Datenspeicher sind physisch getrennt, sodass gleichzeitiger Zugriff möglich ist und Instruktionen schneller ausgeführt werden können. Eine der frühen Innovationen war die Verwendung von On-Chip-Flash-Speicher zur Programmspeicherung statt einmalig programmierbarer ROM‑Typen oder der damals häufig verwendeten EPROM- bzw. EEPROM-Lösungen. Dadurch wurden In‑Circuit‑Programmierung (ISP), einfache Firmware‑Updates und Bootloader möglich.
Entwicklung und Name
Der Name „AVR“ wird oft mit den Entwicklern erklärt: A von Alf (Alf‑Egil Bogen), V von Vegard (Wollan) und R für RISC. Diese Erklärung ist weit verbreitet und vom Hersteller in verschiedenen Zusammenhängen bestätigt worden. Die Architektur entstand, um eine leistungsfähigere, energieeffiziente und leicht programmierbare 8‑Bit‑Mikrocontroller‑Familie bereitzustellen.
Architekturmerkmale
- RISC‑Design: Viele einfache, orthogonale Befehle mit kurzer Ausführungszeit.
- Harvard‑Architektur: Separater Programmspeicher (Flash) und Datenspeicher (SRAM/EEPROM), wodurch Instruktionsfetch und Datenzugriff parallelisiert werden können.
- Pipeline: Üblicherweise zwei‑stufige Pipeline (Fetch + Execute), die für einen durchgängigen Strom an Instruktionen sorgt und damit hohe Effizienz erreicht.
- On‑Chip‑Peripherie: Timer/Counter, PWM, ADC, DAC (bei einigen Serien), serielle Schnittstellen (USART, SPI, I²C/TWI), Watchdog, DMA (bei XMEGA), etc.
- Stromsparmodi: Mehrere Schlafzustände zur Reduktion des Verbrauchs in batteriebetriebenen Anwendungen.
Register‑Dateipfad und ALU
Der AVR‑Kern stellt 32 allgemeine 8‑Bit‑Register bereit, die als Registerdatei organisiert sind und direkt mit der ALU verbunden sind. Viele Instruktionen können zwei Registeroperanden gleichzeitig ansprechen und in einem einzigen Taktzyklus ausgeführt werden. Diese direkte Verbindung reduziert Speicherzugriffe und erhöht die Effizienz der Verarbeitung.
Instruktionsdurchsatz und Vergleich zum MCS‑51 (8051)
Die ältere MCS‑51‑(8051)‑Architektur verwendet einen Maschinenzyklus von typischerweise 12 Taktzyklen; viele Befehle benötigen genau diesen Maschinenzyklus. AVR‑Mikrocontroller können die meisten Befehle in einem einzigen Maschinenzyklus ausführen, wobei ein solcher Maschinenzyklus bei AVR nur einen Taktzyklus umfasst. In einfachen Fällen führt dies theoretisch zu einem bis zu 12‑mal höheren Instruktionsdurchsatz pro Takt im Vergleich zur klassischen MCS‑51‑Implementierung. Praktisch hängt der Geschwindigkeitsvorteil jedoch von Befehlstyp, Taktfrequenz und Peripheriezugriffen ab.
Speicherorganisation und Programmierung
Typische AVR‑Modelle bieten:
- On‑Chip‑Flash für das Programm (inhaltlich wiederbeschreibbar, unterstützt ISP und Bootloader).
- SRAM für Laufzeitdaten.
- EEPROM für nicht‑flüchtige Datenspeicherung auf Byte‑Basis (bei vielen, aber nicht allen Modellen).
Die Möglichkeit, Flash im System zu überschreiben, erleichtert Updates und Entwicklung deutlich gegenüber ROM/EPROM‑basierten Lösungen. Bei vielen AVRs gibt es außerdem Schutzmechanismen wie Lock‑Bits, um das Auslesen des Flash‑Inhalts zu verhindern.
Varianten und Ökosystem
Atmel (heute Microchip) hat die AVR‑Familie in mehrere Serien unterteilt, z. B.:
- ATtiny: Kleine, kompakte Geräte mit geringem Pin‑ und Feature‑Umfang.
- ATmega: Leistungsfähigere 8‑Bit‑MCUs mit umfangreicher Peripherie (bekannt aus Arduino‑Boards wie dem ATmega328).
- XMEGA: Erweiterte Funktionen, höhere Performance und DMA‑Unterstützung.
- AVR32: Eine separate 32‑Bit‑RISC‑Architektur (nicht direkt kompatibel zu den 8‑Bit‑AVRs).
Das umfangreiche Tool‑Ökosystem (Compiler, Debugger, Bootloader, Arduino‑Bibliotheken) hat die Verbreitung der AVR‑Reihe insbesondere in der Maker‑ und Embedded‑Community stark gefördert.
Bedeutung und Einsatzgebiete
AVR‑MCUs werden in vielen Bereiche eingesetzt: Embedded‑Prototyping, Industrie‑Steuerungen, Konsumelektronik, Sensorik, Lehre und Hobby‑Projekte. Ihre Einfachheit, niedriger Stromverbrauch, guter Funktionsumfang und breite Verfügbarkeit machen sie besonders attraktiv für Einsteiger und erfahrene Entwickler.
Zusammenfassend sind AVR‑Mikrocontroller eine effiziente, weit verbreitete 8‑Bit‑RISC‑Familie mit On‑Chip‑Flash, schneller Befehlsausführung, umfangreicher Peripherie und einem starken Ökosystem, das ihre Nutzung in zahlreichen Anwendungen erleichtert.

Atmel AVR ATmega8 in 28-poligem DIP.
Einfache Familien
tinyAVR
- 0,5-8 kB Programmspeicher
- bis zu 0,5 kB SRAM
- bis zu 0,5 kB EEPROM
- bis zu 20 MHz
- 6-32-Pin-Gehäuse
megaAVR
- 4-256 kB Programmspeicher
- 0,5-16kB SRAM
- 0,5-4 kB EEPROM
- bis zu 20 MHz
- 20-100-Pin-Gehäuse
XMEGA
- 16-384kB Programmspeicher
- 2-32 kB SRAM
- externe Busschnittstelle für bis zu 16M Bytes SRAM von SDRAM
- 1-4 kB EEPROM
- bis zu 32 MHz
- 44-100-Pin-Gehäuse
Merkmale
Jeder AVR hat einige Ein-/Ausgabeports. Der Port hat bis zu 8 physikalische Pins auf seinem Gehäuse. Jeder Pin kann als Ein- oder Ausgang konfiguriert werden. Wenn ein Pin als Eingang verwendet wird, kann er über das Register PORTx eingebaute Pull-Up-Widerstände einschalten. Wenn ein Pin als Ausgang konfiguriert ist, kann er bis zu 40mA Last pro Pin und maximal 100mA für alle Pins am Port verarbeiten.
A/D-Wandler
- 10-Bit (tinyAVR, megaAVR) mit Multiplex bis zu 8 Kanälen
- 12-Bit (XMEGA) mit Multiplex bis zu 16 Kanälen
Zeitgeber/Zähler (8-Bit oder 16-Bit)
- Benutzer können es als PWM, Zähler oder Timer konfigurieren.
- Im einfachen PWM-Modus läuft das Zählregister ohne Stopp und wird mit einem anderen Register verglichen. Wenn das Zählregister höher als das zweite Register ist, wird Pin Ocx auf "1" gesetzt. In einer anderen Zeit wird Pin Ocx auf "0" gesetzt.
- Die Zähler haben eine externe Quelle wie einen Fotosensor und können die Anzahl der Personen zählen, die den Fotosensor passieren.
- Timer gibt Impulse in exakter Zeit. Er wird zur Programmierung von Uhrenanwendungen verwendet.
TWI - Zweidraht-Schnittstelle Diese verwendet das gleiche Protokoll wie I2C und kann als I2C-Schnittstelle verwendet werden
UART/USART Der UART kann für die RS232/RS485-Kommunikation verwendet werden.
SPI - Serielle Peripherieschnittstelle
- sehr schneller serieller Bus, der für den Datentransfer der Kommunikation mit Geräten verwendet wird
- Sie können Programme über diesen Bus in den/aus dem Programmspeicher oder EEPROM brennen/lesen
USI - Universelle serielle Schnittstelle
- für zwei- oder dreidrahtsynchrone Datenübertragung verwendet
JTAG
- Schnittstelle für Online-Debugging
D/A-Wandler
- 12-Bit (nur XMEGA) mit Multiplex bis zu 2 Kanälen
Verwandte Seiten
- Arduino
Fragen und Antworten
Q: Wann wurde die AVR-Mikrocontroller-Architektur entwickelt?
A: Die AVR-Mikrocontroller-Architektur wurde 1996 von Atmel entwickelt.
F: Auf welcher Architektur basiert der AVR-Mikrocontroller?
A: Der AVR-Mikrocontroller basiert auf der Harvard-Mikrocontroller-Architektur.
F: Was unterscheidet den AVR-Mikrocontroller von anderen Mikrocontrollern zur Zeit seiner Entwicklung?
A: Der AVR-Mikrocontroller verwendet einen On-Chip-Flash-Speicher zur Programmspeicherung, im Gegensatz zu einmalig programmierbarem ROM, EPROM oder EEPROM, die von anderen Mikrocontrollern zu dieser Zeit verwendet wurden.
F: Welche Bedeutung hat die Abkürzung AVR nach allgemeiner Auffassung?
A: Viele Menschen glauben, dass AVR für den Risc-Prozessor von Alf (Egil Bogen) und Vegard (Wollan) steht.
F: Welche Architektur hat der AVR-Mikrocontroller ersetzt?
A: Der AVR-Mikrocontroller hat die ältere MCS-51-Architektur ersetzt.
F: Wie viele Taktzyklen benötigt ein Maschinenzyklus des MCS-51?
A: Ein Maschinenzyklus des MCS-51 dauert 12 Taktzyklen.
F: Welchen Vorteil haben die AVR-Mikrocontroller gegenüber dem MCS-51 in Bezug auf die Leistung pro Taktzyklus?
A: Die Leistung pro Taktzyklus ist bei AVR-Mikrocontrollern 12 Mal höher.
Suche in der Enzyklopädie