Schnell und kompakt: Signalcontroller für preissensitive Anwendungen

DSP im Mikrocontroller-Pelz

15. November 2006, 16:09 Uhr | Harald Kreidl
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Gedächtnis des Controllers

Die 56F801x-Controller verfügen über einen RAM-Speicher (2 oder 4 Kbyte), der für Daten und Programme verwendet werden kann. Der Flash-Speicher ist wortweise (16 bit) programmierbar und wird seitenweise gelöscht, wobei eine Flash-Seite 256 Worte enthält. Damit eignet sich der Flash-Speicher auch für die nichtflüchtige Speicherung von Daten. Eine so genannte „Mass-Erase“-Funktion löscht das gesamte Modul in einem Rutsch. Die Datenerhaltsdauer für den Flash-Speicher beträgt mindestens 15 Jahre und er lässt sich mindestens 10 000 Mal wiederprogrammieren. Die reine Programmierzeit beträgt 20 bis 40 µs pro Wort. Die Löschung einer Seite benötigt 20 ms, ein Mass-Erase dauert 100 ms. Für den Zugriff auf den Flash-Speicher bei einem Betrieb mit maximal 32 MHz sind keine Wartezyklen (wait states) einzuplanen. Das Flash-Modul kann zum einen gegen versehentliches Überprogrammieren oder Löschen in Speicherblöcken gesichert werden (Protection), zum anderen lässt sich das Lesen des Flash-Speichers über das JTAG-Interface sperren (Flash Security). Damit kann man verhindern, dass die Software ausgelesen und die Anwendung nachgebaut wird. Um festzustellen, ob der Flash-Speicher gekippt ist, stehen zwei Testmechanismen zur Verfügung. Erstens werden beim Testen des Bausteins charakteristische Betriebsparameter des Flash-Speichers gesammelt und abgespeichert. Diese Parameter können nachher im Betrieb kontinuierlich überwacht werden. Zweitens kann man über einen definierten Speicherbereich eine Prüfsumme erstellen und diese überwachen. Damit kann ein Programm sicherstellen, dass sich keine Programmstelle geändert hat.

Entwickeln, Testen, Produzieren

Für die Software-Entwicklung gibt es von Freescale die Entwicklungsplattform „CodeWarrior“ mit integriertem „ProcessorExpert“. CodeWarrior umfasst einen C-Compiler, Assembler, Linker und Debugger (mit Simulator). Die Projektverwaltung unterstützt das Arbei-ten von Teams an einem Projekt. Für Code-Größen bis 16 Kbyte ist der CodeWarrior kostenlos (Special Edition). Da viele Anwendungen die gleichen Grundfunktionen (beispielsweise Filterberechnungen, umfangreiche Matrizenrechnung, Regelalgorithmen, Steuerungen für unterschiedliche Arten von elektrischen Motoren) benötigen, hat Freescale den ProcessorExpert lizenziert, der auf Mausklick diese Funktionen für die 56F801x-Controller zur Verfügung stellt. Außerdem kann er die gesamte interne Peripherie konfigurieren und stellt erforderliche APIs (Application Programming Interfaces) zur Verfügung. Software-Projekte lassen sich damit schnell, effizient und oft auch ohne detaillierte Controller-Kenntnisse realisieren. Damit bereits auch ohne vorhandene Hardware mit der Software-Entwicklung begonnen werden kann, stellt Freescale EVMs (Evaluierungsmodule) und Demoboards (Bild 3) zur Verfügung. Die Demoboards haben einen JTAG-zu-Parallel-Wandler und können damit direkt mit dem Parallelport eines PC verbunden werden. Das EVM stellt einen Teil eines Entwicklungssystems dar und hat umfangreiche Verbindungsstecker für weitere Funktionen. Außerdem hat es externen SRAM-Speicher, um Code aus dem RAM ausführen zu können (nur bei den größeren Signalcontrollern ist ein externes Speicherinterface implementiert). Bild 4 zeigt das komplette Entwicklungskit für die Bausteine 56F8013/14. Für viele Anwendungen bietet Freescale darüber hinaus Referenzdesigns an, die dem Kunden die Realisierbarkeit der Anwendung zeigen. Die Dokumentation und die Software für die Referenzdesigns sind kostenlos von der Freescale-Homepage [1] erhältlich.

