Kann ich einen Spannungsausgang von einem Mikrocontroller steuern?

8

Ich muss Werte zwischen 0 V und 0,8 V für eine Schaltung erzeugen und den Wert der vom System ausgegebenen Spannung nehmen und die Daten analysieren. Kann ich mit einem Mikrocontroller automatisch Spannungswerte erzeugen? (Zum Beispiel: 0,05 V, 0,1 V, 0,15 V ...)

Wenn die Antwort ja lautet, welchen Mikrocontroller soll ich verwenden und welche Techniken würden Sie empfehlen?

Wenn die Antwort nein ist, können Sie andere Mittel vorschlagen?

user26136
quelle

Antworten:

8

Ja, alle Mikrocontroller haben eine Möglichkeit, von der Firmware gesteuerte Spannungssignale zu erzeugen. Das Brute-Force-Verfahren sieht vor, dass das Mikro einen Digital-Analog-Wandler (D / A) enthält. Die Firmware schreibt eine Nummer in den D / A und erzeugt eine zu dieser Nummer proportionale Spannung.

Eine wichtige Spezifikation von D / As ist, wie viele Bits die Nummer hat. Dies bestimmt seine Auflösung. Der D / A kann 2 N verschiedene Werte erzeugen , wenn die Zahl N Bits enthält. Beispielsweise kann ein 8-Bit-D / A 256 verschiedene Spannungspegel erzeugen. Beachten Sie, dass ein gewöhnlicher digitaler Ausgangspin als 1-Bit-D / A betrachtet werden kann. Die Zahl hat zwei Zustände, 0 und 1, und die Ausgangsspannung ist entweder hoch oder niedrig.

Die meisten Mikros sind nicht mit integriertem Multi-Bit-D / As ausgestattet, da hierfür nur eine geringe Nachfrage besteht. Normalerweise versuchen wir, analoge Werte so früh wie möglich in digitale Werte umzuwandeln, die Manipulationen digital durchzuführen und dann die Dinge mit Impulsen zu steuern. Es ist ungewöhnlich, dass ein Mikro eine analoge Spannung erzeugt. Selbst in Anwendungen wie Audio, bei denen es sich möglicherweise um ein analoges Signal handelt, werden die Dinge häufig digital oder mit Impulsen am Ende behandelt. Das ist im Grunde genommen ein Klasse-D-Verstärker.

Wenn Sie keinen der wenigen Mikros mit integriertem D / A verwenden möchten, können Sie einen extern hinzufügen. Es gibt viele D / As, die das Mikro beispielsweise über einen SPI-Bus ansteuern kann.

Wenn Sie jedoch keinen Hochgeschwindigkeitsausgang benötigen, führt die Tiefpassfilterung des PWM-Ausgangs eines Mikros zu einem schönen analogen Signal. Mikros sind gut darin, gut gesteuerte Impulsfolgen zu erzeugen, und viele haben zu diesem Zweck eingebaute Hardware. Stellen Sie sich beispielsweise einen digitalen Ausgang vor, der alle 1 µs (mit einer Frequenz von 1 MHz) geändert werden kann. Angenommen, Sie haben die 1-µs-Zeitscheiben in Blöcke von 1023 gruppiert. Für jeden Block können 0 bis 1023 der Scheiben hoch sein. Wenn Sie dies mitteln würden, würden Sie einen analogen Wert mit 1024 möglichen Pegeln erhalten, was Sie von einem 10-Bit-D / A erhalten würden. Das Rohsignal enthält den gewünschten Durchschnittswert sowie hohe Frequenzen ab 1 MHz / 1023 = 978 Hz. Durch Anwenden einiger Pole Tiefpassfilterung (ein Widerstand und ein Kondensator pro Pol),

Diese Art von A / D hat einige nette Eigenschaften, da sie sehr linear, monoton und ohne Leistung von zwei Glitch-Ausgängen ist. Der einzige Nachteil ist normalerweise die Bandbreite. Bei einigen einfachen Widerständen und Kondensatoren, die das Tiefpassfilter bilden, können Sie wahrscheinlich kein analoges Signal schneller als einige 10 Hz erhalten.

