Atmel AVR
Logo der AVR-Familie
ATmega, ATXmega und ATtiny Mikrocontroller

Atmel AVR ist eine 8-Bit-Mikrocontroller-Familie des US-amerikanischen Herstellers Atmel. Die Controller dieser Familie sind wegen ihres einfachen Aufbaus und ihrer leichten Programmierbarkeit auch bei Hobby-Anwendern weit verbreitet.

Die Typen unterteilen sich in die Gruppen

  • ATmega: große AVR-Controller mit bis zu 256 KiB Flash-Speicher in 28- bis 100-poligen Gehäusen und mit integriertem Hardware-Multiplizierer.
  • ATtiny: kleinere AVR-Controller mit bis zu 16 KiB Flash-Speicher in 6- bis 20-poligen Gehäusen.
  • AT90USB: ATmega mit integriertem USB-Controller
  • AT90CAN: ATmega mit CAN-Controller
  • Sondertypen: einige Spezialmodelle, z. B. zur Ansteuerung von Akku-Ladegeräten, LC-Displays und für Motoren- oder Lichtsteuerungen.
  • AT90S: veraltete Typen, die „klassischen“ AVRs

Unter dem Namen AVR32 hat Atmel eine 32-Bit-RISC-Architektur mit DSP- und SIMD-Funktionalität entwickelt. Trotz der Namensähnlichkeit und des ähnlichen Logos weisen die beiden Architekturen kaum Gemeinsamkeiten auf.

Inhaltsverzeichnis

Programmierschnittstelle

Der AVRISP mkII-ISP-Programmer von Atmel

Fast alle Typen können per SPI über einen ISP (AVR ISP, In-System Programmer) programmiert werden, die über simple Programmieradapter Anschluss an die serielle, parallele oder USB-Schnittstelle eines PCs findet. Die Besonderheit liegt in der Möglichkeit, den Prozessor nicht aus der Zielschaltung herausnehmen zu müssen, um ihn mit der extern entwickelten Software zu programmieren. Somit lassen sich Anpassungen (z. B. Schaltzyklen oder Auslöseschwellen) vor Ort im laufenden Betrieb vornehmen.

Neuere Typen besitzen zudem eine Debug-Schnittstelle, die bei kleineren Controllern (ATtiny-Serie sowie 32-Pin-ATmega-Familie) neben den Versorgungsleitungen nur die Resetleitung benötigt (debugWire). Bei größeren Controllern der ATmega Familie kann dagegen leichter auf mehrere Pins (6) verzichtet werden, sodass hier eine JTAG-Schnittstelle zum Einsatz kommt. Hiermit lässt sich ein in den Mikrocontroller heruntergeladenes Programm mittels Zusatzhardware/-software nach dem IEEE-Standard 1149.1 in einer konkreten Hardwareumgebung untersuchen und von eventuellen Programmierfehlern befreien (debuggen).

RISC-Architektur

Ein Vorteil gegenüber anderen Mikroprozessor-Familien ist, dass sich dank der RISC-Architektur die meisten Register-Befehle innerhalb eines Systemtakts abarbeiten lassen, ausgenommen Sprung- und Multiplikationsbefehle sowie Zugriffe auf das Speicherinterface (u. a. RAM und I/O-Ports). Somit ist diese Architektur sehr schnell im Vergleich zu anderen.

Durch das auf Hochsprachen wie C ausgelegte Hardware-Design können auch Compiler sehr effizienten Code erzeugen; der Entwickler braucht sich nicht zwingend auf Assembler-Ebene zu begeben.

