Atmega32
ATtiny, ATmega und ATXmega 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 KB Flash-Speicher in 28- bis 100-poligen Gehäusen und mit integriertem Hardware-Multiplizierer.
  • ATtiny: kleinere AVR-Controller mit bis zu 8 KB Flash-Speicher in 8- 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 weisen die beiden Architekturen kaum Gemeinsamkeiten auf.

Inhaltsverzeichnis

Programmierschnittstelle

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 32pin 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 und man muss sich nicht zwingend auf Assembler-Ebene 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-Speichertechnologie bedingt. Zum Vergleich: Mikroprozessorarchitekturen wie der Blackfin, welche den Programmcode vor der Ausführung von dem nicht flü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

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, Multiplikationsbefehle 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.

AVR XMEGA

ATXmega128A1
Lückenhaft Abschnitt fehlen folgende wichtige Informationen: Entwicklung von 2008 bis heute fehlt

Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst.

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 KB
  • 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 (z. B. SPI, TWI, USART).


Ferner wurde das Interrupt-System überarbeitet; die Bausteine der neuen Serie verfügen über ein sogenanntes Event-System, welches es erlaubt, die eintreffenden Interrupts verschiedener Peripherieeinheiten unmittelbar an ebensolche weiterzuleiten, ohne dass dazu die Rechenzeit des Prozessors in Anspruch genommen werden muss (Hardware-Routing).

Laut Atmel sind die Bausteine der XMEGA-Serie hinsichtlich des Befehlssatzes absolut kompatibel mit den bisher existierenden AVR-Bausteinen. Innerhalb der XMEGA-Serie selbst sind alle zu den jeweiligen Gehäuseformen pin-, quelltext- und binärcodekompatibel. Leider wurde die Versorgungsspannung abgesenkt, so dass ein Austausch in einem bestehenden Design nur möglich ist, wenn diese bereits in dem abgesenkten Spannungsbereich (max. 3,6 V) arbeitet.

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 der Firma 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.

Des Weiteren – 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
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 Demo-Version verfügbar
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
PyMite 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
myAVR Workpad myAVR proprietär Win32 Demo-Version verfügbar
SiSy AVR Laser&Co Solutions proprietär Win32 Programmablaufplan, UML-Klassendiagramm
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
AVR-Chipbasic2 Jörg Wolfram GPL On Chip kostenlos, quelloffen
MikroPascal for AVR Mikroelektronika proprietär Win32 2K Demo-Version verfügbar
Unterstützte Sprache(n)
Hersteller Compiler Ada Assembler BASIC C C++ Pascal andere
GNU avr-as   Ja
GNU avr-gcc   Ja   Ja
GNU AVR-ADA   Ja
Atmel AVR Studio   Ja   Ja   Ja
cadManiac.org KontrollerLab   Ja   Ja   Ja
E-LAB Computers AVRco   Ja
MCS Electronics BASCOM   Ja(Dialekt)
nettypes.de mBasic   Ja
Till Harbaum NanoVM Java
Matthias Trute amforth Forth
? Embedded Pascal for the AVR   Ja
Dean W. Hall et al. PyMite Python
IAR IAR Embedded Workbench for AVR   Ja   Ja
myAVR myAVR Workpad   Ja   Ja
Gennady Gromov Algorithm Builder   Ja
Jon A. Haugum, Tobias Weber AVRA   Ja erweiterte Makrosprache?
HP InfoTech CodeVisionAVR   Ja
Jörg Wolfram AVR-Chipbasic2   Ja(Tiny-Basic)
Mikroelektronika MikroPascal for AVR   Ja

