Analog-IO mit digitalen Bausteinen

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

Oftmals werden bei der Nutzung digitaler Bausteine einfache analoge Eingaben oder Ausgaben benötigt, um langsame Signale zu erfassen oder darzustellen. Nicht immer lohnt dabei der Einsatz eines DA- oder AD-Wandlers, weil er zu teuer ist oder nicht mehr nachgerüstet werden kann bzw. mehrere Kanäle benötigt werden, die zuviel Platz beanspruchen oder zu viele Pins belegen würden. In diesem Artikel werden Funktionen aufgezeigt, die mit maximal 2 Pins auskommen.

Einfacher 1-pin-DAC

Die Ausgabe erfolgt z.B. mit einer Pulsdichtemodulation oder PWM mit anschließender Glättung mittels eines analogen Filters. Diese kann mit einem einfachen RC-Glied, einem T-Filter oder einem aktiven Filter mit Operationsverstärkern 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 das typische Audiospektrum. Mit Ra < 100 Ohm und Ri im Bereich einigen kOhm reicht ein Filter, das selbst einige 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 Grenzfrequenz 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 eine Dämpfung von 60dB für PWM-Frequenzen von 1 MHz erreicht. Diese lassen sich im uC mit einem Timer realisieren.


Einfacher 1-pin ADC

1-Bit-Analog-IO für FPGAs und DPSs

Durch Anwendung eines Komparators, der das zu messende Eingangssignal permanent mit einer Rauschquelle vergleicht, kann ein 1-Bit-Digitalsignal ähnlich einer Pulsdichtemodulation generiert werden, welches durch digitale Filterung mit einem Dezimationsfilter (z.B. SINC-Filter) in einen digitalen Datenstrom aus Integer-Werten überführt werden kann. Auch möglich ist die Benutzung einer hochfrequenten Sinuswelle, wenn deren Frequenz und gfs. Phase bekannt ist und die mit einem steilen Notchfilter analog abgezogen oder intern per Signalverbeitung verrechnet wird. In FPGAs ist eine solche Lösung sehr leicht realisierbar, wenn einn LVDS-Eingang (mit Komparator) genutzt wird. Als Rauschquelle kann diese Schaltung verwendet werden: Dithering#Analog-Digital-Wandler


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. Eine PWM wurde benutzt, um unabhängig von der Phase das so eingespeiste Rauschen wieder abziehen zu können.

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

Ladder Filter

Eine oft genutze Möglichkeit ist die Verwendung eines R2R-Netzwerks, um mit wenigen Pins ein quasi analoges Signal zu erzeugen. Damit wird eine direkte DA-Wandlung realisiert. Diese kann noch mit einer PWM oder PDM kombiniert werden, die auf dem untersten Bit arbeitet. Im Bereich Hi-End-Audio sind damit bereits 32-Bit-Wandler mit > 130dB SPDR realisiert worden. Allerdings erfordern diese ein hochgenaues Netzwerk und einen exakten Abgleich der Ansteuerung mit Kalibrierung, sowie einen sehr soliden analogen Aufbau.

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