Um die Systemzuverlässigkeit garantieren zu können, muss schon von Beginn der Entwicklung an die Software (und die Hardware) getestet werden. Die 56F801x-Controller stellen dafür eine JTAG- und eine EOnCE-Schnittstelle zur Verfügung. Der Zugriff auf die internen Ressourcen des Signalcontrollers und das Hoch- oder Herunterladen von Daten werden über das IEEE-1149.1-konforme JTAG-Interface ermöglicht. Das EOnCE-Modul (Enhanced Onchip Debug) erlaubt das Setzen von „Breakpoints“, verschiedene Triggermöglichkeiten und das Verfolgen des Programmablaufes (Tracing). Die Bausteine können während der Entwicklung und in der Serie über das JTAG-Interface oder über eine der seriellen Schnittstellen SCI, SPI, I2C programmiert werden. Dafür sorgt dann ein „Bootloader“. Die Bausteine gibt es in den beiden Temperaturbereichen –40 bis +85 °C und bis +125 °C.

5200203_03.jpg
Bild 3. Das Demoboard für den MC56F8014 erleichtert die Entwickungsarbeit.

Anwendungsbeispiel: Stromversorgung mit Leistungsfaktor-Korrektur

Herkömmliche Stromversorgungen erzeugen viele harmonische Oberwellen, die dann als Störungen auftreten. Um dies zu verhindern, verändert man aktiv die Signalform des Eingangsstroms derart, dass die Frequenzen von Eingangsspannung und Eingangsstrom identisch sind. Die Europäische Norm EN 61000-3-2 legt die Grenzen für den Anteil der harmonischen Oberwellen für Geräte fest, die an das öffentliche Stromnetz angeschlossen werden dürfen. Um diese Norm zu erfüllen, muss in diese Geräte eine aktive Leistungsfaktor-Korrektur (PFC) bzw. Blindleistungskompensation eingebaut werden. Die PFC emuliert eine ideale Ohmsche Last, indem auf elektronischem Weg die Signalform des Eingangsstroms einem Sinus angenähert wird. Für diesen Zweck gibt es eigene Bausteine. Beim Einsatz der 56F801x-Bausteine können diese in einem System die PFC übernehmen. Weitere externe Bausteine sind nicht notwendig. Da es sehr aufwendig wäre, einen wirklichen Sinus zu erzeugen, lässt die Norm eine Annäherung durch ein Rechtecksignal zu (Bild 5). Das wird erreicht, indem zwischen dem Gleichrichter und dem Glättungskondensator ein Aufwärts-Wandler eingefügt wird, der per PWM angesteuert wird. Weiterhin sind Nulldurchgang-Erkennung und PID-Regler implementiert. Die gesamte Software ist in [2] beschrieben und als Bibliothek in ProcessorExpert vorhanden.

5200204_03.jpg
Bild 4. Lieferumfang des Entwicklungskits für die Bausteine 56F8013/14, bestehend aus einem Demoboard mit JTAG/EOnCE-zu-Parallel-Port-Schnittstelle, Software, Kabel, Stromversorgung und Dokumentation.

Anwendungsbeispiel: Sensorlose Ansteuerung von Motoren

Haushaltsbereich, verwendet man heute die sensorlose Ansteuerung von Wechselstrommotoren und verzichtet dabei aus Kostengründen auf Positions- oder Geschwindigkeitssensoren. Position und Lage werden indirekt aus den Spannungen und Phasenströmen bestimmt. Dieses Prinzip, angewandt auf Universalmotoren, ist schon mit sehr einfachen Mikrocontrollern realisierbar. Universalmotoren werden gerne für Waschmaschinen, Werkzeugmaschinen (z.B. Bohrmaschinen), Staubsauger, Mixer und andere Haushaltsgeräte verwendet. Freescale bietet mehrere Lösungen mit 8-bit-Mikrocontrollern für diese Anwendungen an [3]. Werden aber an die Steuerung erhöhte Anforderungen an Genauigkeit oder Geschwindigkeit gestellt oder sollen weitere Funktionen, wie beispielsweise PFC integriert werden, reicht ein einfacher Mikrocontroller nicht mehr aus. Auch beim Einsatz von bürstenlosen Drei-Phasen-Wechselstrommotoren be-nötigt man leistungsfähigere Prozessoren, die Filter und Vektormodulationen durchführen können. Da der Motor im Prozessor als mathematisches Modell simuliert und entsprechend angesteuert wird, lassen sich für diese Steuerungen die 56F801x-Signalcontroller verwenden. Diese Technik wird näher in [4] beschrieben. Außerdem existiert ein Referenz-Design von Freescale (RDDSP56F8ACVCD).

