Analoge Signalverarbeitung im μC

MSP430 mit programmierbaren Analogschaltungen

18. September 2018, 10:30 Uhr | Harry Schubert
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Einfache Programmierung per SAC-Treiberbibliothek

Alle FRAM-Mikrocontroller der MSP430-Reihe unterstützen eine Treiberbibliothek (DriverLib), um den Entwicklern bei der Firmware-Programmierung zu helfen. Die MSP430-Treiberbibliothek ist eine abstrahierte, einfach anzuwendende Programmierschnittstelle, die den Entwicklern den Umgang mit den einzelnen Bits und Bytes der MSP430-Hardware-Register erspart. Sie erlaubt die Programmierung der Peripheriefunktionen über einfache Funktionsaufrufe.

Bei einigen MSP430-Mikrocontrollern, wie zum Beispiel dem MSP430FR2355, ist eine komplette Peripherie-Treiber­bibliothek in das ROM integriert. Entwickler können die ROM-residente Treiberbibliothek nutzen, um beispielsweise bei hohen Taktfrequenzen ROM-Befehle in einem Zyklus auszuführen oder um die FRAM-Kapazität für zusätzlichen Applikationscode frei zu halten. Für das SAC-Modul stehen insgesamt mehr als 20 Funk­tionen für das API (Application Programming Interface) zur Ver­fügung. Diese dienen unter anderem zum Initialisieren, Aktivieren und Deaktivieren der SAC-Module, zum Einstellen der SAC-Betriebsart, zum Konfigurieren der SAC-Module und zum Einstellen der DAU-Referenz sowie zum Auswählen des Power-Modus usw.

Jede API-Funktion ist vollständig geprüft und dokumentiert. Die Tatsache, dass die FRAM-residente Treiberbibliothek uneingeschränkt quelloffen ist, kann Entwicklern beim Verständnis der Vorgänge helfen, die unterhalb der Abstraktionsschicht ablaufen.

Entwickler haben Zugriff auf die ROM-residenten Funktionen, indem sie die Header-Datei der Treiberbibliothek in ihre Projekte einbinden und einen Link zur Attributbibliothek einfügen. Weitere Informationen über die SAC-API-Funktionen enthält [1].

SAC-Modul in der allgemeinen Betriebsart

Schalplan des Analog-Combo-Moduls im MSP430 als Operationsverstärker programmiert.
Bild 2. In der allgemeinen Betriebsart arbeitet das SAC-Modul wie ein Operationsverstärker mit unipolarer Versorgungsspannung – nur die mit Farbe hervorgehobenen Bauteile und Verbindungen sind aktiv. Um eine vollständige OPV-Schaltung, z.B. als invertierender oder nichtinvertierender Verstärker, zu realisieren, werden externe Bauelemente benötigt.
© Texas Instruments

In Bild 2 ist die Konfiguration eines SAC-Moduls in der allgemeinen Betriebsart dargestellt. In dieser Betriebsart sind OAx+ und OAx- dedizierte Signaleingänge. Wie der rot hervorgehobene Teil dieser Schaltung zeigt, werden der interne DAU und die Spannungsteilerwiderstände für die Rückkopplung nicht verwendet. Für den Einsatz des SAC-Moduls in der allgemeinen Betriebsart gibt es keinerlei Einschränkungen und es besteht kein Unterschied zur Verwendung eines externen OPV mit unipolarer Versorgungsspannung.

Mit dem SAC-Modul in der allgemeinen Betriebsart und externen Bauelementen lassen sich unterschiedliche Schaltungen wie zum Beispiel ein invertierender Verstärker, ein nichtinvertierender Verstärker, ein Filter usw. realisieren. Meist müssen die Vorspannung und ein Gegenkopplungswiderstand hinzugefügt werden.

Die Art der Schaltung wird durch die externen Bauteile und Verbindungen bestimmt. Von einer externen Verstärkerschaltung auf das integrierte SAC-Modul in der allgemeinen Betriebsart zu wechseln, bereitet keinerlei Schwierigkeiten. Verglichen mit einem externen Verstärker, lässt sich mit dem SAC-Modul der gleiche Schaltungstyp realisieren, wobei Materialkosten und Leiterplattenfläche eingespart werden.

Wird ein SAC-Modul nicht genutzt, kann es im Steuerregister des MSP430-Mikrocontrollers deaktiviert werden, um Strom zu sparen. Ein SAC-L1 unterstützt ausschließlich die allgemeine Betriebsart. Es enthält weder den DAU noch die Widerstände für den Spannungsteiler für die Rückkopplung.