Allerdings wird der binäre Programmcode, wie bei vielen anderen Mikroprozessoren mit integriertem Programmspeicher auch, direkt aus dem Flash-Speicher heraus ausgeführt. Dadurch kommt es vor allem bei den Chipversionen für geringe Versorgungsspannungen von unter 3,3 V zu vergleichsweise geringen maximalen Taktraten des Prozessorkerns von meist unter 10 MHz. Da die Frequenz fast 1:1 in MIPS verwertet wird, entspricht dies maximal 10 MIPS. Es besteht keine Möglichkeit, den internen Prozessorkern mithilfe einer PLL mit einer gegenüber dem externen Takt erhöhten Taktrate zu betreiben. Diese Einschränkung ist durch die Integration der Flash-Speichertechnik bedingt. Zum Vergleich: Mikroprozessorarchitekturen wie der Blackfin, welche den Programmcode vor der Ausführung von dem nichtflüchtigen Flash-Speicher erst in einen internen SRAM-Speicher kopieren, verfügen über Taktraten des Prozessorkerns von über 500 MHz bei Versorgungspannungen des CPU-Kerns von unter 2 V bei in etwa gleich geringem Stromverbrauch.

Befehlssatz

Anzahl Opcodes der AVR-Familien
Modell Anzahl der Befehle
AT90S1200 52
AT90xxxx („Classic“) 62
ATtiny bis 123
ATmega 130–135
ATXMega ab 142

Im Gegensatz zu den PICmicro-Prozessoren wurde der AVR-Befehlssatz über alle Modelle – abgesehen vom AT90S1200 mit eingeschränktem Befehlssatz und vom ATmega mit leicht erweitertem Befehlssatz – kompatibel gehalten. Kleinere Unterschiede im Befehlsumfang gibt es jedoch aufgrund unterschiedlicher Flashgröße, Bootloader-Support, Multiplikationsbefehlen (ab Mega), der Hardwareausstattung etc.

Die AVR-Prozessoren sind für die effiziente Ausführung von kompiliertem C-Code gestaltet worden. Noch vor Fertigstellung des AVR-Kerns wurde mit der Entwicklung eines C-Compilers begonnen, um dadurch Optimierungspotential zu erkennen[1], etwa:

  • Die Instruktion „Addition mit direktem Parameter“ (add immediate) wurde entfernt, denn anstatt dieser Instruktion kann ebenso gut der Befehl „Subtrahiere direkt“ (subtract immediate) mit dem Komplement verwendet werden.
  • Der dadurch auf dem Die frei werdende Platz wurde dann zum Realisieren einer „Addition mit direktem 16-Bit-Parameter“ (add immediate word) genutzt.
  • Ein Befehl wie „Vergleich mit Carry-Flag“ (compare with carry) wurde eingeführt, um einen effizienten Vergleich von 16- und 32-Bit-Werten – wie er in Hochsprachen an der Tagesordnung ist – zu ermöglichen.
  • Anstatt zwei Adressregistern wurden drei Adressregister vorgesehen.
  • Auf ein anfangs geplantes segmentiertes Speicher-Layout wurde komplett verzichtet, weil dieses nur schwer von Compilern zu handhaben ist.

Speicherarchitektur

Das Speicher-Management folgt den Richtlinien der Harvard-Architektur. Es gibt also getrennte Adressräume für den Flash-Speicher, das RAM und das EEPROM. Im Gegensatz zu einfacheren Mikrocontrollern besitzen die AVRs 32 Register, mit welchen direkt Operationen ausgeführt werden können, allerdings verfügen nur die unteren 16 Register über den vollen Leistungsumfang. Einige neue Tiny-Typen (ATtiny4, ATtiny5, ATtiny9 und ATtiny10) besitzen nur 16 Register.

AVR XMEGA

ATXmega128A1

Diese Serie wurde Ende Februar 2008 auf den Herstellerseiten angekündigt[2]. Es handelt sich dabei um Mikrocontroller mit erweiterten Peripherien und Funktionen, die jedoch allesamt auf der 8-Bit-AVR-Architektur basieren.

