Cortex-M0-Mikrocontroller Geregelte Motoren

Motorsteuerungen und Antriebsregelungen gehören im industriellen Umfeld zu den wichtigsten Einsatzfeldern für Mikrocontroller. Dabei ist der Rechenkern weniger von Bedeutung als die Peripheriefunktionen, deren richtige Auswahl ein entscheidender Faktor für den Erfolg eines Projektes ist.

Vielen industriellen Anwendungen genügten bisher 8-Bit-Mikrocontroller, beispielsweise für Motorsteuerungen, LED-Beleuchtungen, digitale Leistungswandlung, »intelligen-te« Sensoren, kapazitive Bedienelemente und LED-Anzeigen. Als kosteneffiziente 32-Bit-Alternative für bisherige 8-Bit-Pro-dukte positioniert nun Infineon seine Produktfamilie »XMC1000«, die auf dem Standard-Prozessorkern »Cortex-M0« von ARM basiert. Durch die Kombination des Rechenkerns mit dedizierten Peripherie-funktionen, produktiven Entwicklungswerkzeugen und der Fertigung in 65-nm-Prozesstechnologie auf 300-mm-Wafern bieten die Bausteine Lösungen für vielfältige Einsatzbereiche.

Für die Anwendung optimiert

Die neuen XMC1000-Derivate in 16-, 28- und 38-poligen TSSOPs besitzen neben dem ARM-Kern mit 32 MHz allerlei neue Funktionsmerkmale (Bild 1), beispielsweise 200 KByte Flash-Speicher, Mixed-Sig-nal-Peripherie, Module für Touch-Control und LED-Displays. Des Weiteren findet sich eine spezielle Peripherieeinheit für das Dimmen und die Farbsteuerung von LEDs, ein Flash-Loader mit 128-Bit-AES-Verschlüsselung für den Software-IP-Schutz und ein mathematischer Coprozessor mit 64 MHz für effiziente Motorregelungen.

Darüber hinaus unterstützen die neuen Mikrocontroller mit Funktionsmerkmalen wie Hardware-Fehlerkorrektur (ECC) oder entsprechenden Speichertests auch die Anforderungen gemäß IEC 60730 Class B, etwa für die  Sicherheit von Haushaltsgeräten in Europa vorgeschrieben.

Die XMC1000-Familie bedient mit drei Produktserien (Bild 2) und mehr als 20 Produkten jeweils unterschiedliche Anwendungsbereiche. So bietet die »Entry Series« »XMC1100« einen Basis-Funktionsumfang für einen möglichst einfachen Einstieg in die XMC-Welt. Nichtsdestotrotz sind die Funktionsmerkmale auf dem Stand der Technik, mit 12-Bit-A/D-Wandlern oder 16-Bit-Timern mit denen sich vielfältige PWM-Muster erzeugen lassen.

Die »Feature Series« »XMC1200« beinhaltet zusätzliche applikationsspezifische Funktionsmerkmale wie die Peripherieeinheit für die LED-Farbsteuerung oder Schaltungseinheiten für kapazitive Touch-Steuerung und LED-Displays. Außerdem stehen Versionen für den erweiterten Temperaturbereich von -40 °C bis zu +105 °C zur Verfügung.

Speziell zugeschnitten für Anwendungen in den Bereichen Motorsteuerung oder digitale Leistungswandlung ist die »Control Series« »XMC1300«. Dafür bietet sie neben der besonders leistungsfähigen Capture/Compare-Unit 8 (CCU8) beispielsweise ein Position-Interface (POSIF) für das präzise Erfassen der Motorposition sowie einen »MATH«-Coprozessor, der sensorlose FOC-Lösungen (feldorientierte Regelung) von Elektromotoren ermöglicht - ein Novum bei Cortex-M0-basierten Produkten. Auch die XMC1300-Reihe bietet Varianten für den Temperaturbereich bis zu +105 °C.