Um das SAC-Modul für die allgemeine Betriebsart zu konfigurieren, müssen die Bits SACEN, OAEN, PMUXEN und NMUXEN im SAC-OA-Steuerregister (SACxOA) gesetzt werden. Die Bits PSEL und NSEL, ebenfalls im SACxOA-Register, werden so konfiguriert, dass die externen Pins standardmäßig als OPV-Eingänge ausgewählt sind. Das OAPM-Bit dient zur Wahl zwischen hoher Anstiegsgeschwindigkeit und niedriger Stromaufnahme. Es aktiviert ein größeres Verstärkungs-Bandbreiten-Produkt und eine höhere Anstiegsgeschwindigkeit auf Kosten einer höheren Leistungsaufnahme.

Die Codesequenz im Listing zeigt, wie das SAC-Modul für den allgemeinen Betrieb mit API-Funktionen der Treiberbibliothek konfiguriert wird. Pin-Funktionen müssten noch vor dem Konfigurieren des SAC-Moduls ausgeführt werden – in diesem Codebeispiel wird allerdings keine Pin-Funktion benötigt. Die verschiedenen MSP430-Mikrocontroller weisen unterschiedliche Pin-Definitionen auf – Einzelheiten dazu finden Entwickler im jeweiligen Datenblatt.

//Select external source for both positive and negative inputs
SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_EXTERNAL, SAC_OA_NEGATIVE_INPUT_SOURCE_EXTERNAL);
//Select low speed and low power mode
SAC_OA_selectPowerMode(SAC0_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER);
// Enable OA
SAC_OA_enable(SAC0_BASE);
// Enable SAC
SAC_enable(SAC0_BASE);

 

Listing. Codebeispiel für die Konfiguration des SAC-Moduls in der allgemeinen Betriebsart als Operationsverstärker. (Quelle: Texas Instruments)


Puffer-Modus

Schaltplan des Analog-Combo-Moduls im MSP430 als Pufferverstärker programmiert.
Bild 3. Im Puffermodus wird der Ausgang des Operationsverstärkers direkt mit dem invertierenden Eingang verbunden. Über den Multiplexer M wird der invertierende Eingang in der Stellung „Spannungsfolger“ freigeschaltet.
© Texas Instruments

Bild 3 zeigt das SAC-Modul in der Betriebsart als Pufferverstärker. Ein Pufferverstärker arbeitet mit Eins-Verstärkung und kann auch als Spannungsfolger bezeichnet werden. Spannungsfolger werden häufig zur Impedanzanpassung, zum Anheben der Ausgangsstromstärke sowie zum Entkoppeln von Stufen zur Signalverarbeitung von Leistungsstufen verwendet.

Der rot hervorgehobene Teil der Schaltung in Bild 3 verdeutlicht, dass der nichtinvertierende Eingang des OPV über den Multiplexer P mit dem Anschluss für den nichtinvertierenden Eingang (OAx+) verbunden (PSEL = 00b) ist. Zum Puffern eines zweiten internen SAC-Modus (SAC-Puffermodus) würde der Multiplexer P (PSEL = 10b) den nichtinvertierenden Eingang des OPV mit dem Ausgang des SAC-Moduls verbinden, mit dem dieses SAC-Modul als Paar zusammenarbeitet.
Der Ausgang des OPV ist nicht mit den Widerständen des Spannungsteilers verbunden, und über die MSEL-Bits wird der Multiplexer M auf „Spannungsfolger“ gestellt (MSEL = 01b). Der Ausgang des OPV (OAxO) kann an einen externen Anschluss herausgeführt oder einem Eingang eines weiteren internen OPV zugeführt werden.

Um das SAC-Modul für den Puffermodus zu konfigurieren, muss – über die NSEL-Bits zum Steuern des Multiplexers N – der invertierende Eingang des OPV mit dem Spannungsteiler verbunden werden (NSEL = 01b).

Nichtinvertierender programmierbarer Verstärker

Schaltplan des Analog-Combo-Moduls im MSP430 als prorammierbarer Verstärker programmiert.
Bild 4. Als programmierbarer nichtinvertierender Verstärker wird der Fußpunkt des Spannungsteilers über den Multiplexer M mit Masse verbunden. Über die drei Bits im Register SACxPGA lässt sich der Verstärkungsfaktor in acht Stufen zwischen 1 und 33 einstellen.
© Texas Instruments