Im einzelnen handelt es sich bei den Erweiterungen unter anderem um:

  • 4 DMA-Kanäle
  • Hardware-Kryptographie (AES und DES)
  • Taktraten bis 32 MHz
  • Programmspeicher von bis zu 384 KiB
  • Die ADCs haben nun eine Auflösung von 12 Bit
  • DACs sind hinzugekommen
  • Jedem Pin ist ein externer Interrupt zuweisbar
  • Eight-channel Event-System

Einige der Peripherien wurden verbessert und sind jetzt meist mehrfach vorhanden (beispielsweise SPI, TWI und USART). Außerdem beinhaltet die XMEGA-Serie ein überarbeitetes Interrupt-System. Dieses zeichnet sich durch ein sogenanntes Event-System aus, welches es erlaubt, die eintreffenden Interrupts verschiedener Peripherieeinheiten unmittelbar an ebensolche weiterzuleiten. Diese Weiterleitung geschieht ohne Inanspruchnahme von zusätzlicher Prozessorrechenzeit (Hardware-Routing).

Laut Atmel sind die Bausteine der XMEGA-Serie hinsichtlich des Befehlssatzes kompatibel mit den bisher existierenden AVR-Bausteinen. Innerhalb der XMEGA-Serie selbst sind alle zu den jeweiligen Gehäuseformen pin-, quelltext- und binärcodekompatibel, jedoch wurde die Versorgungsspannung auf 3,3 V abgesenkt (max. 3,6 V), so dass ein Austausch in einem bestehenden Design nur möglich ist, wenn hier diese Spannung auch zur Verfügung steht und die anderen Komponenten auch mit 3,3V Portspannung arbeiten können.

AVR UC3

2011 setzte sich die Entwicklung mit der UC3-Serie fort. Es handelt sich um 32 bit-Controller mit bis zu 123 Ein-/Ausgangsanschlüssen und bis zu 512 KiB Flash-Speicher mit folgenden Untergruppen:

C-Serie

Dies sind die leistungsfähigsten Controller der AVR-Familie. Sie bieten u.a.

  • Taktraten bis zu 66 MHz
  • Eine Floating Point Unit (FPU)
  • Speicherschutz
  • Ethernet-Unterstützung
  • Pulsweitenmodulation mit der Möglichkeit, Totzeiten vorzusehen
  • 12-bit ADC mit 16 Kanälen und 2 Millionen Abtastungen pro Sekunde (Msps)
  • 12 bit DAC mit 4 Kanälen und 1,5 Millionen Abtastungen pro Sekunde

L-Serie

Diese Controller sind auf minimalen Stromverbrauch optimiert, um insbesondere in Mobilgeräten zum Einsatz zu kommen. Sie verfügen über eine direkte Schnittstelle zu kapazitiven Sensoren wie Touchscreens sowie integrierte Temperatursensoren und können mit Spannungen bis herunter auf 1,62 V betrieben werden.

A0/A1-Serie

Controller dieser Untergruppe sind für hohen Datendurchsatz optimiert, haben USB- und Ethernet-Schnittstellen sowie SRAM-Bereiche von 32 oder 64 KiB.

A3/A4-Serie

Diese Controller verfügen zusätzlich über eine Schnittstelle zu SD-Karten sowie optional über ein AES-Verschlüsselungsmodul. Der SRAM-Speicher ist bis zu 128 KiB groß.

B-Serie

Controller der B-Serie sind in besonders kleinen Gehäusen eingebaut und eignen sich für Anwendungen auf engstem Raum. Sie sind in vielen Fällen eine leistungsfähigere Alternative zu den ATtiny.

AVR-kompatible Mikrocontroller und Nachbauten

  • Integral bzw. die Belmicrosystems-Gruppe aus Weißrussland bietet die Classic-AVR-Nachbauten IN90S2313DW, IN90LS2323N, IN90S2323N, IN90S2333DW und IN90LS2333DW an, welche zu den entsprechenden AVR-Typen des Unternehmens Atmel als pinkompatibel beworben werden. Sogar Teile des englischen Datenblatts wurden unverändert übernommen.

