Computer-Röhrenprüfgerät / Röhrenmessgerät 12-Bit D/A

Werbung
RoeTest - Computer-Röhrenprüfgerät / Röhrenmessgerät
(c) - Helmut Weigl
www.roehrentest.de
12-Bit D/A-Wandler
Ausgangssituation:
Das RoeTest ist mit den 8-Bit D/A-Wandlern PCF8591 bestückt. Ich wurde schon
öfters gefragt, warum ich "nur" 8-Bit-Wandler verwende und keine 12- oder
16-Bit-Wandler. Die Frage ist einfach zu beantworten: Über Wandler mit höherer
Auflösung hatte ich mir gar keine Gedanken gemacht - dies werde ich hier
nachholen.
8-Bit - das sind 256 Stufen von 0-255. Betrachten wir die sensibelste
Spannungsquelle - die G1-Spannung. Die G1-Spannung betrachte ich deshalb als
am sensibelsten, da winzige Änderungen der Spannung bereits die Messergebnisse
beeinflussen können. 8 Bit ermöglichen folgende Auflösungen:
Bereich
groß
klein
Endspannung
51 V
5,1 V
Auflösung je Schritt
0,2 V
0,02 V
Die Auflösung ist bei Umschaltung in zwei Bereichen mehr als ausreichend. Eine
noch höhere Auflösung mit 12 oder 16 Bit bringt nichts.
Die Überlegungen hinsichtlich D/A-Wandler mit höherer Auflösung ist eine andere:
Wäre es möglich mit einem besseren Wandler die Bereichsumschaltung
einzusparen? Die Vorteile wären:
Relais-Bereichsumschaltung kann entfallen
Da es nur einen Bereich gibt, ist der Abgleich einfacher
da nur ein Bereich vorhanden ist, gibt es keine Probleme hinsichtlich der
Linearität im Übergangsbereich
Erforderliche Auflösung:
Bei 12 Bit gibt es 4096 Stufen (von 0-4095). Betrachten wir den sensibelsten
Bereich, die G1-Spannung:
ca. 51V : 4095 = 0,0125V je Stufe. Die Auflösung ist noch etwas besser als bei 8 Bit
(mit Bereichsumschaltung), aber über den gesamten Bereich. Eine noch höhere
Auflösung (16Bit) wäre unsinnig. Auch könnte ein höhere Auflösung wohl kaum
realisiert werden (erforderliche Präzisionsreferenzspannung - Störquellen im
RoeTest).
Bausteine:
Nach umfangreichen Recherchen bleiben einige wenige Bausteine verschiedener
Hersteller übrig.
Es muß ein 1-fach-12-Bit-D/A-Wanlder mit I²C-Schnittstelle sein. Dabei müssen
mindestens 5 Stück am selben Bus betrieben werden können.
Jetzt kommt der erste Schock: Es gibt diese Bausteine nur im SMD-Gehäuse. Für
Bestückungsautomaten sind diese sichlich gut geeignet. Für meine Hände und
Augen nicht. Da insgesamt nur 5 Bausteine notwendig sind, kann man die Fummelei
gerade noch akzeptieren.
Welchen Wandler?
Die Datenblätter für die wenigen in Frage kommenden Bauteile sind alle ähnlich
was Präzision (Offset, INL, DNL, Gain-Error, Drift ..) anbelangt. Von daher ist es
relativ egal welchen man verwendet. Nachstehend zwei Beispiele:
DAC121C085:
Vorteil: Bis zu 9 Wandler können an einem Bus betrieben werden. Nachteil: Die
I²C-Adressen überschneiden sich mit bereits im RoeTest vorhandenen Bauteilen, so
daß die bestehende Hardware und Firmware wegen der Vergabe der I²C-Adressen
geändert werden muß.
MCP4725:
Bei I²C-Adressen gibt es keine Überschneidungen mit der bestehenden Hardware.
Dafür hat der Baustein nur ein herausgeführtes Adress-Pin, so daß nur zwei
derselben Wandler am Bus betrieben werden können. Dafür gibt es das IC in 4
verschiedenen Ausführungen mit 4 Adressbereichen (Endnummer A0 ... A3).
Beschaffung:
Der nächste Schock: Keiner der üblichen Elektronikversender hat anscheinend
passende Wandler im Angebot (auch nicht andere Typen). Lediglich die großen
Disitributoren (RS, Farnell) scheinen welche zu führen. Diese Firmen liefern aber
nur an Gewerbetreibende und nicht an Privatpersonen (Kommentar: Wenn die mein
Geld nicht benötigen, dann sollen sie es halt bleiben lassen - oder in Deutschland
kann man für Geld nicht alles kaufen).
Das RoeTest soll aber für Jedermann nachbaubar sein.
Man kann sich die Bauteile problemlos im Ausland bestellen. Dort hat man aber die
Nachteile, daß man entweder Mindestbestellmengen oder hohe Transportkosten
(zzgl. Zoll, Einfuhrumsatzsteuer) für die paar Bauteile hat. Auch diese Klippe könnte
man umschiffen. Ich würde einfach einen kleinen Bestand bestellen und an
Nachbauer abgeben. Zum Test und Zwecke der Entwicklung bestellte ich mir bei
Microchip ein paar Samples. Die Firma Microchip war so freundlich diese kostenlos
zur Verfügung zu stellen. Zum Test kamen also die Bausteine der Firma Microchip MCP4725.
Nachstehend Größenvergleich des MCP4725 mit dem PCF8591:
Änderung der Hardware:
Die Änderung der Hardware wäre gar kein Problem. Einfach ein neues Layout und
Baustein eingesetzt. Getestet wurde der Baustein auf der G1-Karte - mit
Handverdrahtung. Im Bild sieht man die Fummelei mit dem kaum erkennbaren IC.
Dieses wurde zum Test mit ein paar Drähten auf eine normale IC-Fassung gelötet
und dann in die Schaltung gesteckt. Auf einer geätzten Platine läßt sich das IC
sicherlich leichter einlöten.
Änderung der Software:
Hier war der Aufwand enorm: Zuerst mußte die Firmware die neuen Bausteine
ansteuern können. Das Übertragungsprotokoll zwischen PC und RoeTest mußte
geändert werden, da ja bisher nur 8-Bit-Daten notwendig waren. Zum Schluß wurde
noch die Messsoftware angepaßt. Dort waren die umfangreichsten Änderungen
notwendig.
Was mich wunderte: Die Ansteuerung der MCP4725 funktionierte trotz der
umfangreichen Softwareänderungen von anfang an sofort und fehlerfrei!!
Bei der Softwareänderung stieß ich auf ein Problem, daß ich gar nicht erwartet
hätte:
Im manuellen Modus werden die Spannungen über Schieberegler eingestellt. Bei 8
Bit war dies kein Problem (256 Positionen). Bei 12 Bit kann der Schieberegler gar
nicht in soviele Positionen gebracht werden (4096). Die Anzahl der möglichen
Positionen der Schieberegler hängt von der Bildschirmauflösung des PC's ab. Man
muß den Schieberegler um mindestens einen Bildschirmpixel verschieben. Da es
wohl keinen Monitor mit 4096 Pixel vertikaler Auflösung gibt, läßt sich die
Einstellung nur sehr grob vornehmen. Die Spannungswerte springen immer mehrere
Werte weiter und dazu auch noch zu krummen Werten. Dabei kann es an einem
anderen PC wieder ganz anders aussehen! Mißt! Um diese Klippe zu bewältigen
habe ich jeden Schieberegeler um "Fine-Buttons" ergänzt. Damit kann man die
Wandler um genau einen Schritt ansteuern. Dies erweist sich auch bei 8-Bit
Auflösung als hilfreich.
Messung:
Um in der Entwicklung genaue Messungen machen zu können, reicht ein billiges
Taschenmultimeter nicht mehr aus. Ich habe mir deshalb ein hochgenaues
Tischmultimeter gegönnt. Meine Auswahl fiel auf das Peaktech 4000. Es hat eine
Grundgenauigkeit von 0,03 % in den Gleichspannungsbereichen. Unter mehreren
geeigneten Modellen entschied ich mich sowohl wegen des Preises als auch wegen
des VFD-Displays für dieses Gerät. Schließlich ist ein VFD-Display eine "Röhre"
(der Röhrenfreak). Das Display läßt sich sowohl bei Tageslicht, als auch in
Dunkelheit sehr gut, auch aus einiger Entfernung, ablesen. Nachstehendes Foto
wurde mit Blitzlich aufgenommen. Auch in dieser Situation ist das Display noch sehr
gut lesbar.
Erster Test:
Der erste Test war ernüchternd:
Die Spannungen ließen sich zwar im gesamten Bereich bis 51 V einstellen. Am
unteren Bereich waren diese jedoch sehr ungenau.
1. Offset:
Der MCP4725 hat (wie alle anderen Wandler) einen Offset. Dieser beträgt beim
Testobjekt-D/A-Wert = "0"- 0,001213 V. Es gibt nur einen Bereich. Bei geforderter
Ausgangsspannung von 51V muß nach dem Wandler ein Verstärkung von ca.
10,25-fach erfolgen. Dies verstärkt natürlich auch den Offset. Dieser Offset ist kein
Problem. Bei geforderten 0V am Ausgang wird einfach das Ausgangsrelais der
Karte gegen Masse geschaltet (wie bisher).
2. Ungenauigkeiten am unteren und oberen Bereichsende:
Microchip schreibt im Datenblatt selbst, daß die Wandler nur zwischen D/A-Wert
100-4000 ausreichend genau sind. 4000 entspricht 50 V. Die obere Grenze kann
damit vernachlässigt werden. Nicht aber die untere Grenze, da in dieser
Anwendung ja besonders kleine Spannungen eine hohe Genauigkeit erfordern.
Ich habe einfach mal die Spannungen am Ausgang gemessen:
MCP4725
Belastung Ausgang mit 18 KOhm
____________Am Wandler_______ Fehler
D/A-Wert Spannung Spannung Abweichung
Verstärkung geforderte
ist
soll
10,25-fach
Ausg.Sp.
0 0,001213
0 -0,001213 -0,01243325
0
1 0,001217 0,0012207 0,0000037 0,000037957
0,0125
2 0,001219 0,0024414 0,0012224 0,012529664
0,025
3 0,001222 0,0036621 0,0024401 0,025011121
0,0375
4 0,001225 0,0048828 0,0036578 0,037492578
0,05
5 0,001762 0,0061035 0,0043415 0,044500535
0,0625
6
0,00296 0,0073242 0,0043642 0,044733242
0,075
10
0,00792 0,012207 0,004287
0,04394207
0,125
20
0,02028 0,0244141 0,0041341 0,042374141
0,25
30
0,0326 0,0366211 0,0040211 0,041216211
0,375
40
0,045 0,0488281 0,0038281 0,039238281
0,5
50
0,0574 0,0610352 0,0036352 0,037260352
0,625
60
0,0698 0,0732422 0,0034422 0,035282422
0,75
70
0,0824 0,0854492 0,0030492 0,031254492
0,875
80
0,0949 0,0976563 0,0027563 0,028251563
1
90
0,10748 0,1098633 0,0023833 0,024428633
1,125
100
0,1216 0,1220703 0,0004703 0,004820703
1,25
200
0,2436 0,2441406 0,0005406 0,005541406
2,5
300
0,3657 0,3662109 0,0005109 0,005237109
3,75
400
0,487 0,4882813 0,0012813 0,013132813
5
500
0,613 0,6103516 -0,002648 -0,02714648
6,25
600
0,733 0,7324219 -0,000578 -0,00592578
7,5
700
0,856 0,8544922 -0,001508 -0,01545508
8,75
800
0,978 0,9765625 -0,001437 -0,01473437
10
900
1,1 1,0986328 -0,001367 -0,01401367
11,25
1000
1,222 1,2207031 -0,001297 -0,01329297
12,5
1500
1,8335 1,8310547 -0,002445 -0,02506445
18,75
2000
2,45 2,4414063 -0,008594 -0,08808594
25
2500
3,06 3,0517578 -0,008242 -0,08448242
31,25
3000
3,676 3,6621094 -0,013891 -0,14237891
37,5
3500
4,286 4,2724609 -0,013539 -0,13877539
43,75
4000
4,9 4,8828125 -0,017188 -0,17617188
50
4095
4,9987 4,9987793 0,0000793 0,000812793
51,1875
tats.
Anmerkungen
Ausg.Sp.
0,0124333 Bis D/A-Wert 4 reagiert der Wandler kaum
0,012462 nicht relevant, da die kleinste einstellbare
0,0124703 Spannung 0,1 V sein soll, das aber genau!
0,0124889
0,0125074
0,0179995 interessanter Bereich für kleine
0,0302668 Spannungen, hier fallen die Abweichungen
0,0810579 besonders unangenehm auf
0,2076259
0,3337838
0,4607617
0,5877396
0,7147176
0,8437455
0,9717484
1,1005714
1,2451793
2,4944586
3,7447629
4,9868672
6,2771465 ok, Abweichungen tolerierbar
7,5059258 nach oben hin, kann Abweichung
8,7654551 durch Verstärkungseinstellung
10,014734 angenähert werden
11,264014
12,513293
18,775064
25,088086
31,334482
37,642379
43,888775
50,176172
51,186687 nicht mehr relevant
Die theroretische Ausgangsspannung bestimmt sich folgendermaßen:
D/A-Wert x Ref.Spannung/4096
Resultat: Gerade in den wichtigen, kleinen Spannungsbereichen sind die
Abweichungen zu groß. Die Abweichungen würden die Messergebnisse des
RoeTest verfälschen.
Verbesserung durch Trimmer:
Der D/A-Wandler ist nichts anderes als eine Widerstandskette mit verschiedenen
Abgriffen. Legt man zwischen Masse-Pin und Masse einen keinen Widerstand kann
man die unteren Werte etwas nach oben schieben.
Ich habe einen Trimmer vorgesehen um den Mittelwert der unteren Spannung
anzupassen. Mit den Trimmern "unten" und "oben" habe ich versucht, die
Ausgangsspannung an zwei Punkten (1V und 50V) möglichst genau einzustellen.
Ich habe dann die Ausgangsspannung bei DA-Wert 16 - dies entspricht einer
Soll-Ausgangsspannung von -0,2V gemessen: Ist-Spannung: -0,189V (Abweichung
11 mV).
Die Abweichung ist immer noch zu groß. Schlechter als bei Verwendung der
8-Bit-Wandler und Bereichsumschaltung! (meine neueste 8-Bit-G1-Karte hat bei 0,2
V einen tats. Wert von 0,2013 V (Abweichung 1,3mV). Bei größeren Spannungen
ist die Genauigkeit sogar meist besser als 0,1 %.
Die Fehler des 12-Bit-D/A-Wandlers werden durch die erforderliche 10-fache
Verstärkung ebenfalls 10-fach verstärkt und wirken sich besonders in den wichtigen
kleinen Bereichen aus. Bei 8-Bit und Bereichsumschaltung gibt es im kleinen
Bereich ja nur eine 1-fache Verstärkung und somit keine Verstärkung der
Ungenauigkeit. Deshalb kann der 8-Bit-Wandler genauer sein, als der
12-Bit-Wandler ohne Bereichsumschaltung! Lediglich die Auflösung ist halt nicht
über den ganzen Bereich von 0-50V so hoch. Das ist aber gar nicht notwendig.
Die Aussage von Microchip, daß im unteren Bereich die Linearität ungenau ist, ist
richtig. Microchip sagt im Datenblatt, daß man nur die D/A-Wertebereiche von
100-4000 verwenden soll, wenn eine Genauigkeit von mindestens 1% gefordert
wird. Man könnte mit einem OP die Ausgangsspannung nach unten verschieben
und per Software die ersten 100 Stufen weglassen. Diese zusätzliche Maßnahme
bedeutet aber weiteren Schaltungsaufwand mit allen Problemen (Temperaturdrift?).
Eine bessere Genauigkeit als mit der 8-Bit-Lösung würde man aber nicht erreichen.
Fazit:
12-Bit-Wandler sind
nur im SMD-Gehäuse existent
schwer beschaffbar
auch nach zusätzlichen schaltungstechnischen Maßnahmen ist die Genauigkeit
schlechter als bei der bisherigen Lösung (Bereichsumschaltung)
Ich werde also auch künftig bei den 8-Bit PCF8591 bleiben. In Verbindung mit der
Bereichsumschaltung über Relais sind diese die bessere Lösung .
Man könnte es vergleichen mit den Digitalkameras: Eine hohe Pixelzahl sagt noch
nichts über die Qualität der Bilder aus. Diese ist vielmehr vom Gesamtsystem (z.B.
Objektiv, etc.) abhängig. Übertragen auf das RoeTest: Ein D/A-Wandler mit höherer
Auflösung bringt alleine nichts. Die Gesamtlösung muß stimmen!
Herunterladen