Die Betriebsart als nichtinvertierender Verstärker (Bild 4) erlaubt es, ein Signal ohne Invertierung zu verstärken. Dies ist für Verstärker mit unipolarer Versorgungsspannung sinnvoll, bei denen keine negativen Spannungen zulässig sind. Eine externe Gegenkopplung ist in dieser Betriebsart nicht erforderlich, da der interne konfigurierbare Spannungsteiler den Verstärkungsfaktor bestimmt. Der Verstärkungsfaktor kann in acht Stufen, von 1 bis 33, gewählt werden.

Wie am rot hervorgehobenen Teil der Schaltung in Bild 4 zu erkennen ist, wird über den Multiplexer P als Si­gnaleingang der nichtinvertierende Anschluss OAx+ gewählt. Alternativ wäre es auch möglich, den Ausgang eines OPV von einem weiteren (gepaarten) SAC-Modul zu wählen.

Der invertierende Eingang des OPV muss über den Multiplexer N mit dem Spannungsteiler verbunden sein (NSEL = 01b) und über den Multiplexer M wird der Fußpunkt des Spannungsteilers auf Masse geschaltet (MSEL = 10b). Die Verstärkung des programmierbaren Verstärkers wird durch die GAIN-Bits im Steuerregister SACxPGA konfiguriert.

Invertierender programmierbarer Verstärker

Schaltplan des Analog-Combo-Moduls im MSP430 zur Erzeugung der Vorspannung am OPV-Eingang.
Bild 5. Für den invertierenden programmierbaren Verstärker wird eine Vorspannung am Eingang des Operationsverstärkers benötigt, da die Schaltung nur mit einer unipolaren Stromversorgung betrieben wird. Diese Vorspannung kann mit dem integrierten 12-bit-DAU erzeugt werden.
© Texas Instruments

In der Betriebsart als invertierender programmierbarer Verstärker (Bild 5) können Signale verstärkt und dabei invertiert werden. Da beim SAC-Modul keine negativen Spannungen an den Eingängen erlaubt sind, ist eine Vorspannung an den Verstärkereingängen unerlässlich, wenn Signale mit negativen Anteilen verstärkt werden sollen.

Diese Vorspannung kann entweder von einer externen Schaltung zur Verfügung gestellt werden oder vom internen DAU. In der Schaltung in Bild 5 ist mit roter Farbe hervorgehoben, wie der interne DAU genutzt wird, um die erforderliche Vorspannung am nichtinvertierenden Eingang des OPV zu erzeugen. In der Regel wird die Vorspannung auf die Hälfte der Versorgungsspannung gewählt, um den Aussteuerbereich für positive und negative Signalanteile gleich zu wählen.

Als Eingang für den Verstärker dient der externe Anschluss OAx-, der über den Multiplexer M ausgewählt wird (MSEL = 00b). Alternativ wäre es auch möglich, den Ausgang eines anderen OPV von einem weiteren SAC-Modul über den Multiplexer M an den Spannungsteiler zu schalten (MSEL = 11b), um dessen Ausgangssignal zu verstärken.

Um das SAC-Modul für den Betrieb als invertierenden programmierbaren Verstärker zu konfigurieren, wird über das PGA-MSEL-Register entweder der Anschluss OAx– (MSEL = 00b) oder der Ausgang eines weiteren OPV (MSEL = 11b) als Signalquelle ausgewählt und mit dem Spannungsteiler verbunden. Außerdem muss der invertierende Eingang des OPV über den Multiplexer N an den mittleren Knoten (Anzapfung) des Spannungsteilers geschaltet werden (NSEL = 01b).

An den nichtinvertierenden Eingang des OPV muss dann die Vorspannung angelegt werden. Dazu kann der nichtinvertierende Eingang über den Multiplexer P an den externen Anschluss OAx+ geführt werden, um eine externe Vorspannung zuzuführen. Die Vorspannung kann aber auch intern vom 12-bit-DAU erzeugt werden, sodass der Ausgang des DAU über den Multiplexer P mit dem nichtinvertierenden Eingang des OPV verbunden wird. Die Verstärkung des invertierenden programmierbaren Verstärkers wird mit den GAIN-Bits im SACxPGA-Steuerregister festgelegt.


  1. MSP430 mit programmierbaren Analogschaltungen
  2. Einfache Programmierung per SAC-Treiberbibliothek
  3. Betrieb als Digital-Analog-Umsetzer
  4. SAC-Module mit anderen Funktionen kombinieren

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Texas Instruments

Weitere Artikel zu Texas Instruments Deutschland GmbH

Weitere Artikel zu Mikrocontroller

Weitere Artikel zu Analoge Bauelemente sonstige