Intelligente Peripherie für MCUs Timing-Quellen mittels Rampen­generator

Der programmierbare Rampengenerator ist eine hochflexible analoge Peripherie, die Anwendungen vereinfacht, wenn eine lineare Spannungsänderung erforderlich ist. Ist er einmal konfiguriert, kann er unabhängig vom der CPU betrieben werden. Dieser Artikel zeigt unterschiedliche Einsatzmöglichkeiten.

Die Anstiegs- und Abfallzeiten des Generators lassen sich durch Steuerung einer integrierten Konstantstromquelle dynamisch einstellen. Flexible Ein- und Ausgabeoptionen bieten die Freiheit, externe Sig-nalquellen anzuschließen oder Signale anderer MCU-Peripherie zu verwenden. Systeme werden damit reaktionsfähiger, mögliche Störquellen und die Größe der Anwendung werden minimiert, da sich die Anzahl externer Bauteile verringert. Bild 1 zeigt das Blockschaltbild des programmierbaren Rampengenerators (PRG). 

Ein nützliches Tool für die Konfiguration des PRG ist der MPLAB-Code-Konfigurator (MCC), ein Plug-in für die integrierte Entwicklungsumgebung (IDE) MPLAB X (Bild 2). Sie erzeugt Treiber für die Steuerung und Reglung der Peripherie in Microchips PIC MCUs, wie beispielsweise für den PRG. Mit ihm lassen sich verschiedene Funktionen realisieren, die jeweils über den MCC eingerichtet werden. 

Der Dreieckgenerator 

 Ein Dreieckgenerator (TWG für Triangular Wave Generator, Bild 3) erzeugt ein periodisches, nicht sinusförmiges Signal in Dreiecksform und gleichen Anstiegs- und Abfallzeiten. Um diese Signalform zu erzeugen, muss der PRG in einem abwechselnden Anstiegs- und Abfallmodus konfiguriert werden. Der MCC ermöglicht dabei die Konfiguration der ansteigenden (RS - Rising) und abfallenden (FS - Falling) Timing-Eingangsquellen. Der PRG bestimmt die Oszillationsfrequenz am Ausgang, indem diese beiden Spannungsreferenzen verwendet werden, die den Anstieg und Abfall der Rampe auslösen. Diese Referenzen bestimmen auch die minimalen und maximalen Spannungsspitzen des Dreiecksignals. 

Liegt der PRG-Ausgang unterhalb des durch einen D/A-Wandler (DAC) eingestellten Spannungspegels, wird der RS-Eingang des PRG angesteuert und der interne Kondensator von der Stromquelle geladen. Übersteigt der PRG-Ausgang die feste Spannungsreferenz (FVR), wird der FS-Eingang ausgelöst und der interne Kondensator wird durch die Stromsenke aufgeladen.

Da der PRG keinen bestimmten Ausgangspin hat, wird der Ausgang des PRG durch einen mit Verstärkungsfaktor Eins konfigurierten Operationsverstärker gepuffert. Die Ausgangsfrequenz kann berechnet werden, aber ihre Genauigkeit kann durch verschiedene Faktoren wie den parasitären Widerstand des Kondensators, Rauschen, Produktionsabweichungen und die Temperatur beeinflusst werden.

Der Frequenzwert variiert durch Ändern des DAC-Ausgangspegels oder der Flankensteilheit (SR; Slope Rate) des PRG. Die SR der Ausgangsrampe wird über die Stromeinstellungen des PRG konfiguriert. Bild 4 beschreibt das ideale Verhalten. Das erzeugte Dreiecksignal besteht aus periodischen und symmetrischen abwechselnd steigenden und fallenden Rampen.

Die Maximal- und Minimalspannungen werden durch VFVR bzw. VDAC definiert. Die Anstiegs- und Abfall-Triggerpunkte werden eingestellt, wenn das Signal eine maximale oder minimale Spannung erreicht. Verschiedene Einstellungen der Steigungsrate im MCC ändern die Frequenz. Eine VDAC-Änderung führt auch zu einer Frequenzänderung, aber die Mindestspannung wird entsprechend ansteigen oder abnehmen.

