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
BearbeitenDie 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
Bearbeiten2011 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
BearbeitenDies 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
BearbeitenDiese 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
BearbeitenController dieser Untergruppe sind für hohen Datendurchsatz optimiert, haben USB- und Ethernet-Schnittstellen sowie SRAM-Bereiche von 32 oder 64 KiB.
A3/A4-Serie
BearbeitenDiese 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
BearbeitenController 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
BearbeitenWerden 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
BearbeitenDiese Controller sind speziell auf den Betrieb der Atmel AUDIO-IPs optimiert.
Entwicklungstools
BearbeitenEVK1100
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
BearbeitenAb 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.
Weblinks
Bearbeiten- ATMEL AVR32-Architektur-Produktseite (englisch) ( vom 6. Januar 2010 im Internet Archive)
- NGW100 First Steps (deutsch)
- The AVR32 Linux project mit u. a. Link zur freien GNU AVR32 Entwicklungswerkzeugkette (englisch)
- T2 SDE AVR32 Linux Reference Implementierung inkl. AVR32 starter-kit STK1000 – Open Source (englisch)
- uTasker Project für den AVR32 kostenlos für nicht-kommerzielle Zwecke mit AVR32 Simulator und Tutorial (englisch)
- AVR32 Tutorial – Tutorial für AVR32-Controller ( vom 13. Oktober 2012 im Internet Archive)