Anbieter zum Thema
Dann führt die Spannung 0 V zur Anzeige 00.00 und die Spannung 3,3 V zur Anzeige 02.55, was allerdings auch noch nicht das gewünschte Ergebnis ist. Um zur korrekten Anzeige von 03.30 zu kommen, muss man den vom A/D-Wandler ausgegeben Wert umrechnen in den Wert, der auf dem Display ausgegeben werden soll. Das ist zwar mit ein wenig Rechenaufwand in Software möglich, aber es gibt auch einen einfacheren Weg: Einen mit einer rationalen Anzahl von Bits.
Einfacher Aufbau mit Referenzdesign
Integrierte A/D-Wandler haben im Allgemeinen eine feste Auflösung von n Bits und 2n Quantisierungsstufen, die gleichmäßig über den gesamten Messbereich verteilt sind. Um zu glatten dezimalen Stufen zu kommen gibt es z.B. A/D Wandler mit einer Referenzspannung von 2,048 V, dem 211-fachen von 10 mV. Doch wenn, wie in dem Fall des Entwicklungsboards von Lattice, die Referenzspannung auf 3,3 V festgelegt ist und man eine Auflösung vom 10 mV haben möchte, dann braucht man eben einen A/D-Wandler mit 330 Stufen, also einer Auflösung von 8,366 Bit.
Ein solcher Wandler ist einfacher als man vielleicht denkt. Bei einem Signa-Delta-Wandler einfacher Bauart, wie er in den Referenzdesigns der FPGA-Hersteller beschrieben ist, wird das abzutastende analoge Signal an den Plus-Eingang eines LVDS-Eingangspaars angeschlossen und das mittels RC-Glied gefilterte Sigma-Delta-Signal an den Minus-Eingang des LVDS-Eingangspaars. Im Digitalteil des Wandlers wird der Ausgang des LVDS-Komparators „dezimiert“. Dabei wird innerhalb einer vorgegebenen Anzahl von Takten diejenige Anzahl gezählt, in denen der Komparator eine 1 ausgegeben hat.
Um zu einem Wandler mit 8,336 Bit Auflösung zu kommen, muss man eben nicht nur 256 Takte lang die Einsen zählen, sondern 330 Takte lang. Der vom A/D-Wandler ausgegebene Wert benötigt dann 9 binäre Signale, bleibt aber stets im Wertebereich {0 <= x <= 330}.
Vergleich mit handelsüblichem Multimeter
Eine Vergleichsmessung des selbstgebauten Voltmeters mit einem handelsüblichen Multimeter hat ergeben, dass das selbstgebaute Voltmeter zwar sehr linear arbeitet aber einen kleinen Fehler aufweist. Dieser beträgt im Bereich der unteren Messwertgrenze (0 V) 20 mV und in Bereich der oberen Messwertgrenze (3,3 V) 50 mV. Hierfür gibt es zwei Fehlerquellen.
Zum einen sind die LVDS-Eingänge des FPGAs für diese Anwendung eigentlich nicht gedacht. Für diese Eingänge schreiben die Datenblätter üblicherweise eine Differenzspannung von mindestens +/- 100 mV vor. Kleinere Differenzspannungen, die sich bei dieser Anwendung zwangsläufig ergeben, sind eigentlich „verbotene Zone“. So gesehen ist ein Offset von 20 mV ein überraschend geringer Wert.
Zum andern ist die I/O-Spannung auf dem Entwicklungsboard zwar mit einem hochwertigen linearen Spannungsregler geregelt, weist aber dennoch eine gewisse Toleranz auf. Solange man nur digitale Signale an die I/O-Pins anlegt, ist eine Toleranz von +/- 5% kein Problem. Doch wenn man mit einem I/O-Pin und dem RC-Glied eine analoge Spannung erzeugt, dann wirkt sich ein Fehler der I/O-Spannung proportional auf die erzeuge Analogspannung aus. Der Regler auf dem für die Messung verwendeten Board hatte eine gemessene Ausgangsspannung von 3,266 V, also eine Abweichung von etwa 1%. Damit ist zu erwarten, dass die vom A/D-Wandler ausgegeben Werte zur oberen Messwertgrenze hin tendenziell um ca. 1% zu groß sind, was durch die Messung bestätigt wurde.
Wie die vorgestellte Schaltung und die Referenzdesigns der FPGA-Hersteller zeigen, sind A/D-Wandler im FPGA für einfache Anforderungen ohne große Bauteil- und Ressourcenaufwand leicht zu realisieren. Und außergewöhnliche Auflösungen stellen kein Problem dar.
* * Harald Flügel ist Senior Field Application Engineer bei Arrow Electronics, Dreieich.
(ID:36311210)