Infineons neue Low-Cost-Mikrocontroller

XMC1000: Peripheriewunder mit Cortex-M0

8. Januar 2013, 9:23 Uhr | Frank Riemenschneider
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Software-Entwicklung mit Code-Generator

Das Taktversorgungssystem des XMC1000.
Bild 2. Das Taktversorgungssystem des XMC1000.
© Elektronik

Die Entwicklungsumgebung DAVE 3 (Digital Application Virtual Engineer) ist eine Eclipse-basierende Plattform mit C-Code-Generator, kostenlosem GCC-Compiler und Debugger. Über eine komponentenbasierte Programmierung mit einer grafischen Oberfläche ähnlich zu Matlab können Signalleitungen mittels grafischer Programmierung verbunden werden; die entsprechende Peripherie wird dann automatisch konfiguriert. Über Plug-ins können auch Tools anderer Hersteller wie z.B. der ARM-Compiler aus dem Hause Keil eingebunden werden.

Der Vorteil gegenüber reinen Code-Beispielen, wie sie andere Hersteller liefern, besteht darin, dass sich mit DAVE auch die Kombination von mehreren Low-Level-Treibern einfach gestaltet – was sich von der Zusammenführung mehrerer isolierter Code-Beispiele ja nicht immer sagen lässt. Das Konzept erlaubt auch die Entwicklung von DAVE-Apps auf verschiedenen Layern. Somit können generische Low-Level-Treiber (z.B. PWM-Funktion) mit applikationsspezifischer Software (z.B. Motorsteuerung) über API-Schnittstellen verbunden werden.

DAVE enthält weiterhin Funktionen für Workspace- und Projektmanagement und ist ein offenes System, in das sich weitere Tools wie Lader, Monitor oder DOXYGEN (ein von Dimitri van Heesch entwickeltes Software-Dokumentationswerkzeug, das als freie Software unter der GNU General Public License zur Verfügung steht) einbinden lassen.

Ein Highlight von DAVE, mit dessen Hilfe sich die Entwicklungszeiten signifikant verkürzen lassen, ist der automatische C-Code-Generator, mit dem man nicht nur Peripherie und Systemeinheit initialisieren, sondern auch Low-Level-Treiber, Steuerungs-Software und sogar komplette Anwendungen erstellen kann.

Innovative Peripherie im Cortex-M0-Universum

Allen Unterfamilien gemeinsam sind zwei On-Chip-Oszillatoren mit 64 MHz (DC01) bzw. 32 kHz (DC02) und ein Oszillator-Watchdog, der die Frequenzen der Oszillatoren überwacht und damit die Anforderungen gemäß IEC 60335 (Klasse B) erfüllt. Mit seiner Hilfe kann beim Ausfall der Taktversorgung eine Notfall-Routine angesprungen werden, die das System in einen sicheren Zustand herunterfährt. Während der Core über einen Frequenzteiler /8192 bis /2 von DC01 mit 125 kHz bis 32 MHz getaktet wird, können Peripherielelemente wie CCU4, CCU8, BCCU (Helligkeits- und Farbsteuerung für LEDs) oder der mathematische Coprozessor von 125 kHz bis zu vollen 64 MHz getaktet werden. Lediglich die Echtzeituhr und der Watchdog-Timer werden über den Oszillator DC02, der als Backup für DC01 wirkt, falls dieser einmal versagen sollte, versorgt.

Ebenfalls implementiert ist Clock-Gating für einzelne Peripherieelemente (Bild 2), um die Leistungsaufnahme zu reduzieren, wenn Peripherie-Blöcke gerade nicht benötigt werden.
Interessant ist die Möglichkeit, die Frequenz von DC01 in Abhängigkeit von der Die-Temperatur über Software anzupassen. Dabei wird ein Offset auf Basis von zwei im Flash-Konfigurationssektor hinterlegten Werten und einer ebenso dort gespeicherten Formel berechnet, der dem Original-Frequenzwert hinzugeschlagen wird.


  1. XMC1000: Peripheriewunder mit Cortex-M0
  2. Hochstrom-Digital-I/O-Pins und AES-Engine
  3. Software-Entwicklung mit Code-Generator
  4. Innovative Peripherie im Cortex-M0-Universum
  5. Fünf virtuelle A/D-Wandler
  6. Lighting für Fortgeschrittene
  7. Fazit: Klein, aber mehr als oho
  8. ARMs kleiner Core: Cortex-M0

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Infineon Technologies AG

Weitere Artikel zu Mikrocontroller