Die Oszillationsfrequenz des PRG hängt von der gewählten Stromsenke und Stromquelle, der internen Kapazität und den eingestellten Triggerpunkten ab. Durch zusätzliche Kapazität am Ausgang des PRG lassen sich niedrigere Frequenzbereiche erzielen. Mit einer konfigurierbaren Logikzelle (CLC, Bild 5) und einem externen Kondensator C1 können die vom DAC und FVR eingestellten Spannungsauslösepunkte die ansteigenden und fallenden Rampen auslösen. C1 wird am Ausgang des Operationsverstärkers und parallel zum internen Kondensator des PRG hinzugefügt. Die zusätzliche Kapazität verlängert die Zeit zwischen Trigger-Ereignissen und erzeugt eine niedrigere Frequenz für FOUT.

Durch anschließen des CLC am Ausgang der Komparatoren kann der Funktionsgenerator Rechtecksignale und Pulse erzeugen. Der CLC ist als SR-Latch konfiguriert und die niederfrequente FOUT wird aus seinem Ausgang entnommen. Ähnlich wie beim PRG lösen die Spannungsreferenzen die Set- und Reset-Eingänge aus. FOUT wird gesetzt, wenn die Spannung bei C1 (OPAOUT) unter den DAC-Spannungspegel fällt. Sobald OPAOUT über FVR steigt, wird FOUT gelöscht. 

Der spannungsgesteuerte Oszillator 

Ein spannungsgesteuerter Oszillator (VCO, Bild 6) ist ein elektronischer Oszillator, bei dem eine Eingangssteuerspannung seine Oszillationsfrequenz bestimmt. Die momentane Frequenz des VCO ist so ausgelegt, dass sie linear proportional zur momentanen Spannung ist: Je höher die Eingangsspannung, desto größer ist die Oszillationsfrequenz. Der PRG-Betrieb für die VCO-Implementierung ist ähnlich der TWG – mit der Ausnahme, dass die Ausgangsfrequenz aus dem Slope-Rate-Latch der CLC genommen wird und eine variable Spannung VCNTRL den RS-Eingang des PRG einstellt. 

Eine höhere VCNTRL verringert die Zeit, die benötigt wird, um einen Anstieg erneut auszulösen. Folglich wird das Umschalten zwischen Stromquelle und Senke beschleunigt und die Oszillationsfrequenz erhöht. Die Beziehung zwischen der Steuerspannung und der Ausgangsfrequenz ist in Bild 7 dargestellt – mit drei PRG-Flankensteilheitswerten. Der SR-Wert kann für einen gewünschten Frequenzbereich variiert werden. Niedrigere SR-Werte können Frequenzen von wenigen Hertz bis etwa 500 kHz erzeugen. Größere SR-Werte können sich jedoch bis in den MHz-Bereich erstrecken.

Mit zwei Steuerspannungswerten und einer konstanten Steigungsrate verringert eine Abnahme von VCNTRL den VCO-Frequenzausgang des CLC. 

Spannungsgesteuerter Tastgrad-Oszillator 

Ein Standard-VCO-Schalkreis (Bild 8) verändert die Oszillatorfrequenz direkt. Für einen spannungsgesteuerten Tastgrad-Oszillator (VCDCO) modifiziert seine Steuerspannung den Tastgrad der Ausgangspulse. 

Für den VCDCO wird ein ähnlicher Aufbau wie beim VCO verwendet, mit der Ausnahme, dass eine Zeitbasis den Start des Ausgangsimpulses auslöst. Die PWM- und TMR-Module legen die Periode und Frequenz des Oszillators fest, während der PRG seinen Tastgrad durch VCNTRL festlegt.

Die steigende PWM-Flanke löst den PRG-RS-Eingang aus und stellt den CLC ein. Überschreitet der PRG-Ausgang VCNTRL, so wird der FS-Eingang ausgelöst, der PRG-Kondensator kurzgeschlossen und der CLC zurückgesetzt. Der PRG- und CLC-Ausgang bleiben bis zum nächsten TMR-Überlauf und positiven PWM-Flanke auf Low.

Eine höhere VCNTRL verlängert den Flankenanstieg und die positive Pulsbreite des Ausgangs. Der Tastgrad wird als Verhältnis von VCNTRL zu VMAX berechnet. Um den Tastgradbereich zu erhöhen, sollte die Timer-Periode gleich der Flankenanstiegszeit sein, wenn sie VMAX mit der gegebenen Steigungsrate erreicht.

Wenn zwei verschiedene VCNTRL-Werte verwendet werden, kann die RS-Trigger-Sequenz bei beiden Bedingungen aufgrund der konstanten Periode des Timers und der PWM gleich sein. Allerdings kann aufgrund der konstanten Steigungsrate und der höheren VCNTRL eine zusätzliche Verzögerung vor dem FS-Trigger auftreten.

