# Atmel AVR32

AVR32 ist eine proprietäre Prozessorarchitektur des US-amerikanischen Herstellers Atmel. Es handelt sich um eine 32-bit-RISC-Architektur mit DSP- und SIMD-Funktionalität sowie integrierter MMU.
Die AVR32-Architektur ist ähnlich wie Atmels 8-bit-RISC-Architektur AVR. Im Gegensatz zu den 8-Bit-AVR-Prozessoren bietet die AVR32-Architektur einen gemeinsamen Adressraum von Programm- und Datenspeicher, hat also keine Harvard-Architektur. Die Geschwindigkeitsnachteile der klassischen Von-Neumann-Architektur werden dadurch vermieden, dass kein gemeinsamer Daten- und Adressbuss verwendet wird, der zum Flaschenhals werden kann, sondern ein Koppelfeld, über das mehrere Einheiten gleichzeitig Daten übertragen können.

## Architektur

Die Atmel-32-Bit-MCU-/DSP-RISC-Architektur zeichnet sich insbesondere durch hohen Durchsatz bei niedriger Leistungsaufnahme aus, was bei tragbaren, batteriebetriebenen Systemen zwingende Voraussetzung für Entwickler und Anwender ist.
Als erstes wurde der Mikroprozessor AT32AP7000 sowie weitere AP700x-Derivate vorgestellt, die mit maximal 150 MHz betrieben werden können. Die AP7000-Derivate besitzen nur noch einige wenige 10 KByte an internem SRAM-Speicher und sie benötigen externen Speicher, der den Programmcode bereithält. Sie verfügen zu diesem Zweck über eine umfangreiche externe Speicherschnittstelle, die auch den Anschluss von NAND-Flash, SDRAMs und sogar Speicherkarten direkt erlaubt.
Außerdem wurde 2007 die AVR32-UC3-Produktfamilie vorgestellt, die sich von der AP7000-Familie insbesondere durch den internen Programmspeicher (Flash) unterscheidet. Es gibt Varianten mit internem Ethernet Controller sowie mit USB-Controllern. Sie verfügen über bis zu 512 kB internem Flash sowie bis zu 64 kB internem Arbeitsspeicher. Ihre maximale Taktfrequenz liegt bei 60 bis 66 MHz.
Die Entwickler des AVR32-RISC-Prozessors achteten darauf, mehr Daten mit weniger Taktzyklen zu verarbeiten und somit die gesamte Stromaufnahme zu optimieren und zu reduzieren. JTAG-Debug-Schnittstelle und OCD-System (On-Chip-Debug-System) bilden ein effizientes System zur Programmierung und Fehlersuche. Daten- und Befehlscache beschleunigen zusätzlich das System. Die MMU gestattet die Portierung eines Betriebssystems, wie z. B. NetBSD / Embedded Linux / Embedded Real-Time Linux. Ein „Tightly coupled Bus“ bildet eine schnelle Anbindung an den Pixel-Koprozessor. Der Kern des AVR32 erreicht einen höheren Datendurchsatz, indem er nicht produktive Prozessortakte möglichst vermeidet.
Mit der Verfügbarkeit des AT32AP7000, welcher als „Vollausbau“ bezeichnet werden kann, ist es möglich, sämtliche Ausbaustufen dieser Familie zu entwickeln und zu evaluieren.

## 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 ("QTouch") wie Touchscreens sowie integrierte Temperatursensoren und der Kern kann 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.

### D-Serie

Werden als Einstiegs-Mikrocontroller beworben, die u. a. die I2S (Inter-IC-Sound, speziell für schnelle DA-Wandler), Full-Speed USB, QTouch usw. besitzen.

### Audio-Serie

Diese Controller sind speziell auf den Betrieb der Atmel AUDIO-IPs optimiert.

## Entwicklungstools

EVK1100
Das EVK1100 ist ein Evaluierungs- und Entwicklungswerkzeug für den AVR32 AT32UC3A-Mikrocontroller.
Hauptmerkmale: unterstützt den AT32UC3A Ethernet port Sensoren: Licht, Temperatur, Potentiometer 4x20 Blue LCD (PWM Adjustable backlight) Schnittstelle für JTAG, Nexus, USART, USB 2.0, TWI, SPI SD und MMC-Kartenleser Die AVR32 AT32UC3-Software-Bibliothek beinhaltet Treiber, Softwareservice und Demo-Anwendungen. Jedes Softwaremodul beinhaltet den kompletten Source Code, Beispiele, HTML-Dokumentation und Ready-to-use-Projekte für den IAR EWAVR32 und GNU-GCC-Compiler.
EVK1101
Das EVK1101 ist Evaluierungs- und Entwicklungswerkzeug für den AVR32 AT32UC3B-Mikrocontroller.
Hauptmerkmale: unterstützt AT32UC3B Sensoren: Licht, Temperatur Schnittstelle für JTAG, Nexus, USART, USB 2.0, TWI, SPI SD- und MMC-Kartenleser
EVK1104
Das AVR32 EVK1104 ist das Evaluation Kit für den AT32UC3A3256, welcher sich als ein AVR32-Controller mit sehr vielen Kommunikationsschnittstellen wie z. B. high-speed USB inkl. ON-The-Go-Funktionalität auszeichnet.
Eigenschaften
AT32UC3A3256 LCD-TFT-Display SDRAM-Speicher Quantum capacitive Touch System SD-Kartenslot USB HS OTG connector
EVK1105
Das AVR32 EVK1105 ist ein Evaluation Kit für den AT32UC3A0512, welcher die Leistungsfähigkeit der AVR32-Controller in puncto HiFi-Audio-Decoding und -Streaming zeigt.
Das Kit beinhaltet die Referenzhardware und die Software für eine Generic-MP3-Player-Docking-Station.
Reference Design für Audioplattform AT32UC3A0512 LCD-TFT-Display Quantum capacitive Touch System SD-Kartenslot USB FS OTG connector Fast Ethernet Connector

## AVR32 und Linux

Ab Kernelversion 2.6.19 unterstützt der Linuxkernel erstmals Atmels AVR32-Architektur direkt. Atmel hat die gcc 4.x als primäre Open-Source-Werkzeugkette unter Linux an die AVR32-Architektur angepasst.
In Kooperation mit Atmel Norwegen und der Berliner Firma ExactCODE GmbH wurde Anfang 2007 das freie T2-SDE-Linux-Projekt als Embedded Linux an AVR32 als Referenzimplementierung adaptiert und ist inkl. Produktunterstützung verfügbar. Die AVR32-STK1000-Starter-Kit-Referenzimplementierung mit laufendem T2-SDE-Linux wurde der Öffentlichkeit erstmals in Hannover auf der CeBIT 2007 vorgestellt.
Mit Veröffentlichung der Version 4.12 des Linux-Kernels wurde der Support der AVR32-Architektur eingestellt. Dieser Schritt wurde von den Entwicklern damit begründet, dass es keine Anwender oder nur sehr wenige gebe, sodass der Aufwand für die Pflege des Codes nicht mehr angemessen wäre. Zusätzlich lassen sich Teile des Netzwerkstacks der letzten Kernelversion nicht mehr mit aktuellen Compilern für diese Architektur übersetzen.