Software

Weiterhin existiert eine Vielzahl freier Entwicklungswerkzeuge, wie z. B. die für AVR-Cross-Compiling portierten GNU-Tools WinAVR bzw. avr-gcc, avr-libc.

Schließlich – für Mikrocontroller eher unüblich – gibt es u. a. den (proprietären) BASIC-Compiler BASCOM.

Allgemeine Übersicht über AVR-Compiler und Hersteller (unvollständig)
Compiler Hersteller Lizenz Plattform Besonderheiten
avr-as GNU GPL Win32, Linux, Mac OS kostenlos, quelloffen
avr-gcc GNU GPL Win32, Linux, Mac OS kostenlos, quelloffen
AVR-Ada GNU GPL Win32, Linux kostenlos, quelloffen
AVR Studio Atmel proprietär Win32 kostenlos
GNAT Pro AdaCore GMGPL Win32, Linux nur mit professionellem Support-Vertrag
KontrollerLab cadManiac.org GPL Linux Entwicklungsumgebung, kostenlos, quelloffen
AVRco E-LAB Computers proprietär Win32 Demo-Version verfügbar, ATMega8/88-Standardversion kostenlos erhältlich
BASCOM MCS Electronics proprietär Win32 Basic-Compiler. Die kostenlose Demo-Version kompiliert bis 4 KiB Binärcode.
mBasic nettypes.de proprietär Win32 kostenlos zur privaten Verwendung, spez. Hardware erforderlich
NanoVM Till Harbaum GPL Win32, Linux kostenlos, quelloffen
amforth Matthias Trute GPL Win32, Linux kostenlos, quelloffen
Embedded Pascal for the AVR  ? Shareware Win32
Python-On-Chip Dean W. Hall et al. GPL Win32, Linux, Mac OS kostenlos, quelloffen
IAR Embedded Workbench for AVR IAR proprietär Win32 MISRA support, hohe Codequalität, teuer (Eine Preisanfrage ergibt 3000,- € Anschaffungspreis), Auf 4K limitierte Kickoff Version kostenlos, Direkte Zusammenarbeit mit ATMEL
myAVR Workpad myAVR proprietär Win32 Demo-Version verfügbar
SiSy AVR Laser&Co Solutions proprietär Win32 Programmablaufplan, UML-Klassendiagramm Statemachine
Algorithm Builder Gennady Gromov proprietär Win32 Demo-Version verfügbar, graphisch?
AVRA Jon A. Haugum, Tobias Weber GPL Plattformunabhängig kostenlos, quelloffen, AVR Studio kompatibel
CodeVisionAVR HP InfoTech proprietär Win32 Demo-Version verfügbar
MikroPascal for AVR Mikroelektronika proprietär Win32 2K Demo-Version verfügbar
MikroC PRO for AVR Mikroelektronika proprietär Win32
MikroBasic PRO for AVR Mikroelektronika proprietär Win32
PasAVR Vogelaar Electronics proprietär Win32 Cross-Compiler für Delphi, wird mit der DelphiStamp des Herstellers ausgeliefert
Flowcode for AVR Matrix Multimedia proprietär Win32 Grafische Programmiersprache anhand von Flussdiagrammen. Kostenlose Demo-Version mit begrenztem Code-Umfang.
ICCV8 ImageCraft proprietär Win32 Demo-Version verfügbar, CodeBlocks IDE, Application Builder
Unterstützte Sprache(n)
Hersteller Compiler Ada Assembler BASIC C C++ Pascal andere
GNU avr-as Ja Ja
GNU avr-gcc Ja Ja Ja Ja
GNU AVR-Ada Ja Ja
Atmel AVR Studio Ja Ja Ja Ja Ja Ja
cadManiac.org KontrollerLab Ja Ja Ja Ja Ja Ja
Conrad Electronic C-Control Pro [1] Ja Ja Ja Ja Ja Ja
E-LAB Computers AVRco Ja Ja
AdaCore GNAT Pro Ja Ja Ja Ja Ja Ja -
MCS Electronics BASCOM Ja Ja(Dialekt)
nettypes.de mBasic Ja Ja
Till Harbaum NanoVM Java
Matthias Trute amforth Forth
? Embedded Pascal for the AVR Ja Ja
Dean W. Hall et al. PyMite Python
IAR IAR Embedded Workbench for AVR Ja Ja Ja Ja 4K limitierte Kick-Off Version kostenfrei, Viele Application Notes von ATMEL für IAR vorhanden
myAVR myAVR Workpad Ja Ja Ja Ja Ja Ja
myAVR SiSy AVR Ja Ja Ja Ja Ja Ja zusätzlich Codegenerierung aus: Programmablaufplan(ASM), Struktogramm(C), UML-Klassendiagramm(C++), UML-Zustandsdiagramm(C++)
Gennady Gromov Algorithm Builder Ja Ja Codegenerierung aus Flussdarstellung
Jon A. Haugum, Tobias Weber AVRA Ja Ja erweiterte Makrosprache?
HP InfoTech CodeVisionAVR Ja Ja
Mikroelektronika MikroPascal for AVR Ja Ja
Mikroelektronika MikroBasic PRO for AVR Ja Ja -
Mikroelektronika MikroC PRO for AVR Ja Ja -
Vogelaar Electronics PasAVR Ja Ja Cross-Compiler für Delphi
Matrix Multimedia Flowcode for AVR - Flussdiagramme
ImageCraft ICCV8 Ja Ja Ja Ja