Ein wesentliches Funktionsmerkmal der XMC1000-Familie sind die Timer-Einheiten CCU4 und CCU8. Die 16-Bit-Timer-Module bestehen aus vier identischen, einfach kaskadierbaren »Timer-Slices«. Diese interne Modularität der Timer-Einheit ermöglicht Software-freundliche Systeme für eine schnelle Code-Entwicklung und einfache Portierung.

Jedes CCU4-Timer-Slice kann im Compare-Modus (ein Compare-Kanal) oder in der Capture-Betriebsart (mit bis zu vier Capture-Registern) arbeiten. Außerdem wird die Erzeugung von bis zu vier unabhängigen PWM-Signalen unterstützt. Bei der CCU8 stehen im Compare-Modus für jedes Timer-Slice zwei Compare-Kanäle zur Verfügung. Damit lassen sich bis zu vier PWM-Signale per Timer-Slice (bis zu 16 je CCU8-Einheit) mit Totzeit generieren, um Kurzschlüsse in den Schaltern zu vermeiden.

Die in den XMC1300-MCUs enthaltenen POSIF-Module unterstützen Drehgeber, Hall-Sensoren und die mehrkanalige Positionserfassung. Das POSIF lässt sich für unterschiedliche Motorregelungen konfigurieren. Mit den LEDTS-Modulen (LED and Touch Sense) lassen sich LEDs und Touch-Panels in HMI-Anwendungen einfach ansteuern (Bild 3). Dabei können die LEDTS die Kapazität von bis zu je acht Touch-Pads mit Hilfe einer RO-Topologie (Relaxation Oszillator) messen.

Bis zu 64 LEDs (8x8) können pro LED-Matrix angesteuert werden. Mit Hilfe des flexiblen USIC-Interface-Moduls lassen sich verschiedene serielle Kommunikationsproto-kolle wie ASC, SSC, I2C oder I2S implementieren. Ein USIC-Modul bietet zwei unabhängige Kommunikationskanäle. Ein dediziertes FIFO ermöglicht die Pufferung bei langsameren Applikationen.

Das A/D-Wandlermodul besteht aus einem Kernel, der nach dem Prinzip der sukzessiven Approximation (SAR) arbeitet. Die Auflösung kann mit 8 Bit, 10 Bit oder 12 Bit programmiert werden. Bei den Serien XMC1200/1300 sind außerdem noch zwei Sample&Hold-Stufen und schnelle Analog-Komparatoren integriert. Diese beiden Serien verfügen über eine BCCU (Brightness and Color Control Unit). Die BCCU ist - bei minimalem Code-Aufwand - für die automatische Steuerung der Dimmung und der Farben von mehrkanaligen LED-Lampen ausgelegt.

Die automatische, hochfrequente Helligkeitsmodulation liefert eine hohe Auflösung für den Helligkeitswert beziehungsweise den Farbwert bei RGB-Anwendungen. Damit wird eine flimmerfreie Darstellung möglich. Weitere hilfreiche Peripheriefunktionen sind ein Pseudo-Zufallszahlengenerator, eine Echzeit-Clock (RTC) und ein Window-Watchdog-Timer (WDT).

Fünf virtuelle A/D-Wandler

Für viele Industrie-Anwendungen,  insbesondere aber auch für effiziente Motorregelungen, sind schnelle und präzise A/D-Wandler gefragt. Neben einer hohen Auflösung und Abtastrate ist aber auch die genaue zeitliche Festlegung einer Messung besonders wichtig. So erlauben es die Serien XMC1200 und XMC1300, die Abtastzeitpunkte über programmierbare, hardwaregesteuerte Sequenzen entsprechend zu den Schaltmustern zu definieren.

