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 DAC mit 1 FPGA Pin

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 ADC mit 1 FPGA-Pin und externem Komparator

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 DAC+ADC mit 2 Pins

2-Pin-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 der PWM-Glättung gegeben ist.

Insgesamt ist diese Schaltung etwas schneller, als die Lösung mit unkontrolliertem Rauschen. Der Vorteil ist, dass zwei gewöhnliche Single-end FPGA-IOs verwendet werden, die feste Betriebsrichtungen haben. Damit können auch solche FPGAs benutzt werden, bei denen nicht allo IOs auch outputs- sondern nur Inputs haben.


Kombinierter DAC+ADC mit differenziellem FPGA-IO

ADC mit einem differentiellen FPGA-IO

Durch Umschaltung des IO-Pins von Ein- auf Ausgang kann ein auf die Frequenz angepasstes Messverfahren benutzt werden. Dabei kann entweder eine genaue Referenz vorgegeben werden, die eine sehr präzise Messung erlaubt, als auch eine sehr schnelle Messung erfolgen. In beiden Fällen wird das Ausgangsrauschen dem gemessenen Signal mittels noise shaping angepasst. Die Schaltung ist autokalibrierfähig, hat allerdings den Nachteil, dass mehr Signalverarbeitung und ein FPGA benötigt wird, dass die Funktion unterstützt.


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

Kategorien