Weitere Informationen können von [1] heruntergeladen oder vom Autor angefordert werden.

5200205_03.jpg
Bild 5. Signalform von Eingangsstrom und -spannung bei der Leistungsfaktor-Korrektur.

Dipl.-Ing. (FH) Harald Kreidl hat an der Fachhochschule München Physik und an der TU München Lehramt für das berufliche Schulwesen studiert. Nach dem Studium arbeitete er vier Jahre in der Hard- und Software-Entwicklung bei Krauss-Maffei. Seit 1988 war er bei verschiedenen Distributoren als Applikationsingenieur tätig. Seit 1998 ist er bei Motorola (heute Freescale) als Applikationsingenieur für die Mikrocontroller zuständig.
E-Mail: Harald.Kreidl@freescale.com

Verwandte Artikel:

Da der Baustein auf eine zügige Datenverarbeitung optimiert ist, müssen ihm die Daten auch schnell genug zugeführt werden. Für analoge Daten ist deswegen eine schnelle und hochauflösende Wandlung nötig, die die beiden voneinander unabhängigen 12-bit-A/D-Umsetzer durchführen. Ein ADC kann 761 000 Umsetzungen pro Sekunde vornehmen, wobei zur Korrektur automatisch Offset-Werte vom Umsetzwert abgezogen werden können. Die PWM-Einheit kann, wie schon erwähnt, den A/D-Wandler bei einem erneuten Laden der Pulsweite anstoßen, um beide Ereignisse zu synchronisieren. Damit die Zentraleinheit nicht belastet wird, kann der A/D-Wandler untere und obere Grenzwerte überwachen und nur dann einen Interrupt an die CPU signalisieren, wenn die Grenzen überschritten werden. Für das Aufnehmen der umgesetzten Werte stehen acht Ergebnisregister zur Verfügung. Aus Bild 2 ist die Lage der A/D-Umsetzer, Analogblöcke usw. ersichtlich.

Der richtige Dreh

Will man effizient unterschiedliche elektrische Motoren ansteuern, be-nötigt man dafür spezielle PWM-Einheiten. Diese müssen drei Paar Kanäle (6 Stück), Totzeit-Erzeugung, Polaritätskontrolle, Unterstützung von flanken- (edge-aligned) und mittenausgerichteten Signalen (center-aligned), Fehlereingänge, die die PWM schnell abschalten können, hohe Auflösung (15 bit) und hohe PWM-Frequenzen (bis zu 96 MHz) unterstützen. Die 56F801x-Signalcontroller integrieren diesen Satz an Funktionen und sind damit geeignet, ACI-Motoren (Wechselstrom-Induktionsmotoren), bürstenlose und bürstenbehaftete Gleichstrommotoren, SR- und VR-Motoren (Switched- und Variable-Reluctance-Motoren) sowie Schrittmotoren anzusteuern. Die Fehlereingänge verhindern, dass die Endstufen im Fehlerfall übersteuert werden. Sie funktionieren selbst dann noch, wenn ein Verlust der Taktversorgung eintritt.

5200202_03.jpg
Bild 2. Das Chipfoto eines DSC-Bausteins der Familie 56F801x zeigt die lokale Aufteilung von A/D-Umsetzer, Analogblö-cken, SRAM und Flash-Speicher. Die CPU ist Teil der Standard-CMOS-/Standardzellen-Logik.

  1. DSP im Mikrocontroller-Pelz
  2. Gedächtnis des Controllers
  3. Sicherheit geht über alles

Jetzt kostenfreie Newsletter bestellen!