Analog-IO mit digitalen Bausteinen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Oft werden bei der Nutzung digitaler Bausteine einfache Analogeingaben oder -ausgaben benötigt, um langsame Signale zu erfassen. Nicht immer lohnt dabei der Einsatz eines AD-Wandlers, weil er zu teuer ist bzw. nicht mehr nachgerüstet werden kann oder mehrere Kanäle benötigt werden, die zuviel Platz beanspruchen, oder zuviele Pins belegen würden.

Im Artikel werden Funktionen aufgezeigt, die mit maximal 2 Pins auskommen.

Einfacher 1pin-DAC

Die Ausgabe erfolgt z.B. mit einer PCM oder PWM mit anschließender analoger Filterung. Diese kann mit einem einfachen RC-Glied, einem T-Filter oder einem aktiven Filter geschehen. Siehe Artikel 1-Bit Digital-Analog-Wandlung.

Beispiel Audio

Filter für Audio-PWM: C1=470nF, C1*=4,7uF, R1=2700, R2=1000, C2=33nF, fg=15kHz, Ri>1kOhm

Die Abbildung rechts zeigt eine Dimensionierung für den Audiobereich. Mit Ra < 100 Ohm und Ri im Bereich einigen kOhm reicht ein Filter, das selbst einig km Widerstand hat und ab 5kHz-10kHz beginnt, abzufallen. Das Filter setzt konkret 3,3V auf den benötigten Pegel von +/- 0,45V herab und hat eine Netto-GF von ca 15kHz. Durch den geringen Innenwiderstand können unterschiedliche Geräte mit variablen Impedanzen angeschossen werden, ohne die Werte zu optimieren. Mit den o.a. Werten wird wird eine Dämpfung von 60dB für PWM-Frequenzen von 1 MHz erreicht. Diese lassen sich im uC mit einem Timer realisieren.


Einfacher 1pin ADC

1-Bit-Analog-IO für FPGA

Durch Anwendung eines Komparators, der ein zu messendes Signal mit einer Rauschquelle vergleicht, kann ein 1-Bit-Digitalsignal generiert werden, welches durch Filterung mit einem Dezimations-SINC-Filter in einen digitalen Wert überführt werden kann. Auch möglich ist die Benutzung einer hochfrequenten Sinuswelle, wenn deren Frequenz und gfs auch Phase bekannt ist und damit im FPGA mit einem steilen Notchfilter abgezogen wird.


Kombinierter 2pin DAC ADC

2-Bit-Analog-IO für FPGA

In Erweiterung der beiden o.g. Methoden kann für niedrige Frequenzen eine Regelung gebaut werden, die einem analogen Eingangssignal folgen kann. Dazu wird mit einem internen Komparator entschieden, ob die per PWM erzeugte externe Analogspannung die eingespeiste Messspannung über- oder unterschritten hat und diese entsprechend angepasst. Die Nachführung der Regelung muss langsamer geschehen, als die Änderungsgeschwindkeit, die durch die Bandbreite PWM-Glättung gegeben ist.

Insgesamt ist diese Schaltung etwas schneller, als die Lösung mit unkontrolliertem Rauschen.


Beispiele

Ultraschall

Mit o.g. Schaltung können bei einem FPGA mit 50MHz eine genügend gute PWM mit <10% ripple erzeugt und letztlich 50kHz pro Pin mit einer Auflösung besser als 1% gescannt werden. Die Schaltung ist so in einer Applikation seit mehren Jahren im Gebrauch. Die OPs sind in einem Mehrfachgehäuse zusammengefasst, dazu wird ein analoges Notch-Vorfilter nach dem Komparator benutzt.

Consumer-Audio

Mit den heute üblichen Taktfrequenzen von FPGAs können leicht PWM-Ausgaben von 100MHz erzeugt werden, die auch mit einfachen Filtern gut auf ein akzeptables Rauschniveau herabgesetzt werden können. Die Überabtastung von >10000 schafft genug head room für ein Filter entsprechender Dämpfung. Bei 10KHz-Grenzfrequenz sind im wichtigen Bereich Klangqualitäten von >6Bit (5kHz) bis zu 10Bit (50Hz) zu erreichen, was für einfache Tonausgaben und Sprache absolut reicht.

3-Pin DAC

Eine oft genutze Möglichkeit ist die Verwendung eines R2R-Netzwerks, um mit wenigen Pins ein quasianaloges Signal zu erzeugen. Damit wird eine direkte DA-Wandlung realisiert. Diese kann mit einer PWM kombiniert werden, die mit dem untersten Bit realisiert wird.

3-Pin ADC

Auch umgekehrt kann ein einfacher linearer Wandler erzeugt werden. Mit 4 identischen Widerständen sind die Referenzpunkte 75% 50% und 25% eines gepufferten Signals abgreifbar. Dadurch kommt es beim Anstieg des treibenden Signals zu einem Durchschreiten des Schaltpunktes der 3 Eingänge. Durch Variation der Widerstände kann eine Spannungslupe aufgebaut werden, mit der eine Betriebsspannung überwacht werden kann, z.B. 1k,100,100,1k bei Schaltschwelle 50%.

Erweiterung der Ports

Wenn nicht genug IO-Ports für die Erzeugung von R2R-Ausgängen oder PWM-Kanälen zur Verfügung stehen, kann diese Schaltung zur Erweiterung von digitalen IO-Ports verwendet werden.

Links

Weblinks