Weitere Entwicklungswerkzeuge

  • AVR IO Designer - ein kostenloses IO-Register-Konfigurationswerkzeug für ATTiny, AT90 und ATmega, ähnlich dem in CodeVision enthaltenen CodeWizard. (Kein Compiler, unter "Weblinks" aber offenbar unerwünscht, daher nun hier mit gelistet)

Entwicklungs-Boards

Zur einfachen Entwicklung und Programmierung einer Schaltung mit einem AVR benötigt man zwar grundsätzlich nur wenige Bauteile. Dennoch schätzen besonders Anfänger sogenannte Entwicklungs- oder auch Evaluation-Boards (Entwicklungsplatinen), die neben dem AVR auch Peripherie (LEDs, Schalter etc.) bieten. Atmel selbst bietet entsprechende offizielle Boards an (STK200, STK500, STK600), die universell für mehrere Typen einsetzbar sind. Zudem existieren für spezielle Controller eigene Boards, etwa das „Butterfly“. Verschiedene Anbieter stellen günstige Alternativen bereit.

In den letzten Jahren hat insbesondere die auf dem AVR aufbauende quelloffene Arduino-Plattform großen Zulauf erhalten, da diese speziell Einsteigern und fachfremden Personen wie Künstlern und Designern die Verwendung von Mikrocontrollern ohne tiefgreifende technische Kenntnisse ermöglicht.