Die Serie XMC1100 enthält einen 12-Bit-A/D-Wandler mit 6, 10 oder 12 Kanälen. Reduziert man die Auflösung, dann können die Wandler noch schneller abtasten. Dabei erreicht der Wandler bei 12 Bit Auflösung 1,88 MSample/s und bei 8 Bit Auflösung 2,46 MSample/s. Daneben gibt es noch einen Compare-Modus für 10-Bit-Werte. Hier kann man einen Grenzwert definieren, dessen Unter- oder Überschreitung sehr schnell erfasst wird, wobei keine vollständige Wandlung durchgeführt werden muss.

Der 10-Bit-Compare-Mode benötigt 62,5 ns. Dank der einstellbaren Verstärkungsfaktoren von x1, x3, x6 oder x12 und der hohen Wandlungsgeschwindigkeit ist in vielen Anwendungen ein Operationsverstärker überflüssig. Zwei unabhängige Sigma-Delta-Schleifen erhöhen die ENOB (Effective Number of Bits). Die beiden Loops speichern den Quantifizierungsfehler zwischen, damit dieser bei der nächsten Umwandlung berücksichtigt werden kann. Das Erkennen von unterbrochenen Leitungen und die Multiplexer-Diagnose sind zwei wichtige Elemente in Sicherheitsstandards, beide unterstützen die A/D-Wandler der XMC1000-Familie.

Bei dem komplexeren A/D-Wandler der Serien XMC1200 und XMC1300 gibt es zusätzlich zwei Sample-and-Hold-Stufen. Jede der zwei unabhängigen A/D-Wandler-Steuereinheiten (Conversion Groups, Bild 4), verfügt über jeweils die beiden Quellen »Queue Request« und »Scan Request« mit unterschiedlichen Eigenschaften für jeweils bis zu acht Kanäle.

Die Quellen können als virtuelle A/D-Wandler fungieren. Bei der Queue-Quelle kann man festlegen, welche Kanäle abgetastet oder ob die Wandlungen pro Kanal durch einen Trigger angestoßen und/oder Interrupts ausgelöst werden sollen. Bei der Scan-Quelle kann man definieren, welche Kanäle betroffen sind, die dann der Reihe nach gewandelt werden. Zusätzlich zu diesen vier Quellen gibt es noch den Funktionsblock »Background-Scan«. Dieser ist für weniger zeitkritische Wandlungen gedacht. Damit stehen insgesamt fünf virtuelle A/D-Wandler zur Verfügung.

Verbindungen zwischen dem A/D-Wandler und den Timern bilden einen autonomen Cluster, der ideal für zahlreiche Leistungsumsetzungs-Anwendungen ist. Für die Zielanwendungen wie Motorregelungen, »intelligente« Beleuchtung oder Leistungswandlung sind neben den A/D-Wandlern auch Komparatoren erforderlich. Bei der Leistungswandlung beispielsweise verbessert eine schnelle und präzise Rückmeldung das Regelverhalten und senkt die Leistungsaufnahme, da kein A/D-Wandler benötigt wird.

Hier bietet der Analog-Komparator in der XMC1000-Familie mit einer Offsetspannung von 3 mV und einer Laufzeitverzögerung von 30 ns angemessene Leistung. Das Ausgangssignal kann entweder direkt auf einen Pin geführt oder von den vielfältigen Peripherieelementen genutzt werden. Der zusätzliche Out-of-Range-Komparator (ORC) überwacht die Eingänge des A/D-Wandlers entsprechend vorgegebener Schwellenspannungen.

Energieeffiziente Motorregelung

Für die effiziente Motorregelung beinhaltet die XMC1000-Familie dedizierte, leistungsfähige Peripherie. Mit den Timer-Einheiten CCU4/CCU8 und der Positions-Schnittstelle POSIF lassen sich beispielsweise Position und Geschwindigkeit eines Motors auf einfache Weise ermitteln. Messungen mit den A/D-Wandlern können von den Timern CCU4/CCU8 getriggert werden.

