Die wichtigsten Innovationen aus dem Hause Atmel.

Die wichtigsten Innovationen aus dem Hause Atmel.Atmel

„Ursprünglich war Atmel eine reine Speicher-Firma“, beginnt Alf-Egil Bogen. „Wir haben Flash-Memory für viele Handys und viele andere Geräte geliefert.“ Anfang der 1990er-Jahre begannt Atmel dann, sein Geschäft auf Flash-Mikrocontroller auszudehnen. „Unsere ersten Controller basierten auf dem 8051. Wir konnten uns nur durch den Flash-Speicher abheben.“ Der 8051 war und ist zwar sehr weit verbreitet, allerdings stellt er keine sehr performante Architektur dar. Aber: „Vegard Wollan und ich hatten bereits um 1990 herum an der Universität damit begonnen, einen Mikrocontroller zu entwickeln. Der sollte sehr viel effizienter und damit schneller sein als der damalige 8-Bit-Markt.“ 1995 kamen beide dann zu Atmel und begannen damit, die AVR-Architektur aus ihren Forschungsarbeiten heraus zu entwerfen.

Auf Performance getrimmt

„Als wir mit AVR begannen, war unser Ziel ganz klar eine hohe Performance“, fährt Alf-Egil Bogen fort, „ebenso sehr hohe Code-Dichte, auch wenn man in C programmiert.“ Die beiden Ingenieure trugen damit dem Trend Rechnung, dass Applikationen immer mehr Features verlangen, die Speicher wuchsen und die Entwickler das nicht mehr in Maschinensprache abbilden konnten. „Die anderen Architekturen waren bei C nicht wirklich effizient, außer man programmiert in Assembler-Stil.“ AVR wurde daher so entwickelt, dass er möglichst gut zu C passt. Damit widerspricht AVR der sonst üblichen RISC-Philosophie, möglichst viel Arbeit in den Compiler zu verlagern. „Stimmt, und das ist der interessante Teil“, bestätigt Alf-Egil Bogen. Sie wollten die Vorteile von CISC und RISC kombinieren. „Unser Ansatz war sehr akademisch: Wir haben viele Statistiken erstellt anhand realem Code und unsere Architektur an die Ergebnisse dieser Statistik angepasst. AVR ist auf die Funktionen optimiert, die 95% des Codes ausmachen. Bei den restlichen 5% ist er weniger effizient.“

Alf-Egil Bogen ist Vice President of Corporate Marketing und Chief Marketing Officer von Atmel in Trondheim, Norwegen.

Alf-Egil Bogen ist Vice President of Corporate Marketing und Chief Marketing Officer von Atmel in Trondheim, Norwegen.Atmel

Das klingt alles noch sehr nach RISC. „Viele Leute denken, dass RISC nur heißt, die Anzahl an Befehlen zu reduzieren. In Wahrheit geht es aber um reduzierte Komplexität. Wir haben hingegen die Anzahl an Instruktionen erhöht, die ihre Aufgaben auf sehr spezielle Weise erledigen. Weil wir eng mit den Compiler-Herstellern zusammenarbeiten, verwenden die C-Compiler tatsächlich alle diese Befehle und das so, wie sie gedacht sind.“ Statt mehrere Statements zu kombinieren, können die Compiler hier gleich auf das passende Kommando zurückgreifen – das wieder klingt nach dem klassischen CISC-Ansatz, allerdings mit einer statistisch begründeten Auswahl des Befehlssatzes.

Support für Hochsprachen

„Wirklich überraschend ist, dass AVR sogar heute noch konkurrenzlos gut dasteht, wenn es um die C-Performance geht“, freut sich Alf-Egil Bogen. Den Befehlssatz konnte Bogen recht frei optimieren, da er sich nicht um Rückwärtskompatibilität kümmern musste. „Wir konnten auf einem weißen Blatt Papier starten.“ Dabei hält sich AVR an die Anforderungen von Ansi-C, und geht nicht so weit wie DSPs: „Wenn man spezielle Compiler und spezielle Befehle einsetzt, verliert man Flexibilität und die Konformität zum Ansi-C-Standard. In DSPs hat man Inline-Coding und sehr spezielle Programmiertechniken.“