Deutschsprachige Literatur

  • Günter Schmitt: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie. 4. Auflage, Oldenbourg-Verlag 2008. Einführung in die AVR-Architektur (Tiny und MEGA), basiert auf Assembler und C
  • Wolfgang Trampert: AVR-RISC Mikrocontroller. Franzis-Verlag 2003. Hardware- und Assembler-orientiert, nur Classic-AVRs
  • Walter, Roland: AVR-Mikrocontroller-Lehrbuch. Denkholz-Verlag 2009, ISBN 978-3-9811894-4-5 (3. Auflage). Systematisches Buch, basiert auf ATmega8/BASCOM, für Lehre geeignet (hier Vorschau)
  • Safinaz und Francesco Volpe: AVR-Mikrocontroller-Praxis. Elektor-Verlag 2001. Hauptsächlich Befehlssatz des AVR-Assemblers in deutsch
  • Claus Kühnel: Programmieren der AVR RISC Microcontroller mit BASCOM-AVR. Skript-Verlag Kühnel 2004. Systematisches Buch, Schwerpunkt auf BASCOM, jedoch auch mit Assembler-Routinen
  • Peter Urbanek: Embedded Systems. HSU-Verlag 2007. Einführung in die AVR-Architektur mit Beispielen in C auf Basis des ATmega16. Anschluss eines externen CAN-Controllers mit Beispielen.
  • Roman Mittermayr: AVR-RISC: Embedded Software selbst entwickeln. Franzis-Verlag 2008. Einführung in Assembler für ATmega/ATtiny anhand verschiedener Projekte; wichtigste Grundlagen der C-Programmierung
  • Florian Schäffer: AVR - Hardware und C-Programmierung in der Praxis. Elektor-Verlag 2008, ISBN 978-3-89576-200-0.
  • Claus Kühnel: Programmieren der AVR RISC Microcontroller mit BASCOM-AVR: 3. bearbeitete und erweiterte Auflage Skript Verlag Kühnel 2010 ISBN 978-3-907857-14-4
  • Dr. Günter Spanner: AVR-Mikrocontroller in C programmieren: 1. Auflage FRANZIS-Verlag Nov. 2010 ISBN 978-3-645-65019-9

Weblinks

 Commons: Atmel AVR – Sammlung von Bildern, Videos und Audiodateien
  • ATMEL - AVR Produktseite (en)
  • www.mikrocontroller.net - AVR Funktionsweise, Literatur-, Software- und Projektverzeichnis
  • Atxmega Tutorial - Atxmega Tutorial
  • AVR IO Designer - ein kostenloses IO-Register-Konfigurationswerkzeug für ATTiny, AT90 und ATmega, ähnlich dem in CodeVision enthaltenen CodeWizard.

Einzelnachweise

  1. http://www.atmel.com/dyn/resources/prod_documents/COMPILER.pdf
  2. http://www.atmel.com/products/AVR/default_xmega.asp

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Atmel AVR — AVR logo. Atmel AVR ATmega8 in 28 pin DIP . The AVR is a …   Wikipedia

  • Atmel AVR — dans un boîtier DIP AVR est le terme utilisé par Atmel pour désigner le cœur du processeur et la famille de microcontrôleurs les implémentant. Sommaire 1 Descri …   Wikipédia en Français

  • Atmel AVR — …   Википедия

  • Atmel AVR instruction set — Here is the basic Atmel AVR instruction set.Arithmetic operations work on registers R0 R31 but not directly on RAM and take one clock cycle, except for multiplication and word wide addition (ADIW and SBIW) which take two cycles.RAM and I/O space… …   Wikipedia

  • AVR Studio — AVR Studio  интегрированная среда разработки (IDE) для разработки 8 ми и 32 х битных AVR приложений от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7. AVR Studio содержит ассемблер и симулятор, позволяющий… …   Википедия

  • Atmel — Corporation Тип Публичная ( …   Википедия

  • Atmel — Saltar a navegación, búsqueda Microcontrolador Atmel. Atmel es una compañía de semiconductores, fundada en 1984. Su línea de productos incluye microcontroladores (incluyendo derivados del 8051, el AT91SAM basados en ARM, y sus arquitecturas… …   Wikipedia Español

  • AVR — may refer to: * Avon Valley Railway, a heritage railway in the United Kingdom * Atmel AVR family of microprocessors * Assiniboine Valley Railway, a minimum gauge railway in Winnipeg, Canada * Audio/Video Receiver * Aortic valve replacement *… …   Wikipedia

  • AVR — Логотип AVR …   Википедия

  • AVR Butterfly — The AVR Butterfly [ [http://www.atmel.com/dyn/products/tools card.asp?tool id=3146 ATMEL AVR Butterfly Product Description] ] is a self contained, battery powered demonstration board running the ATMEL AVR ATmega169PV Microcontroller. The board… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”