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 1

Hochstrom-Digital-I/O-Pins und AES-Engine

Diese unterscheiden sich hinsichtlich ihrer Peripherieausstattung (Tabelle). Es wird insgesamt 22 Derivate in drei Package-Optionen (TSSOP-16, -28 und -38) und mit 8 bis 200 KB Flash-Speicher geben. Bei den Gehäusen TSOP28 und TSOP38 gibt es neben den Standard-Digital-I/O-Pins, die 5 mA vertragen, noch vier bzw. sechs sogenannte Hochstrom-Digital-I/O-Pins, die mit 50 mA (Senke) bzw. 10 mA (Quelle) belastbar sind. Als Ergebnis der wenigen Pins hat Infineon keinen dedizierten Pin für die Boot-Mode-Konfiguration geopfert. Stattdessen wird im Flash-Speicher ein sogenannter Boot-Mode-Index (BMI) hinterlegt, der über den Aufruf einer ROM-Routine verändert werden kann und einen von fünf möglichen Boot-Modi (davon drei Debug-Modi) definiert.

Die Standard-Serial-Wire-Debug-Funktion des Cortex-M0 wurde von Infineon noch durch das eigene proprietäre SPD-Protokoll (Singe-Pin Debug) ergänzt, das speziell für Gehäuse mit geringer Pin-Zahl entwickelt wurde und schon bei Infineons 16-bit-Controllern wie z.B. XE166 zum Einsatz kam. Ebenfalls implementiert wurde die ARM-Coresight-Serial-Wire-Debug-Lösung mit einer Unterstützung für das Debugging mehrerer Komponenten, die sich gleichzeitig mit einem einzigen Debug-Host verbinden lassen. Ein Gerät kann dabei vollständig abgeschaltet werden, solange es nicht zum Debugging herangezogen wird, was zu einer Verringerung der Leistungsaufnahme führt.

Alle Controller enthalten einen Pseudo-Zufallsgenerator für Anwendungen wie Glücksspielautomaten. Der Generator arbeitet im 8- oder 16-bit-Modus, wodurch die generierten Zufallszahlen eine vergleichsweise gute statistische Verteilung erzielen. Die Zufallszahlen-Sequenz hat zudem einen Umfang von 2160 Bits, was die Vorhersage ohne Kenntnis des Schlüssels extrem erschwert.

Zukünftig (geplant ist das 2. Halbjahr 2013) wird es sogar eine AES-128-Verschlüsselungs-Engine geben, mit welcher das immer größere Problem des IP-Diebstahls adressiert wird. Dazu wird beim Programmieren der MCU der Code, den Design-Häuser mit Hilfe von durch Infineon bereitgestellte Tools verschlüsseln können, in verschlüsselter Form übertragen, bevor er auf dem Chip mit Hilfe eines dort hinterlegten Schlüssels entschlüsselt und in den anschließend lesegeschützten Flash-Speicher geschrieben wird. Da nur eine begrenzte Anzahl von MCUs mit demselben Schlüssel arbeitet, ist IP-Diebstahl in großem Maße nicht mehr möglich.

Ein Nachteil des Cortex-M0 besteht darin, dass Hardware-seitig kein Dividierer vorhanden ist – die Division muss also im Normalfall über eine Software-Bibliothek emuliert werden, die viel CPU-Last generiert und vor allen Dingen langsam ist. Infineon hat daher seiner XMC1300-Serie einen Hardware-Block spendiert, der neben einem 32-bit-Dividierer für vorzeichenlose und vorzeichenbehaftete Zahlen auch noch 24-bit-CORDIC-Funktionen enthält.

Der CORDIC-Algorithmus (COordinate Rotation DIgital Computer) ist ein effizienter iterativer Algorithmus, mit dessen Hilfe sich z.B. trigonometrische, Exponential- und logarithmische Funktionen berechnen lassen. Herkömmliche Reihenentwicklungen wie z. B. die Taylorreihe zeigen oft nur mittelmäßige (d.h. langsame oder gar von den Argumenten abhängige) Konvergenz und schlechte numerische Stabilität. Eine Reihenentwicklung besteht außerdem hauptsächlich aus einer Summe von Produkten, die nur aufwendig zu berechnen sind.

Beim XMC1300 können im Ergebnis Sinus, Kosinus und Arcustangens unabhängig von der CPU berechnet werden; der Cortex-M0 wird somit zugunsten echtzeitbedürftiger Aufgaben entlastet. Zudem wird eine Park-Transformation, welche bekanntlich u.a. bei Motorsteuerungen für feldorientierte Regelalgorithmen eingesetzt wird, mit 24 bit Auflösung in Hardware ausgeführt.

Unterfamilie
XMC1100
XMC1200
 XMC1300
Taktfrequenz Core (MHz)
32 32 32
RAM (KB)
16 16 16
Flash-Speicher (KB) 16/32/64 16-200 8-200
Coprozessor DIV/CORDIC - - Ja
USIC 1 1 1
Pseudo-Zufallsgenerator 1 1 1
CCU4 1 1 1
CCU8 - - 1
POSIF - - 1
BCCU - 1 1
Temperatur-Sensor - 1 1
LEDTS - 1 -
A/D-Wandler 12 bit 1 1 1
Abtast-Halte-Glieder - 2 2
Analog-Komparator - 1 1
Maximale Temperatur (°C) 85 105 105
Preis ab Euro* 0,25 0,29 0,49

Die drei Unterfamilien des Controllers XMC 1000. *: Schätzung der Elektronik für jeweils kleinste Flash-Speicher-Ausstattung in großen Stückzahlen.



  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