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.