Der Math-Coprozessor (XMC1300) kann darüber hinaus Vektor-Rotation (PARK-Transformation) mit 24-Bit-Auflösung ausführen, womit sich leistungsfähige Algorithmen für die feldorientierte Motorregelung implementieren lassen (Bild 5). Die Capture/Compare-Unit 4 ist wichtig für Systeme, die leistungsfähige Timer für Signal-Monitoring beziehungsweise -Verarbeitung sowie PWM-Signalgenerierung benötigen. Damit lassen sich etwa Schaltnetzteile oder USVs einfach implementieren. Typischerweise erzeugen sie Pulse oder dienen mit Hilfe der Dither-Funktion zur Stabilisierung von langsamen Regelschleifen.

In Kombination mit dem programmierbaren POSIF-Block kann auch ein Inkrementalgeber ausgewertet werden. Ein Tiefpassfilter unter-drückt das Rauschen und Störimpulse vom Hall-Sensor oder Drehgeber, die zu falschen Positions- und/oder Geschwindigkeitsangaben führen könnten. Mit der CCU8 (Bild 6) und dem zusätzlichen Compare-Kanal besteht die Möglichkeit, für steigende und fallende Flanken unterschiedliche Totzeiten zu definieren und asymmetrische PWM-Signale zu erzeugen.

Die CCU8 unterstützt Applikationen mit komplexerer PWM-Sig-nalerzeugung mit komplementären Schaltern in Halbbrücken-Konfiguration, mehrphasiger Regelung und Parity-Check. Diese Funktionen in Kombination mit einem sehr flexiblen und programmierbaren Schema für die Signal-konditionierung prädes-tinieren die CCU8 für besonders leistungsfähige Motorsteuerungen sowie Mehrpasen- und Multi-Level-Systeme.

Zu typischen Anwendungen, die davon profitieren, zählen 3-Phasen-Inverter für Antriebe, 3-Level-Inverter für Solarmodule oder Halbbrücken-Wandler. Der 64-MHz-Math-Coprozessor besteht aus einem 32-Bit-Teiler und einem 24-Bit-Cordic für trigonometrische Berechnungen. Sowohl die Teiler- als auch die Cordic-Einheit können parallel zur Cortex-M0-CPU arbeiten. Die Math-Einheit erhöht die Rechenleistung für Echtzeit-aufgaben signifikant.

Entwicklungsunterstützung

Für die effiziente Software-Entwicklung steht ebenso wie bei den »XMC4000«-Serien die Entwicklungsumgebung »DAVE« zur Verfügung, die von der Website von Infineon kostenfrei heruntergeladen werden kann. DAVE unterstützt automatische Codegenerierung mittels vordefinierter und getesteter Softwarekomponenten, den sogenannten »DAVE Apps«.

Das komplette Tool-Paket beinhaltet einen automatischen Codegenerator auf Basis von DAVE-Apps, einen kostenlosen GNU-Compiler sowie Debugger, einschließlich Flash-Loader. Darüber hinaus arbeitet Infineon mit zahlreichen Entwicklungspartnern zusammen, die zusätzliche spezielle Entwicklungswerkzeuge wie Compiler, Debugger, Software-Analyse oder Flash-Programmer sowie Softwarelösungen, Training und technische Unterstützung für die XMC1000-Familie bieten.

Die Boot-Kits, die es für jede der drei Produktserien gibt, bieten eine einfache Evaluierungsmöglichkeit für die neuen XMC1000-Produkte. Zusammen mit DAVE, einem Debugger und einigen Beispiel-Apps stellen sie ein komplettes Paket für die Entwicklung von einfacherer Applikationssoftware bereit. Für den applikationsorientierten Ansatz stellt Infineon dedizierte Applikationskits zur Verfügung. Für XMC1000 wird es zunächst ein Kit für die Entwicklung von LED-Beleuchtungslösungen geben und bis Mitte 2013 auch ein Kit für gängige beziehungsweise besonders effiziente Motorsteuerungen.

Über die Autoren:

Dirk Heinen ist Product Marketing Manager und Arno Rabenstein ist Senior Staff Application Engineer, beide im Bereich Industrie-Mikrocontroller bei Infineon.