Die PRG-Flankensteilheit und die TMR2-Periodenwerte hängen vom erforderlichen Frequenz- und Tastgradbereich des VCDCO ab. Der PWM-Tastgrad kann so niedrig eingestellt werden, dass der RS-Eingang des PRG ausgelöst wird. FOUT wird weiterhin einem SR-Latch der CLC entnommen. Die PWM- und CMP-Ausgänge liefern auch die Set- und Reset-Eingänge für den CLC. 

Der asynchrone Einzelimpuls 

Ein asynchroner Einzelimpuls (AOS, Bild 9) erzeugt einen einmaligen Ausgangsimpuls, wenn er extern ausgelöst wird. Als monostabiler Multi-Vibrator hat der AOS einen stabilen Zustand. Wenn der stabile Zustand auf Low ist, steuert ein externer Trigger den Ausgang für einen bestimmten Zeitraum auf High. Nach einer Periode kehrt der AOS in seinen stabilen Zustand zurück und wartet auf das nächste Triggerereignis. 

Der Rücksetzzustand des CLC ist der stabile Zustand des AOS. Ein externer Trigger setzt den RS-Eingang des PRG und setzt den Ausgang des AOS über den CLC. Erreicht der PRG die FVR, wird die FS-Eingangsquelle angesteuert, der interne Kondensator im PRG kurzgeschlossen und der CLC-Ausgang zurückgesetzt. Die Dauer der Pulsbreite hängt von der FVR-Spannung und der PRG-Flankensteilheit ab.

Ein externer Spannungstrigger kann die PWM- und TMR-Module ersetzen, um die periodische Trigger-Sequenz der PRG RS-Eingangs- und CLC-Einstellquellen zu entfernen. Die Ausgangspulse werden dem CLC-Ausgang entnommen. 

Spannungsgesteuerter Einzelimpuls 

Das nächste Beispiel ist eine Aufwertung des vorherigen Einzelimpulses. Ein Eingang fungiert als Trigger, während ein zusätzlicher Eingang die Periode des Einzelimpulses festlegt. Eine Anwendung des One-Shot (Bild 10) steuert die Einschaltzeit eines CrCM-PFC-Reglers (Critical Conduction Mode). 

Die Eingangsspannung VCNTRL bestimmt die Periode des Einzelimpulses oder die Einschaltzeit des Ausgangs. Ein höherer VCNTRL-Wert erzeugt eine längere Einschaltzeit. Erreicht das ansteigende Rampensignal des PRG den Wert VCNTRL, wird der PRG-Kondensator kurzgeschlossen und der COG-Tastgrad (Complementary Output Generator) fertiggestellt. Der Ausgang bleibt Low, bis ein Signal die ansteigende PRG-Flanke und den Beginn der COG-Periode erneut auslöst.

In einem Conduction-Controller steuert der COG das Schalten des MOSFETs. Das Rückkopplungssignal des Fehlerverstärkers wird an VCNTRL angelegt. Ein konstantes Rückkopplungssignal führt zu einer festen Einschaltzeit. Während des Ein- und Aus-Zustands steigt der Induktorstrom auf die Eingangsreferenzspannung bzw. fällt auf Null zurück. Bild 11 beschreibt das Verhalten des Induktorstroms bei einem CrCM-Regler.

Um die Peripherie über den MCC zu konfigurieren, werden die PWM- und TMR-Module durch einen zweiten CMP ersetzt. In der Liste positiver und negativer Eingangsquellen wird ein CINx+ Pin bzw. FVR ausgewählt. Anstelle des CLC wird ein COG-Modul gewählt und die Komparatoren als steigende und fallende Ereignisquellen eingestellt. Für eine Anwendung mit Stromrichter ist die COG-Peripherie eher geeignet als ein Ausgangstreiber. 

Fazit 

 Der PRG ermöglicht die einfache Erzeugung von Spannungsrampen als Referenzsignale oder Timing-Quellen. Diese Funktionen lassen sich mit dem benutzerfreundlichen MCC einfach konfigurieren. Zusammen mit anderer Peripherie der Microchip PIC MUCs können weitere Anwendungen auf Basis des PRG untersucht werden. (fr)
 
Weitere Informationen 

Anwendungshinweise „Beispielfunktionen mit dem programmierbaren Rampengenerator implementieren“: http://ww1.microchip.com/downloads/cn/AppNotes/cn587053.pdf

Microchips grafische Programmierumgebung MPLAB Code Configurator (MCC): http://www.microchip.com/mplab/mplab-code-configurator