32-bit-Mikrocontroller mit flexiblem Timer-Konzept erleichtert die Erzeugung von PWM-Signalen Vielseitige Motorsteuerungen

Leistungsfähige Mikrocontroller bieten Peripheriefunktionen für die Erzeugung von PWM-Signalen, die für die Steuerung verschiedenster Motoren genutzt werden. Ein flexibler Design-Ansatz mit Timer-Array-Modulen ermöglicht in neuen 32-bit-Mikrocontrollern das effektive Management verschiedenster Motoren. Funktionen, die sonst typischerweise von speziellen Peripheriemodulen bereitgestellt werden, lassen sich mit diesen Timer-Modulen einfach realisieren.

32-bit-Mikrocontroller mit flexiblem Timer-Konzept erleichtert die Erzeugung von PWM-Signalen

Leistungsfähige Mikrocontroller bieten Peripheriefunktionen für die Erzeugung von PWM-Signalen, die für die Steuerung verschiedenster Motoren genutzt werden. Ein flexibler Design-Ansatz mit Timer-Array-Modulen ermöglicht in neuen 32-bit-Mikrocontrollern das effektive Management verschiedenster Motoren. Funktionen, die sonst typischerweise von speziellen Peripheriemodulen bereitgestellt werden, lassen sich mit diesen Timer-Modulen einfach realisieren.

Den steigenden Anforderungen in der Automobil- und Industrieelektronik entsprechend hat Infineon die etablierte TriCore-basierte AUDO-Familie (Automotive UnifieD prOcessor) mit den Derivaten TC1775 und TC1765 zu einem skalierbaren Familienkonzept der nächsten Generation (NG) weiterentwickelt. Als erstes Mitglied der neuen erweiterten Mikrocontroller-Familie bringt das Unternehmen den TC1796 (Bild 1) auf den Markt, weitere Derivate werden folgen.

Der mit 150 MHz getaktete 32-bit-TriCore-Prozessorkern im TC1796 mit interner Havard-Architektur ist durch seinen 64 bit breiten Local Memory Bus (LMB) optimal an den getrennten Programmspeicher (PMU) und Datenspeicher (DMU) angekoppelt. Der TriCore bietet durch die „LFI-Bridge“ einen 32 bit breiten Pfad zur Kommunikation mit den maximal mit 75 MHz getakteten Peripherie-Modulen. Der TC1796 ist mit 2 Mbyte Programm- und 2 x 64 Kbyte Daten-Flash-Speicher ausgestattet.

Zur Unterstützung des Hauptprozessors hat der Peripherieteil einen 75 MHz schnellen 32-bit-Interrupt-Prozessor, den Peripheral Control Processor (PCP2 – eine Weiterentwicklung des im TC1775 implementierten PCP), der den TriCore von seiner echtzeitkritischen Interrupt-Last weitgehend befreit. Damit lassen sich der flexible Timer (GPTA), die seriellen Schnittstellen, die A/D-Wandler und das mit vier externen CAN-Knoten ausgestattete MultiCAN-Modul – durch deren Interrupts getriggert – steuern.

GPTA – der Zeitmanager

Das General Purpose Timer Array (GPTA) stellt autonome und komplexe Funktionen wie z.B. Signalerzeugung, -erfassung und Filterung, Vorverarbeitung sowie Takterzeugung zur Verfügung. Erfasste Sensorsignale müssen vor der weiteren Verarbeitung aufbereitet werden. Zu diesem Zweck ermöglicht das GPTA die softwaremäßige Verknüpfung universeller Timer-Funktionen. Das GPTA kann die Systemstruktur vereinfachen, indem es z.B. sonst erforderliche ASICs ersetzt. Dies gilt insbesondere in Kombination mit dem PCP2. Die verfügbare Verarbeitungsleistung steht zu einem größeren Teil der Anwendungs-Software zur Verfügung und wird weniger von den I/O-Funktionen beansprucht.

Der neue TC1796 nutzt das schon vom TC1775 her bekannte GPTA mit 32 Global Timer Cells (24 bit) und 64 Local Timer Cells (16 bit) für ein flexibles Timer-Konzept, das sich zur Erzeugung unterschiedlichster PWM-Signale zur Motorsteuerung besonders eignet. Bild 2 zeigt die gesamte Takterzeugungseinheit (GPTA).

Flexibles Timer-Konzept

Es gibt mehrere Methoden, um Timer-Funktionen in einem Mikrocontroller zu implementieren. Der prinzipielle Unterschied besteht in dem Maß an „Intelligenz“ und Flexibilität sowie in der erforderlichen CPU-Belastung. Das Spektrum reicht von relativ einfachen Timern bis hin zu komplexen Timer-Units, die im Mikrocode abgelegt sind. Die komplexen Mikrocode-Timer benötigen zwar mehr Chipfläche und sind etwas aufwendiger in der Programmierung, sind dafür aber sehr flexibel und leistungsfähig bei der Implementierung von komplexen Funktionen.