Beachten Sie, dass die Verwendung von 1023 Slices pro Block eine willkürliche Entscheidung war, die Sie getroffen haben. Wenn Sie mehr Auflösung wünschen, vergrößern Sie die Blöcke, aber dann muss sich die gefilterte Ausgabe langsamer ändern. Viele Mikros können jedoch die PWM-Erzeugung in Hardware mit einer viel schnelleren Schichtrate als 1 MHz durchführen.

Ich würde versuchen zu sehen, ob die PWM-Methode funktioniert, bevor ich zu einem externen D / A gehe.

Olin Lathrop
quelle
Als Anfänger war dies hilfreich, um das Spektrum der verfügbaren Filter zu sehen: analog.com/designtools/en/filterwizard
user391339
3

Was Sie entwerfen möchten, ist ein Datenerfassungssystem

Wenn es einen Digital-Analog-Wandler (DAC) hat, können Sie dies tun. Andernfalls holen Sie sich einen externen DAC und lassen Sie den Mikrocontroller über alles, was er kann (I2C, SPI, UART usw.), mit ihm kommunizieren.

Sie haben festgestellt, dass Sie einen Mikrochip mit Tags versehen haben. Sie verfügen über Mikrocontroller mit einem DAC von einfachen (pic12f752, pic16f753,782) bis hin zu erweiterten (dsPIC33fj16GS504,502,302) und mehreren weiteren. Sie finden sie hier http://www.microchip.com/maps/microcontroller.aspx

Iancovici
quelle
Dann könnte ich zum Beispiel den 12F752 verwenden, mit seinem CDA eine Spannung erzeugen und mit einem CAD die Werte des Systems erfassen und analysieren, oder?
user26136
@ user26136 wenn CDA = DA des Mikrocontrollers und CAD = AD des Mikrocontrollers, dann ja!. Ich würde empfehlen, auch die Anwendungshinweise zur Kalibrierung zu
lesen
Haha ja, das ist es.
user26136
1

Abhängig vom vom System aufgenommenen Strom können Sie dies möglicherweise mit einer Widerstandsleiter als DAC tun: http://en.wikipedia.org/wiki/Resistor_ladder

Wenn Sie eine kleine Anzahl spezifischer Spannungswerte wünschen, können Sie sogar die Widerstandsleiter so gestalten, dass diese genau und nicht das normale System von 2 ^ n gleichmäßig beabstandeten Werten emittiert.

Wenn nicht trivialer Strom verbraucht wird, benötigen Sie einen Operationsverstärker am Ausgang, der als Puffer konfiguriert ist. Stellen Sie sicher, dass Ihr Operationsverstärker mit einer geeigneten Linearität nahe 0 V arbeitet. Möglicherweise benötigen Sie hierfür ein negatives Netzteil.

pjc50
quelle
1

Zusätzlich zu den anderen Antworten verfügen die meisten Mikrocontroller über eine PWM-Funktion (und wenn nicht, können Sie immer eine Bit-Bang-Funktion verwenden). Wenn Sie PWM in einen einfachen RC-Filter einspeisen, können Sie einen primitiven DAC ohne viele zusätzliche Komponenten oder Kosten erstellen.

Phil Frost
quelle
1

Wenn Sie mit PWM einverstanden sind, ist der Analogausgang von Arduino genau das Richtige für Sie. Sie können auch ein Tiefpassfilter hinzufügen, da die Impulse sehr verrauscht sein können.

Wenn Sie eine sauberere Lösung benötigen, suchen Sie nach Mikrocontrollern, die mit DAC-Modulen geliefert werden. Einige der MSP430-Mikrocontroller verfügen über einen DAC ( siehe Seite 23 ), den Sie verwenden können. Sie müssen in ihre Datenblätter schauen.

Wenn Sie sich auf einen Mikrocontroller ohne DAC beschränken, können Sie einen DAC-Chip erwerben. Diese Chips können einfach über SPI oder I2C gesteuert werden und sind billig. Hier ist ein 12-Bit-DAC, der etwas mehr als einen Dollar kostet.

Hoffe das hilft.

bot3663369
quelle