Wenig verwunderlich ist, wenn man die Wurzeln von Atmel betrachtet, dass der Prozessorkern große Speicher gut verwaltet, ohne Bank-Switching und andere krude Techniken der 8-Bit-Welt, die den Code bremst und dem C-Compiler das Optimieren erschwert. „Das ist das Fundament der AVR-Denke: RISC-Performance mit CISC-Codedichte, optimiert für High-Level-Programmiersprachen.“ Natürlich wollte Atmel seine AVR-Mikroprozessoren auch mit Flash-Speicher ausstatten. „Das war ein Alleinstellungsmerkmal. Wir haben außerdem EEPROM integriert.“

Präzise Analog-Funktionen

„Heute sind wir immer noch sehr performant und effizient mit C-Code, haben aber viele weitere Features auf den Chips integriert.“ Dazu gehören vor allem die Analog-Mixed-Signal-Einheiten. „Das ist ein Engineering-Produkt, entwickelt von Embedded-Designern für Embedded-Designer und implementiert von Chip-Designern.“ Das Design stammt also von Leuten, die wissen was reale Applikationen benötigen. „Auf dem neuesten XMega haben wir einen 12-Bit, 2-MSample/s-A/D-Wandler, der vier Kanäle gleichzeitig sampeln kann. Das ist ein echter 12-Bit-Konverter mit nur einem halben LSB Fehlerrate.“ Wer diese technischen Daten in einem Stand-Alone-AD-Wandler kaufen will, zahlt laut Bogen dafür mehr als für den Mikrocontroller inklusive des Wandlers. „Auch der DAC ist sehr effizient, ebenso die Komparatoren, die Bandabstandsreferenz und die Oszillatoren. Die XMega-Produkte haben viel bessere Analog-Funktionen als alle Wettbewerber.“

Alf-Egil Bogen berichtet dann weiter aus seinen ersten Erfahrungen mit Mikrocontrollern: „Als ich anfing, Mikrocontroller mit 8- oder 10-Bit-ADCs zu verwenden, waren die mit plus/minus drei LSBs spezifiziert. Das nimmt sofort zwei Bit Genauigkeit weg.“ Auch über die Qualität der DACs schwärmt Bogen: „Wenn man die Ausgänge direkt an die Lautsprecher anschließt, erhält man einen wunderschönen Klang. Bowers & Wilkins zum Beispiel verwenden das in ihrem jüngsten Zeppelin. Das Gerät wurde als das am besten klingende seiner Klasse ausgezeichnete. Sie nutzen 32-Bit-AVRs, um das zu erreichen.“

Zwischenschritte

Die Hauptvorteile des Mega-AVR.

Die Hauptvorteile des Mega-AVR.Atmel

Zwischen den Anfängen der AVR-Architektur und den neuesten 32-Bit-Bausteinen hat Atmel unter anderem die Mega-AVRs eingeführt. Diese hatten mehr Speicher als die älteren AVRs. „Wir waren außerdem die ersten, die einen ARM-Core lizenzierten, um ihn in einem Embedded-Design zu verwenden.“ Damit hat Atmel heutzutage 8051-, AVR- und ARM-basierte Flash-Mikrocontroller. Etwa um 2000/2001 führte Atmel zudem die Pico-Power-Design-Technik ein. „Low Power ist viel mehr als ein Low-Power-Prozess. Es geht um das komplette Systemdesign, wie flexibel man Module ein- und ausschalten kann wenn man sie braucht.“ Veröffentlicht hat Atmel sein Pico-Power dann im Jahr 2005. Die Effizienz und das Ziel, möglichst lange im Schlafmodus zu bleiben, ist laut Bogen auch bei den XMegas ein Schlüsselaspekt.

Anno 2003 brachte Atmel dann SAMS 3 mit ARM Cortex-M3-Produkten auf den Markt. „Wir kauften zudem Zigbee-Technologie ein und haben viele Touch-Produkte herausgebracht. Wir wollen zusätzliche Werte in unseren Produkten haben, und nicht einfach die Konkurrenz kopieren.“

