PPC32 Mezzanine-Board für komplexe Timing-Aufgaben
In den frühen 1990er Jahren entwickelte Motorola einen
Timing-Coprozessor für Mikrocontroller-Systeme (MCU), die sogenannte
Time Processor Unit (TPU).
Die TPU erzeugt durch Abarbeitung eines Microcode-Programms, weitgehend
unabhängig von der CPU, komplexe Timing-Signale. Die Signale, bzw. die
Zähler, welche diese Signale generieren, können untereinander oder mit
externen Signalen verknüpft bzw. auf diese synchronisiert werden.
Sie sind über einen Registersatz durch die CPU des Mikrocontrollers
beeinflussbar.
Eine für Leistungselektronik sehr interessante Anwendung ist beispielsweise
eine mehrkanalige Pulsweiten-Modulation mit frei einstellbarer Phasenlage
der einzelnen Kanäle. So kann bei der Ansteuerung einer Umrichterbrücke
der Ripple des Laststroms und damit das Geräusch der angeschlossenen Maschine
oder auch die EMV-Emission minimiert werden.
Implementiert wurde die TPU beispielsweise in den MCUs der MC6833x-Familie.
In den vergangenen 20 Jahren wurde die TPU zur eTPU2 weiter
entwickelt.
Diese findet sich in MCUs der PowerPC32-Familie (PPC32), die von NXP und ST
für komplexe Steuerungsaufgaben in Automotive-Applikationen angeboten werden,
beispielsweise für die Ansteuerung von Verbrennungsmotoren.
Die TPU ist auch sehr gut für Anwendungen in der Leistungselektronik geeignet. Eine Vielzahl von Bibliotheks-Funktionen sowie die Möglichkeit eigenen Microcode für die TPU zu erzeugen, versprechen die Lösung hochkomplexer Timing-Aufgaben.
Um schnell und flexibel Versuchsträger bzw. Demonstrator-Boards aufbauen zu können, wurde ein kompaktes Mezzanine-Bord mit einer SPC563Mx bzw. MPC5634Mx-MCU entworfen und aufgebaut. Fotos eines Exemplars des Boards sehen Sie am rechten Rand dieser Seite.
Auf dem Board befinden sich neben der MCU die folgenden Baugruppen:
Entwicklungsumgebung
Als Entwicklungsumgebung wird eine Portierung des GCC 4.9.2 für den PPC32-Core
e200 (e200-gcc) auf einem Linux-PC verwendet (Quelle: github).
Für die Programmierung bzw. den Download der Firmware auf die MCU wurden
eigene Start-Up- bzw. Konfigurations-Module, Linkerskripte und Software-Tools
für den Host-PC (Linux) entwickelt.
Die Firmware kann über die eSCI-Schnittstelle (UART/RS232) in das SRAM der MCU
geladen werden und wird anschließend durch die MCU ausgeführt.
Eine in das Host-Software-Tool zum Hochladen der Firmware integrierte einfache
Terminalfunktion ermöglicht die Kommunikation mit der MCU und erlaubt so die
schnelle und einfache Erprobung neuer Firmwaremodule auf der MCU.
Im nächsten Schritt wird die Programmierung des MCU-Flash-ROMs unter Verwendung
der C90LC-APIs von NXP bzw. ST implementiert, so dass im Flash-ROM der
MCU ein Echtzeit-Betriebssystem (RTOS) installiert werden kann.
Abschließend können dann die gewünschten eTPU2-Funktionen
auf der MCU implementiert und erprobt werden.
Gerne erstelle ich für Sie mit dieser Hard- und Software-Basis Funktionsmuster bzw. Demonstratoren zur Lösung Ihrer Timing-Aufgaben und begleite Sie bei der Umsetzung in ein Serienprodukt.
Aktualisiert: 2020-08-05