Die im TC1796 verwendete Timer-Lösung mit dem GPTA ist eine weitgehend skalierbare Architektur. Sie besteht aus einer Einheit für die Takterzeugung und einer für die Signalgewinnung. Das GPTA bietet eine flexible Signalfilterung und eine hochauflösende Signalerfassung. Durch den Einsatz einer PLL wird z.B. die Auflösung von Eingangssignalen erhöht. Die universelle Zellstruktur erfüllt vielfältige Zähler-, Capture-, Compare- und PWM-Aufgaben.

Durch den Einsatz der implementierten „Filter Prescaler Cells“ (FPC) lässt sich eine flexible digitale Eingangsfilterung erzielen. Das Tracking von rotierenden Wellen mit der entsprechenden Codierung für Vorwärts und Rückwarts lässt sich z.B. effektiv mit den Zellen für die „Phase Discrimination Logic“ (PDL) erreichen. Die PDL-Zellen können zwei oder drei Sensoreingänge decodieren.

Das GPTA umfasst zwei Zell-Arrays für die Signalerzeugung, das Global Timer Cell Array (GTC) und das Local Timer Cell Array (LTC). Beim GTC sind alle Zellen so verbunden, dass sie als zwei globale Timer fungieren, während beim LTC jede Zelle als lokaler Timer programmiert werden kann. So kann jede Zelle wiederum als Timer-Modul angesehen werden, das für verschiedene Silizium-Implementierungen einfach hinzugefügt oder entfernt werden kann. Damit lassen sich die Timer-Module effizient an die jeweilige Applikation anpassen, und zwar ohne „Over-head“ bei Funktion oder Chipfläche.

Durch das LTC-Array können alle Arten von PWM-Signalen erzeugt werden. Dabei reicht die Skalierbarkeit von einer Software-unterstützten PWM-Signalerzeugung mit einem Tastverhältnis (Duty Cycle) von 10 bis 90 % – wobei nur eine LTC-Zelle erforderlich ist – bis hin zu autonomen kohärenten schnellen PWM-Signalen mit einem Tastverhältnis von 0 bis 100 %, die fünf LTC-Zellen komplett in Hardware erfordern. Der GPTA-Ansatz ermöglicht eine ausgewogene Design-Implementierung zwischen Hardware- und Software-Ressourcen. Der PCP2 ist die ideale Ergänzung zum GTPA, indem er schnelle Interrupt-getriebene Software-Routinen ausführen kann.

Das LTC-Array bietet ein Feld von Zellen, die sowohl als Timer, Capture-Elemente als auch als Komparatoren arbeiten und auf verschiedene Weise miteinander verbunden werden können. Damit lassen sich sehr komplexe Signale, wie PWM-Signale, relativ einfach erzeugen. Das LTC-Array umfasst 64 LTCs, die über einen Bus sowie vier Signalleitungen miteinander verbunden werden.

Ein Standard-PWM-Signal besteht aus einem periodischen Signal mit einer Länge P und einer spezifizierten „Duty-Time“ (D) am Beginn jeder Periode, für die das Signal „High“ ist. Für die Erzeugung eines derartigen PWM-Signals müssen zwei Zeitmarken gesetzt werden, an denen der Signalpegel wechselt. Am Startpunkt Null ist bei einem Standard-PWM-Signal das Ausgangssignal auf High. Sobald die Duty-Time-Grenze erreicht ist, wechselt das Signal auf „Low“ und am Ende der Periode beginnt der Vorgang von neuem. Ein Standard-PWM-Signal kann z.B. mit drei LTC-Zellen implementiert werden, eine fungiert als Timer, während die beiden anderen als Komparatoren die Zeit-Limits für die Periode und den Duty-Cycle feststellen (Bild 3). Die Komparatoren geben dann ein spezielles Signal aus, wenn die vom Timer vorgegebene Zeit mit ihrem internen Wert übereinstimmt.

Neben Standard-PWM-Signalen gibt es einige Abwandlungen, die für spezielle Steuerungsaufgaben hilfreich sind. Bei einem invertierten PWM-Signal ist z.B. der Ausgang während der Duty-Time auf Low und den Rest der Periode auf High. Damit werden auch die „Set“- und „Reset“-Vorgänge getauscht. Bei einem „center-aligned“ PWM-Signal befindet sich die Duty-Time genau in der Mitte der Periode (Bild 4). Dieses Signal kann nicht direkt von einem Standard-PWM-Signal abgeleitet werden, da hier für drei Zeitpunkte entsprechende Aktionen erforderlich sind. Aus diesem Grund benötigt man auch eine anders aufgebaute Komparator-Zelle. Es sind insgesamt vier LTCs erforderlich: die erste Zelle für den Basis-Timer, danach der Komparator für die Periode und zwei weitere Komparator-Zellen, die für die Reset- und Set-Aktionen verantwortlich sind.

Ein kohärenter Update ist eine schnelle Methode, um PWM-Parameter zu ändern und gleichzeitig die Kohärenz des Ausgangssignals zu erhalten. Die neuen Parameter werden am Ende einer Periode aktiv, nachdem die Änderungsanforderung auftritt. Um einen kohärenten Update zu ermöglichen, müssen die Komparator-Zellen dupliziert und einige zusätzliche Signale eingeführt werden.