ARM oder AVR?

„Als wir begannen, waren ARM-Controller sehr limitiert im Vergleich zu heute. Proprietäre Lösungen waren damals der einzige Weg zu hoher Performance. Heute entwickeln wir viele ARM-Produkte und verwenden dazu die selben Design-Techniken, die wir für AVR eingeführt haben. Die Kunden erhalten damit Low-Power und hocheffiziente Peripherie-Blöcke.“ Im Portfolio hat Atmel viele Produkte, die sich im Grunde nur durch den CPU-Core unterscheiden. Allerdings gibt es nicht jeden Controller in beiden Ausführungen: Bei Audio-Systemen fokussiert Atmel auf AVR-Controller, bei POS-Terminals hingegen auf ARM-Produkte. „ARM-Produkte laufen heute typischerweise in einem Prozess mit höherer Taktrate für mehr Rechenleistung, im Gegenzug sind die AVRs etwas effizienter, weil wir mehr Low-Power-Techniken integriert haben.“

Bei System-on-Chip-Produkten setzt Atmel auf seine eigene Architektur. Um hier ein effizientes Debugging zu ermöglichen, das zum Beispiel einen UART auf den einzelnen Zyklus genau simuliert, hat Atmel sein AVR-Studio entsprechend ausgelegt. Mit Standard-Tools wäre das nicht in der Form möglich, vor allem das Timing der integrierten Peripherieeinheiten sollte eine Entwicklungsumgebung exakt wiedergeben. Das ist mit eigenen, proprietären Tools leichter zu erreichen als mit fremden Werkzeugen. Auch fällt die Migration von einem Baustein zum anderen leichter, wenn die Tools die Unterschiede en detail kennen. „Wenn wir Hardware entwickeln, dann erzeugt unser eigener Design-Flow direkt aus dem RTL-Code die passenden Module für die Entwicklungsumgebung.“

Alles in einer Umgebung

Das integrierte AVR-Studio.

Das integrierte AVR-Studio.Atmel

Als eines der wesentlichen Merkmale der aktuellen Version von Atmels Design-Umgebung sieht Alf-Egil Bogen den hohen Grad an Integration: „Auf der neuen Plattform erhalten die Kunden alles in einer Umgebung: Die IDE, die Plugins von Atmel und von Drittanbietern. Gerade letzteres ist wichtig: Wenn jemand eine Firma betreibt, die besondere Batterie-Expertise besitzt, und dafür ein Atmel-Plugin anbieten will, dann kann er das tun. Das Plugin könnte zum Beispiel die Lade-Algorithmen mitbringen sowie Batterie-Charakteristiken, die unsere Simulationswerkzeuge dann nutzen.“ Ein Erweiterungsmanager in AVR-Studio kümmert sich um das Aufspüren, Herunterladen und Installieren der Plugins – egal, ob sie von Atmel oder einem Drittanbieter stammen. Eventuelle Lizenz-Klauseln zeigt der Erweiterungsmanager ebenfalls an. „Man kann alles direkt in AVR-Studio installieren und verwalten.“ Es gibt ein enormes Angebot an Plugins: „Logic Analyzer, Signalgeneratoren – Leute entwickeln alle möglichen Erweiterungen. Dabei haben wir diese Technik gerade erst im Mai mit Studio 5 eingeführt. Es nimmt noch weiter Fahrt auf.“

Zu den Funktionen von AVR-Studio gehört auch Code-Generierung, um die MCU und ihre Peripherie zu initialisieren. Auch Datenblätter und Applikationsschriften kann man direkt aus dem Programm heraus aufrufen, Entwicklungsbibliotheken und vieles mehr. „Es ist eher ein Ökosystem als nur eine Entwicklungsumgebung mit Debugger.“ Das neue Studio basiert nicht mehr auf Eclipse, sondern auf den Microsoft-Tools.