Deutschsprachige Literatur

  • Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie. Programmierung in Assembler und C - Schaltungen und Anwendungen von Günter Schmitt: Umfassende Einführung in dritter Auflage in die AVR Architektur (Tiny und MEGA), viele Beispiele in Assembler und C
  • AVR-RISC Mikrocontroller von Wolfgang Trampert: Hardware- und Assembler-orientiert, nur Classic-AVRs
  • AVR-Mikrocontroller-Lehrbuch von Roland Walter: Systematisches Buch, basiert auf ATmega8/BASCOM, für Lehre geeignet (hier Vorschau)
  • AVR-Mikrocontroller-Praxis von Safinaz und Francesco Volpe: Hauptsächlich Befehlssatz des AVR-Assemblers in deutsch
  • Programmieren der AVR RISC Microcontroller mit BASCOM von Claus Kühnel: Systematisches Buch, Schwerpunkt auf BASCOM, jedoch auch mit Assembler-Routinen
  • Embedded Systems von Peter Urbanek: Einführung in die AVR-Architektur mit Beispielen in C für viele I/O-Module auf Basis des ATmega16. Anschluss eines externen CAN-Controllers mit Beispielen zum Senden und Empfangen.
  • AVR-RISC: Embedded Software selbst entwickeln von Roman Mittermayr: Einführung in Assembler für die ATmega/ATtiny-Serie anhand verschiedener Projekte; wichtigste Grundlagen der C-Programmierung
  • Schäffer, Florian: AVR - Hardware und C-Programmierung in der Praxis. Elektor, 2008, ISBN 978-3-89576-200-0

Weblinks

Herstellerseite

  • ATMEL - AVR Produktseite (en)

Entwicklungsumgebungen

  • WinAVR - GNU C u. C++-Cross-Compiler, Windowsversion
  • CDK4AVR - GNU C u. C++-Cross-Compiler, Linuxversion
  • KontrollerLab - KDE basierte IDE (verwendet avr-gcc, uisp und avrdude)

Weiterführende Links

  • www.mikrocontroller.net - Alles über Atmel AVR, wie Funktionsweise, Programmierung, Tipps & Tricks
  • AVRfreaks - Community Webseite von Atmel mit sehr vielen Informationen zum AVR (en)
  • AVR TV - Podcasts rund um AVR und AVR32 produziert von Atmel (en)

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:

  • ECB ATmega32/644 — is a small (Open source hardware) SBC (Single board computer) based on the Atmel ATmega32 or Atmel ATmega644 AVR processor (20 MHz).It was designed through a cooperation between Ulrich Radig, Holger Buss, and Thomas Scherer with the initial… …   Wikipedia

  • Open source hardware — refers to computer and electronic hardware that is designed in the same fashion as free and open source software. Open source hardware is part of the open source culture that takes the open source ideas to fields other than software. An example… …   Wikipedia

  • C-control — Das Mikrocontrollermodul C Control wird vom Elektronikunternehmen Conrad Electronic produziert und vermarktet. Die seit 1994 produzierte Mikrocontrollerreihe wird heute in verschiedenen Variationen vertrieben. Neben einem auf einem Motorola (seit …   Deutsch Wikipedia

  • CONRAD-Control — Das Mikrocontrollermodul C Control wird vom Elektronikunternehmen Conrad Electronic produziert und vermarktet. Die seit 1994 produzierte Mikrocontrollerreihe wird heute in verschiedenen Variationen vertrieben. Neben einem auf einem Motorola (seit …   Deutsch Wikipedia

  • Conrad-Control — Das Mikrocontrollermodul C Control wird vom Elektronikunternehmen Conrad Electronic produziert und vermarktet. Die seit 1994 produzierte Mikrocontrollerreihe wird heute in verschiedenen Variationen vertrieben. Neben einem auf einem Motorola (seit …   Deutsch Wikipedia

  • Hardware libre — |añoacceso=2009 |autor= |enlaceautor= |idioma= }}</ref>]] Hardware libre de Bug Labs.[1] …   Wikipedia Español

  • Nokia 6610i — The 6610i with a black cover. The Nokia 6610i mobile telephone is an improved version of the Nokia 6610 with a built in digital camera, launched in 2004. The phone s chassis was taken from the Nokia 7250i, in order for the camera to work. The… …   Wikipedia

  • Rogue system — A rogue system is any system in a wireless network that has been placed by third parties in range of the wireless network in order to gather information about it, penetrate it or other malicious activities. [… …   Wikipedia

  • C-Control — Das Mikrocontrollermodul C Control wird vom Elektronikunternehmen Conrad Electronic produziert und vermarktet. Die seit 1994 produzierte Mikrocontrollerreihe wird heute in verschiedenen Variationen vertrieben. Neben einem auf einem Motorola (seit …   Deutsch Wikipedia

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

Share the article and excerpts

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