^

 Universal 8-Bit AD-Wandler selbstgebaut

 


U
niverseller AD-Wandler auf Basis des TLC 549 von Texas Instruments:

      Warum Universal ?
     
    1. Der TLC 549 löst im Gegensatz zu anderen uns bekannten AD-Wandlern auch sehr geringe Referenzspannungen auf. Unsere hier beschriebe Schaltung lässt sich z.B. auf Werte von 0,127 oder 0,255 oder 0,511 V einstellen. Bei 0,127 V entspricht ein Wandlerschritt einer Auflösung von 0,5 Millivolt! Das ist für solche Sensoren vorteilhaft, die nur geringe Spannungen abgeben. Wir wollten es für Strommessungen verwenden. Die Schaltung kann sowohl an eine serielle als auch an eine parallele Schnittstelle angeschlossen werden. Welche Leitungen wir verwenden, ist egal. Unsere Beispiel-Software läuft mit denen im Schaltplan dargestellten Verbindungen. Einzige Einschränkung: Beim Anschluss an eine parallele Schnittstelle muss die Stromversorgung (VCC) aus einer der Datenleitungen (D0 - D7) erfolgen; die Steuerleitungen sind zu hochohmig.
    2. Alle Bauteile sind leicht zu beschaffen.
    3. Der Aufbau kann auf einer Streifenraste-Platine erfolgen.
    4. Billig!
       
    Die SchaltungSchaltplan
                          Universal A/D-Wandler
     
    Es werden (computerseitig) drei Ausgänge benötigt. Je einer zur Erzeugung der Versorgungsspannung (VCC), zur Taktgenerierung (I/O CLOCK) und zur Aktivierung des Wandlers (CS Chip Select). Ein Schnittstellen-Eingang empfängt die Daten vom Wandler (DATA OUT). Alle 4 Verbindungsleitungen sind über Schutzwiderstände (R7 - R10) und Schutzdioden (D2 - D5) abgesichert. Die Versorgungsspannung ist mittels C3 (Elko ca. 47 - 100 µF) stabilisíert.

    Über den Schutzwiderstand wird der Spannungsreferenz-Baustein TL431 versorgt, der daraus eine stabile Spannung von knapp 2,5 V erzeugt. Der nachgeschaltete Spannungsteiler, bestehend aus R1/ R2/ R3/ R5  ist so dimensioniert, dass am Spindelpoti (R5) die Referennzspannung sehr feinfühlig eingestellt werden kann. Ziel war, die (sinnvollen) Werte 127, 255 und 511 Millivolt einstellen zu können.

    Der Referenzspannungseingang und der Messeingang am Wandler sind mit je einem 10 µF Elko stabilisiert. Der Messeingang ist außerdem mit dem obligatorischen Schutz aus Widerstand (R6) und Diode (D1) versehen.

    Die Messwerte schwanken (bei stabiler Messspannung) je nach Höhe der Referenzspannung:

    • bei 0,511 V ca. um je 1 Digit nach oben und unten
    • bei 0,255 V ca. um je 2 Digit nach oben und unten
    • bei 0,127 V ca. um je 4 Digit nach oben und unten

     Laut Datenblatt schafft das TLC 549 bis zu 40.000 Messungen pro Sekunde und mit einem einigermaßen schnellen PC sind auch schon 20.000-30.000 Messungen pro Sekunde erreicht worden. Auf meinem Pentium 3 mit 800 MHz schafft ein PowerBasic - Programm 28.000 Messwerte pro Sekunde. Aufgrund der Zeitkonstante des RC-Glieds R6/C1 macht es aber mit der hier vorgestellten Schaltung keinen Sinn Spannungen zu messen, die sich mit wesentlich mehr als 1Hz (bzw. 10 Hz mit 1µF als C1) ändern. Trotzdem ist es sinnvoll innerhalb einer Sekunde aus 100 oder gar 1000 Messungen einen Mittelwert zu bilden, um die statistischen Wandlungsfehler herauszumitteln. Unser QBasic-Beispielprogramm bildet einen Mittelwert aus je 127 Messungen.

    Bild Universal
                  A/D-WandlerSägen und Löten

      Im Bild ist der Aufbau auf einer Streifenraster-Platine dargestellt. Wo ein roter Balken zu sehen ist, muss die Leiterbahn getrennt werden. Oben und unten sind je zwei Bahnen und rechts 5 Reihen, die (elektrisch) nicht benötigt werden. Aber irgendwo wollen wir das Ding ja vielleicht auch mal festschrauben. Benutzt werden 7 Bahnen mit je 23 Löchern. Die beiden äußeren Bahnen führen Masse. Die Masse-Drahtbrücke verbindet diese Bahnen und Pin 3 und 4 des ICs.

    Nicht so gut zu erkenen sind die Anschlüssen von R1 und R2. R1 hängt an Bahn1 (Masse) und Bahn 4, R2 an Bahn2 und Bahn4.

    Als Verbindungen zum Messkabel und zum Schnittstellenkabel sind Stiftleisten installiert. Mit den entsprechenden Buchsenleisten lassen sich Messkabel für die serielle und parallele Schnittstelle bauen. Der zweite Stift von oben wird nicht benötigt. Verschließen wir die entprechende Buchse (z.B. mit 2-Komponenten Klebstoff), ist das Ding sogar einigermaßen verpolungssicher.

    An den beiden Messpunkten können wir ein Multimeter zum Abgleichen anschließen.

    Statt der bei mir verwendeten Widerstände mit Kohleschicht sollten wir solche mit Metallfilm (1% Toleranz) verwenden (die blauen). Die sind nur einen Cent teurer, dafür aber temperaturstabiler.

     
     
    Die Teile
     
    Bei den Bestellnummern handelt es sich um solche von Conrad.
     
    Die Preise sind Gesamtpreise für die benötigte Anzahl.

     

    Teil(e)

    Beschreibung

    Best-Nr

    Preis in € 

    R1-R4, R6-R10

    Metallfilm Widerstände 0,6W 1%

    diverse

    -,99

    R5

    Präzisions Spindeltrimmer 100kOhm

    42 48 46

    1,30

    D1-D5

    Universaldiode 1N4148

    16 22 80

    -,20

    C1, C2

    Subminiatur Elko 10µF 25V

    46 05 24

    -,24

    C3

    Subminiatur Elko 100µF 16V

    46 06 99

    -,18

    TL431

    Spannungsreferenz TL 431 C

    17 61 76

    -,84

    TLC549

    serieller 8-Bit AD-Wandler TLC 549

    17 10 26

    2,05

     

    Präz. IC Fassung 8-pol

    18 96 00

    -,28

     

    Stiftleiste 10-pol

    74 40 00

    -,36

     

    Buchsenleiste 20-pol

    73 63 50

    1,18

     

    Rasterplatine

    52 76 29

    1,--

    Gesamtpreis

    8,62

    Die Software

    Wie bereits erwähnt, schwanken die Messwerte je nach Höhe der Referenzspannung mehr oder weniger. Deshalb werden 127 Messwerte aufgenommen (127 * 255 ist der maximale Wert den die Integer-Variable speichern kann) und daraus ein Mittelwert gebildet. Um die Qualität der Wandlerdaten zu überprüfen, wird aus diesen 127 Werten jeweils der Minimalwert und der Maximalwert angezeigt. Wir können schön sehen, wie die Streuung der Messwerte größer wird, je kleiner die Referenzspannung eingestellt wird. Trotzdem bleibt der Mittelwert stabil.

    Der QBasic-Quelltext versteht sich als Beispiel für erste Versuche und als Anregung für eigene Projekte.

    Update April 2012: Für Windows-Nutzer habe ich zwei Quelltext-Beispiele für FreeBasic ergänzt. Diese setzen einen Anschluss an die serielle Schnittstelle voraus. Damit geht es ohne spezielle DLLs mit reinem WinAPI. Auch an seriell-USB Wandlern sollte das funktionieren, allerdings bedeutend langsamer (ca. 20 Messungen/Sekunde).

    Mathias Paulsen hat eine Ansteuerung in C für Linux geschrieben. Der Quelltext von 2003 steht hier noch zum Download bereit. Im Oktober 2010 hat er mir eine aktualisierte Version zukommen lassen [ Download ]. Die neue Version lässt sich unter Debian-Squeeze und Ubuntu 10.10 übersetzen. Bei Rückfragen stelle ich gerne Kontakt her. Ich selber bin leider Linux-Blindgänger.

    Wer es noch etwas einfacher haben möchte, kann erstmal den Einfachst-AD-Wandler (mit demselben IC) aufbauen. Details zur Ansteuerung des TLC 549 gibt's in dieser Textdatei.

    Betrieb und Abgleich

    Zuerst das Obligatorische:
    Alles, was nach dieser Anleitung gebaut und betrieben wird, geschieht auf eigene Gefahr!

    Erste Versuche sollten wir an der seriellen Schnittstelle vornehmen, die ist besser abgesichert.

    Zum Kalibrieren der Schaltung bauen wir uns am besten folgende kleine Hilfsschaltung. Am Messeingang schließen wir einen Elko von ca. 470 µF an. An dessen Pluspol haben wir einen 500 kOhm Widerstand angelötet. Über diesen Widerstand können wir den Kondensator langsam an der Versorgungsspannung (TxD bzw. D7) aufladen. Ist die gewünschte Spannung erreicht, trennen wir den Widerstand von der Versorgungsspannung. Wenn sich der Wert beruhigt hat, passen wir den angezeigten Wert mit dem Trimmpoti an.

    Als Vergleich dient ein Multimeter an den beiden Messpunkte.

    Viel Erfolg beim Nachbau!


Zur Startseite

 

Haftungsausschluss    Impressum

© Frank Steinberg