Alf-Egil Bogen betont auch die Qualitätssicherung der Werkzeuge und Bausteine: „Wir haben sogar ein Roboter-System, um neue Releases und neue Devices zu testen: Die Prüfroutinen laufen auf allen Hardware-Plattformen, die wir anbieten.“ Ein Video dieses Roboters und weiterer QM-Maßnahmen bei Atmel ist auf Youtube zu finden; der Abschnitt mit dem Roboter beginnt bei 2:42.

Zurück zu den Anfängen

Das MCU-Portfolio Anno 1995.

Das MCU-Portfolio Anno 1995.Atmel

„Ich erinnere mich noch, als ich im Labor saß und wir nur einziges Testexemplar hatten: Ein AVR in einem 20-Pin-Dual-Inline-Gehäuse. Damals arbeiteten wir an den drei nächsten Chips. Das war um Weihnachten 1996.“ Heute, 15 Jahre später, hat Alf-Egil Bogen dieses Sample Nummer eins immer noch auf seinem Schreibtisch – Atmel hat über 250 verschiedene Bausteine aus der AVR-Familie auf dem Markt, vom 6-Pin-Baustein bis zum 144-Pin-Mikrocontroller mit 512 KByte Flash, und alles mit dem gleichen Befehlssatz. Nur der 32-Bit-UC3 besitzt ein anderes Instruction Set – die einheitlichen Tools und der Compiler machen auch diesen Baustein kompatibel. Bei den 8-Bit-Bausteinen ist auch der Binärcode kompatibel.

Zur Überraschung vieler hat Atmel mit dem XMega gerade einen neuen 8-Bit-Baustein präsentiert. „Viele Leute fragen uns: Ihr habt ja schon AVR und Mega-AVR. Warum dann mit dem XMega einen weiteren 8-Bit-Chip? Die Antwort lautet: Wir wollten ein System-on-Chip entwickeln, das so effizient arbeitet, dass es die meisten anderen Bausteine auf dem Markt in den Schatten stellt. Der Kern unterscheidet sich gar nicht so stark, aber das Gesamtsystem ist deutlich anders aufgebaut als sonst. High-Performance-Analog gehört dazu, aber auch die Art, wie die Peripherie kommuniziert.“ Ein Power-Down-Stromverbrauch von 100 nA ist wertlos, wenn der CPU-Kern nie in den Power-Down-Modus wechseln kann.

In Ruhe schlafen

XMega mit ARM-Kern.

XMega mit ARM-Kern.Atmel

Um so oft wie möglich in den Power-Down-Modus wechseln zu können, muss das System entsprechend ausgelegt sein. „Bei XMega kann die Peripherie ohne den CPU-Kern miteinander kommunizieren. Wir nennen es das Event-System. Es enthält einen regulären DMA und ein Schlafwandel-Modul. Das Event-System arbeitet wie eine Matrix: Wenn ein UART eine Byte erhalten hat, dann sagt es dem DMA-Controller, dass er dieses Byte in den Speicher schreibt, ohne die CPU aufzuwecken.“ Gleiches klappt beim AD-Wandler. Es kann statt dem DMA auch einen Timer starten. Die Schlafwandel-Funktion versetzt die CPU in keinen Sleep-Mode, sondern verlangsamt den Takt sehr stark. Aus diesem Zustand kann die CPU extrem schnell aufwachen.

Weil das Event-System nicht vom Core abhängt, will Atmel diese Technik künftig auch bei 32-Bit-Cores und bei ARM-Mikrocontrollern einsetzen. „Wir haben bei 8 Bit angefangen, weil wir hier die beste Performance auf Systemebene erreichen und es günstiger und kompakter ist als ein 32-Bit-Core.“ Nebenbei wird das Debugging deutlich einfacher, wenn ein Hardware-Event-System auf Ereignisse reagiert und kein Interrupt die CPU erreicht: Die Software läuft ungestört weiter, es gibt keine Timing-Probleme. Echtzeit-Anforderungen sind auf diese Weise sehr viel leichter zu erfüllen und die Software verhält sich viel deterministischer.