zurück zum Artikel

KomplementÀres Paar

| Carsten Meyer

Zwei Steckkarten mit hochwertigen A/D- und D/A-Wandlern komplettieren das erste Messmodul der c't-Lab-Reihe. Jede der beiden Wandlerkarten besitzt mit (bis zu) 16 Bit Auflösung und acht KanĂ€len genug Potenzial, um auch anspruchsvollere Mess- und Steuerungsaufgaben zu bewĂ€ltigen - 0,01 % Genauigkeit sprechen fĂŒr sich.

Viereinhalb Dezimalstellen Genauigkeit bei hundert Messungen pro Sekunde an gleichzeitig acht EingangskanĂ€len - so die Eckdaten der A/D-Wandlerkarte AD16-8. Zum Vergleich: Übliche Handmultimeter bieten nur dreieinhalb Dezimalstellen bei kaum mehr als drei Messungen pro Sekunde - und natĂŒrlich nur einen einzigen Wandlerkanal. In die andere Richtung geht es nicht minder genau: Die D/A-Wandlerkarte DA12-8 kann man wahlweise mit einem 12- oder 16-Bit-Wandler bestĂŒcken, sie besitzt ebenfalls acht KanĂ€le. Beide Karten akzeptieren beziehungsweise liefern Spannungen zwischen -10 und +10 V, was in der Mess- und Steuerungstechnik eine Art Industriestandard darstellt. Der Trigger-Eingang erleichtert bei der AD-16-8 automatisierte Messungen: Eine Impulsflanke löst bei entsprechender Softwarekonfiguration die Messung aus, und das ADA-IO-Modul liefert die gewĂŒnschten Messwerte dann auch automatisch.

Nicht verschwiegen sei an dieser Stelle, dass die beiden Module an Basteltalent und Geldbörse erhöhte Anforderungen stellen. Gute Wandler-ICs haben ihren Preis - im vorliegenden Fall zehn bis 25 Euro - und sind nicht an jeder Ecke erhĂ€ltlich, auch der Abgleich erfordert FingerspitzengefĂŒhl und hochwertiges Messequipment. DafĂŒr erhĂ€lt man Wandler, die keinen Vergleich mit kommerziellen Produkten fĂŒr viele hundert Euro zu scheuen brauchen.

FĂŒr viele Anwendungen, etwa beim automatisierten Abgleich in der industriellen Fertigung, reichen Auflösung und Genauigkeit der internen A/D-Wandler des ATmega32, wie sie der simple Analogteil der IO8-32-Karte aus der vorletzten c't verwendet, nicht aus. Will man die gegebene 10-Bit-Auflösung gar bipolar nutzen, also fĂŒr positive und negative Eingangsspannungen gleichermaßen, bleiben pro „Quadrant“ nur mehr 9 Bit ĂŒbrig, weil ein Bit fĂŒr das Vorzeichen draufgeht - das sind umgerechnet weniger als drei Dezimalstellen. Ein zusĂ€tzlicher externer A/D-Wandler sollte schon deutlich mehr können, damit sich der Aufwand rechnet.

Unsere AD16-8-Schaltung verwendet einen Sampling-ADC mit der klassischen sukzessiven Approximation, den LTC1864 von Linear Technologies. Der liegt in seinem gesamten Wertebereich um maximal drei LSB-Counts daneben, und seine dynamische LinearitĂ€t ist durchweg besser als ein LSB (Least Significant Bit). Durch seine hohe mögliche Sampling-Frequenz kann man pro Messung mehrere Samples ziehen und mitteln, was den Störabstand merklich erhöht. Die frĂŒher bei A/D-Wandlern nötige Sample&Hold-Stufe ist beim LTC1864 bereits eingebaut (genauer gesagt: systemimmanent durch das Wandlerregister aus geschalteten Kondensatoren - siehe Datenblatt).

Den Kern unserer A/D-Wandlerkarte bildet der LTC1864, ein schneller 16-Bit-ADC. Der eingangsseitige Multiplexer schaltet einen von acht EingangskanÀlen auf den Wandler.

Ein A/D-Wandler kann nicht besser sein als seine Referenzspannung, die das Approximationsregister zum Vergleich mit der Eingangsspannung benötigt - vergleichbar mit dem Pariser Ur-Meter, an dem sich jeder Zollstock zu orientieren hat. Der LTC1864 besitzt keine eingebaute Referenzquelle, wir haben ihm deshalb einen LT1019-2,5 zur Seite gestellt, im Prinzip eine Zenerdiode mit Ă€ußerst geringem Temperaturkoeffizienten (typisch <5 ppm/°C) und niedriger Langzeit-Drift. R13 dient gegebenenfalls zum Feinabgleich, an „TP Ref“ stellt man genau +2,56000V gegenĂŒber der Karten-Masse ein. Über JP2 kann man die Referenzspannung auch anderen Karten oder dem internen Wandler des ATmega32-Controllers auf dem ADA-IO-Motherboard zur VerfĂŒgung stellen. Der LT1019-2,5 arbeitet um einiges besser als die interne Referenzquelle des ADA-IO-Controllers, die man ĂŒbrigens mit dem Befehl <"REF=1!"> explizit ein- und mit <"REF=0!"> abschalten kann. Wird JP2 gesteckt, muss natĂŒrlich die interne Referenz des Controllers abgeschaltet sein, sonst herrscht eine gewisse Uneinigkeit auf der Leitung.

Schon der Preis des LTC1864 von rund 15 Euro verbietet es, fĂŒr jeden Eingangskanal einen eigenen ADC (Analog-Digital-Converter) vorzusehen. Wir betreiben den Baustein deshalb sozusagen im Multiuser-Betrieb: Die acht EingĂ€nge gelangen zunĂ€chst in einen Analogmultiplexer, der jeweils einen Kanal zur Messung auswĂ€hlt und auf den EingangsverstĂ€rker schaltet. Das erledigt eine Interrupt-Routine in der ADA-IO-Firmware, die stĂ€ndig die EingangskanĂ€le abklappert und die Messwerte in einem Array speichert. Jeder der im Tausendstel-Sekunden-Raster ermittelten Messwerte besteht wiederum aus vier Samples, die wie oben erwĂ€hnt zur Störspannungsreduktion gemittelt werden. Ein Messzyklus dauert somit 8 ms - diese Zeit muss das abfragende PC-Programm in etwa einkalkulieren, bis ein angeforderter Messwert vorliegt.

Einige Bauteile, unter anderem der ADC, werden als SMD-Bauteile auf der Lötseite der Platine montiert. Bei der kĂ€uflichen Version sorgt eine große KupferflĂ€che auf der BestĂŒckungsseite fĂŒr eine gute Masse.

Der EingangsverstĂ€rker besteht aus einem hochwertigen Doppel-FET-OpAmp vom Typ OPA2107, der die Signale fĂŒr den ADC aufbereitet und einen (fast) unendlich hohen Eingangswiderstand aufweist. Ein hochprĂ€ziser Spannungsteiler nach dem ersten OpAmp setzt die Eingangsspannung so um, dass der ADC quasi-bipolar wandelt; bei 0V Eingangsspannung „sieht“ er die HĂ€lfte der Referenzspannung an seinem Eingang (den entstehenden Roh-Offset von 32768 zieht die ADA-IO-Firmware automatisch ab). Die VerstĂ€rkung des OpAmps lĂ€sst sich mit Jumper JP1 so einstellen, dass entweder 1V (gezogener Jumper, fĂŒr spezielle AnwendungsfĂ€lle) oder 10 V Eingangsspannung (gesteckter Jumper, Default) zum „Vollausschlag“ des Wandlers fĂŒhren. Die Wahl des Eingangsspannungsbereichs gilt fĂŒr alle KanĂ€le gemeinsam.

Mit dem LTC1257 im DIL-GehĂ€use dĂŒrfte die BestĂŒckung unseres D/A-Wandlers keine Probleme bereiten. FĂŒr alle FĂ€lle haben wir auf der Fertig-Platine noch Lötpads fĂŒr die SMD-Version des DACs vorgesehen.

Der schnelle LTC1864 reagiert leider Ă€ußerst mimosenhaft auf Overshoots an seinen SPI-Pins, die die vorgeschalteten WiderstĂ€nde R1, R4 und R16 wirksam dĂ€mpfen. Spikes am Analog-Eingang, die unmittelbar auf das Wandlungsergebnis durchschlagen wĂŒrden, unterdrĂŒcken C4 und C9; die gewĂ€hlte Zeitkonstante hat keinerlei Einfluss auf die Wandlungsgenauigkeit. Entsprechend sorgfĂ€ltig wurde das Platinen-Layout ausgefĂŒhrt: Jeder Millimeter zusĂ€tzliche Leiterbahn zum Masse-Pin 4 oder zum Entkopplungskondensator C3 wĂŒrde das Messergebnis verfĂ€lschen. Aus gutem Grund ist der LTC1864 auch nicht im DIL-GehĂ€use erhĂ€ltlich, dessen vergleichsweise lange Zuleitungs-Pins hier absolut indiskutabel wĂ€ren. Die Bypass-Kondensatoren C3, C4 und die DĂ€mpfungswiderstĂ€nde sind ebenfalls als SMD-Bauteile ausgefĂŒhrt. Die verwendete SO8-Version des LTC1864 mit 1,27 mm Beinchen-Abstand lĂ€sst sich bei gezĂŒgeltem Koffeingenuss noch gut von Hand löten.

Bislang kam in den c't-Lab-Artikeln nur die Messwerterfassung zum Zuge, nun geht es in die andere Richtung: Zum Steuern analoger VorgĂ€nge benötigt man einen D/A-Wandler, beim ADA-IO-Modul ist dies die DA12-8-Karte. Sie lĂ€sst sich wahlweise mit einem 12- oder 16-Bit-DAC bestĂŒcken, in beiden FĂ€llen stehen acht AusgangskanĂ€le zur VerfĂŒgung. Wie bei der AD16-8-Karte betrĂ€gt der nutzbare Spannungsbereich -10 V bis +10 V. Kommt die zu steuernde Schaltung mit weniger aus, reicht ein simpler Spannungsteiler am Ausgang.

Der D/A-Wandler kann alternativ mit einem 12- oder 16-Bit-DAC bestĂŒckt werden, wobei letzterer hochqualitative Bauteile in seiner Peripherie erfordert.

Die Wandlung besorgt ein LTC1257 (12 Bit) oder LTC1655 (16 Bit), wobei letzterer mit deutlich ĂŒber 20 Euro eines der teuersten Bauteile des Projektes ist. Dass Industrie-DACs bei gleicher Bitzahl durchweg um einiges teurer sind als ADCs, hat einen einfachen Grund: Die aktuellen Sampling-ADCs arbeiten mit abgestuften Kondensatoren im Approximationswandler, die sich recht einfach mit ausreichend genauen Werten integrieren lassen. Die statisch arbeitenden DACs mĂŒssen jedoch Widerstandsteilerketten bemĂŒhen, und die fressen Silizium-Platz und sind abgleichintensiv: Jeder gute statische DAC wird im Halbleiterwerk per Laser abgeglichen. Die billigen Delta-Sigma-DACs kommen zwar ohne Teilerketten und Abgleich aus, arbeiten aber nur dynamisch - optimal fĂŒr WechselgrĂ¶ĂŸen, weshalb man sie vornehmlich im Audiobereich findet.

Der DAC-Baustein auf unserer DA12-8 erhĂ€lt seine Datenworte ĂŒber eine SPI-Schnittstelle, einen schnellen seriellen Bus, wie er auch beim ADC LTC1864 verwendet wird. Auf ATmega-Seite haben wir den SPI „zu Fuߓ implementiert (einige Bits von Port B). Der Controller besitzt zwar einen Hardware-SPI-Bus, der aber nur einen einzigen Baustein steuern könnte. Mit der steigenden Flanke auf STRDAC (PB3) ĂŒbernimmt der DAC das eingeschobene Datum in sein Ausgangsregister, worauf die Ausgangsspannung den eingestellten Wert annimmt. Die ist bei den verwendeten LTC-Bausteinen allerdings unipolar und mit 0 bis rund 2 V (bzw. 0 bis 4 V beim LTC1655) auch zu gering fĂŒr den angepeilten Zweck. Deshalb entfernt eine „Bipolarisierschaltung“ mit einem Doppel-OpAmp den Gleichspannungs-Offset (halbe Referenzspannung) und hebt auch gleichzeitig den Spannungshub auf ± 10 V an. Sollten Sie der Versuchung erliegen, eigene Treiber fĂŒr die Schaltung programmieren zu wollen: Der VerstĂ€rker arbeitet invertierend, ein Datum von „0“ erzeugt also die volle positive, ein „$FFFF“ die volle negative Ausgangsspannung. Die ADA-IO-Firmware trĂ€gt diesem Umstand natĂŒrlich Rechnung und bereitet die Ausgabewerte entsprechend auf, passend fĂŒr den jeweils eingesetzten Wandlertyp.

Da der Controller nicht ohne Weiteres feststellen kann, ob und welcher der beiden möglichen D/A-Wandler seinen Dienst versehen soll, haben wir mit der „Sense“-Leitung auf PB7 eine einfache „Plug&Play“-Mimik implementiert. Stellt die Firmware beim RĂŒtteln an der Datenleitung PB1 fest, dass die Diode D1 die Sense-Leitung auf logisch Null zieht, vermerkt er das Vorhandensein eines 12-Bit-Wandlers in seiner Treiber-Liste. Ist zusĂ€tzlich D2 eingelötet, wird stattdessen der 16-Bit-Treiber eingebunden. Ein Ă€hnlicher Mechanismus findet sich ĂŒbrigens auch auf der AD16-8-Karte. PC-programmseitig ist es deshalb völlig egal, ob der Wandler 12 oder 16 Bit auflöst, es kommt immer die richtige Ausgangsspannung heraus.

Geizig wie wir sind, haben wir auch der DA12-8-Karte einen (De-) Multiplexer spendiert und damit sieben DAC-Bausteine eingespart; den Software-Overhead steckt der Atmel-RISC-Controller locker weg. Die DAC-Ausgabe lĂ€uft wie die ADC-Routine im gleichen Ein-Millisekunden-Interrupt der Firmware, nach spĂ€testens 8 ms sind alle acht AusgĂ€nge aktualisiert. Dem auch als Sample-Stufe genutzten Multiplexer folgen acht Hold-Stufen aus Kondensator und Spannungsfolger-OpAmp, die den Spannungswert fĂŒr sieben Millisekunden zwischenspeichern und fĂŒr eine knackig-niedrige Ausgangsimpedanz sorgen. Letztere wird zwar durch die WiderstĂ€nde R12 bis R19 etwas enthĂ€rtet, aber ohne ebendiese neigen die OpAmps zum Schwingen, wenn die LastkapazitĂ€t (z. B. Kabel) einen gewissen Wert ĂŒberschreitet. Bei kurzen Verbindungen und rein ohmscher Last können Sie diese WiderstĂ€nde auch durch DrahtbrĂŒcken ersetzen.

Die 16-Bit-Version des Wandlers stellt an die OperationsverstĂ€rker erhöhte Anforderungen bezĂŒglich Offsetspannung und Drift; das niederwertigste Bit ist hier ja nur noch rund 300 ”V klein, wĂ€hrend die Offset-Fehlerspannung bei FET-OpAmps durchaus im zweistelligen Millivolt-Bereich liegen kann. Zwar lĂ€sst sich der Offset-Fehler jedes einzelnen Ausgangs mit dem OFS-Parameter des ADA-IO-Moduls ausgleichen, die Temperatur-Drift kann der Softwaregegenangriff jedoch nicht kompensieren. FĂŒr U1 sollten Sie dann statt des TL072 den weit besseren OPA2107 oder den AD712 verwenden, fĂŒr U4 und U5 statt der TL074ACN/LF444 je einen AD713. Gegen einige (zig) Mikrovolt Offset-Fehler kann man ohnehin nichts unternehmen, die entstehen schon durch Thermospannungen an unterschiedlich warmen Lötverbindungen und Steckkontakten.

Ist Jumper JP2 vorhanden, erhĂ€lt der D/A-Wandler eine externe Referenzspannung zugefĂŒhrt, etwa die hochstabile der AD16-8-Karte, wenn dort der Referenzspannungs-Jumper ebenfalls steckt. Die interne Referenz des ATmega32 muss dann natĂŒr-lich abgeschaltet werden (mit „REF=0!“), da sie an der gleichen Leitung hĂ€ngt. Die externe Referenzspannung muss höher sein als die interne der DACs (bei beiden 2,048 V, siehe hierzu auch die DatenblĂ€tter). R6 und R4 bestimmen die VerstĂ€rkung und damit die maximale Ausgangsspannung, bei externer Referenzspannung muss man sie den neuen Gegebenheiten anpassen (R6 bei Uref=2,56 V auf 1k2 erhöhen).

FĂŒr beide Karten gibt es bei eMedia und segor professionell gefertigte Leerplatinen, mit dem einseitigen Layout (veröffentlicht auf der c't-Lab-Projekt-Seite) sollten aber auch Selbst-Ätzer gut klarkommen; unter dem Soft-Link finden Sie gut nachvollziehbare Anleitungen. Die Fertigplatinen haben allerdings den Vorteil, dass die eingezeichneten DrahtbrĂŒcken entfallen können, weil sie doppelseitig kaschiert und durchkontaktiert ausgefĂŒhrt sind. Zudem bietet ihre großflĂ€chige MassefĂŒhrung auf der BestĂŒckungsseite bei den doch recht kritischen Schaltungen deutliche Vorteile. Wer bei seinem HĂ€ndler nur die SMD-Version des LTC1257 oder LTC1655 bekommt, muss ohnehin auf die doppelseitige Version der DA12-8-Platine zurĂŒckgreifen, da nur hier alternative SMD-Lötpads auf der BestĂŒckungsseite vorgesehen sind. Trotz alledem: Unser Musteraufbau funktionierte auch mit einseitigen Ätzungen aus Mutters Auflaufform gut.

Schon weitgehend der Serie entspricht dieses WandlerpĂ€rchen. Die bei eMedia erhĂ€ltlichen Fertigplatinen sind allerdings doppelseitig durchkontaktiert ausgefĂŒhrt, sodass die DrahtbrĂŒcken entfallen können und sich eine bessere Masse-FĂŒhrung ergibt.

Beachten Sie auf der DA12-8-Karte die bei LTC1257 und LTC1655 unterschiedliche WiderstandsbestĂŒckung: Mit dem LTC1257 ist fĂŒr R7 eine DrahtbrĂŒcke einzusetzen, R8 entfĂ€llt. Beim LTC1655 bestĂŒckt man R7 und R8 mit je 10k 0,1 %. Grund ist der unterschiedliche Ausgangsspannungsbereich, der beim LTC1257 0V bis 2,048 V und beim LTC1655 0V bis 4,096 V betrĂ€gt. Die Hold-Kondensatoren C6 bis C15 sind mit 100n bemessen, weil die „Charge Injektion“-Ladung des Multiplexers sonst die Ausgangsspannung beim Umschalten der KanĂ€le zu sehr verschieben wĂŒrde. Verwenden Sie hier nur hochwertige Folienkondensatoren, keramische sind fĂŒr diesen Zweck weniger geeignet.

Es versteht sich von selbst, das billige 5%-KohleschichtwiderstĂ€nde auf den vorgestellten Platinen nichts zu suchen haben. Bei den 16-Bit-Wandlern sind sogar die handelsĂŒblichen 1%-MetallfilmwiderstĂ€nde ĂŒberfordert, die mit ihrem Temperaturkoeffizienten von bis zu 200ppm/°C (TK200) alle Genauigkeits-BemĂŒhungen der Wandler zunichte machen. Verwenden Sie hier wie in den StĂŒcklisten angegeben die 0,1%-AusfĂŒhrungen mit TK50 oder besser. Diese WiderstĂ€nde kosten zwar rund einen Euro das StĂŒck, was bei der begrenzten Anzahl aber zu verschmerzen ist. Der 12-Bit-Wandler kommt dagegen durchweg mit 1%-WiderstĂ€nden aus.

Die weitere BestĂŒckung ist bis auf die SMD-Bauteile auf der AD16-8-Karte unkritisch. Nach dem Einschalten sollte ADA-IO auf einem Terminal-Programm (z. B. HyperTerm, eingestellt auf 38400/8n1, lokales Echo eingeschaltet) die ĂŒbliche BegrĂŒĂŸungsmeldung zeigen, nun allerdings mit einer AufzĂ€hlung der eingesetzten I/O- und Wandlerkarten.

Die Messmittel zum Abgleich sollten immer eine Dekade besser sein als das zu kalibrierende Objekt. FĂŒr die A/D-Wandlerkalibrierung mit PrĂŒfsiegel und Zertifikat benötigen Sie - aus offizieller Sicht - ein PTB-rĂŒckfĂŒhrbares Spannungsnormal, also eines, dessen Kalibrierkette bei der PTB in Braunschweig endet. Die verleiht ihr Super-Volt nĂ€mlich nur ungern, und zum Abgleich brĂ€uchten Sie sogar zehn davon.

Das AD-Abgleichprogramm kann nur einen der acht EingangskanÀle gleichzeitig bearbeiten. Die aktuelle Kanalnummer stellt man mit dem Schieber links ein. Der ausgelesene Rohwert des ADCs wird integriert, damit sich eine ruhigere Anzeige zur Offset-Kompensation ergibt.

Es geht aber auch einfacher. Wenn es Ihnen nur auf relative Genauigkeit ankommt, genĂŒgt auch ein Voltmeter vom Elektronikversandhaus, ergĂ€nzt mit einer auf 10 V einstellbaren, stabilen Spannungsquelle. Besser ist natĂŒrlich ein möglichst frisch kalibriertes Digitalvoltmeter mit mindestens fĂŒnf Stellen Genauigkeit, etwa ein Fluke 45 oder ein Agilent 34401A - die sind teuer, deshalb gegebenenfalls ausleihen. FĂŒr den 12-Bit-Wandler oder den Vorabgleich tut es auch ein gutes Handmultimeter. Wenn Sie den LT1019-2,5 auf der AD16-8-Karte mit R13 einmalig auf genau 2,56000 V Ausgangsspannung abgleichen (Pluspol an TP Ref, Minus an Masse direkt auf der AD16-8-Karte, vorher mindestens 20 Minuten warmlaufen lassen, ebenso das Messmittel), haben Sie schon einmal eine gute Referenz fĂŒr spĂ€tere Kalibrierarbeiten.

Die ADA-IO-SubkanĂ€le fĂŒr die AD16-8-Karte reichen von 10 bis 17. Wenn Sie nun mit „0:VAL 10?“ den ersten AD-Kanal abfragen, sollte ADA-IO mit einem Messwert ungleich Null antworten, da sich am „floatenden“ Analog-Eingang irgendeine Spannung zwischen -10 und +10 V einstellen wird - aber bestimmt nicht exakt 0V. Wenn Sie AD16-8/PL2 Pin 1 mit Pin 10 kurzschließen, wird sich auf Anfrage ein Messwert in grober NĂ€he zu 0 ergeben. Der verbleibende Offset-Fehler wird spĂ€ter per OFS-Parameter korrigiert, ebenso der Skalenfaktor.

An allen AusgĂ€ngen DA12-8/PL1 (Aout0 bis Aout7, Pin 1 bis 8) sollten nach dem Einschalten rund 0 Volt zu messen sein. WĂ€hlen Sie den 200-mV-Bereich ihres Multimeters und gleichen Sie die Spannung an DA12-8/PL1 Pin 1 (Minuspol an Pin 10) mittels R5 auf Minimum (0V) ab. Stellen Sie nun mit „0:VAL 20=10!“ eine Soll-Ausgangsspannung von +10 V an DA12-8/PL1 Pin 1 ein. Mit DA12-8/R4 bringen Sie nun den Ist-Wert auf die gewĂŒnschten +10 V. Dieser Vorgang sollte so lange wiederholt werden, bis beide Werte stimmen.

FĂŒr beide Karten haben wir grĂ¶ĂŸtenteils selbsterklĂ€rende Abgleichprogramme unter LabView erstellt (siehe Bild), die die Kalibrierarbeiten stark vereinfachen. Kontrollieren Sie nach dem Start, ob als „Ressource“ auch die gewĂ€hlte COM-Schnittstelle erscheint; gegebenenfalls mĂŒssen Sie diese im „Measurement & Automation Explorer“ (MAX) neu zuweisen. Bei einwandfreier Kommunikation blinkt das „Valid Response“-Feld rhythmisch auf. Mit den Buttons „Read“ und „Write“ können Sie die Offset- und Skalenfaktor-Werte jedes Kanals auslesen und neu beschreiben, die nötige vorherige Schreibfreigabe erledigt das Programm selbst. Beim DA12-8-Abgleich sollten sich die Korrekturen auf die gegebenenfalls leicht unterschiedlichen Offset-Spannungen der restlichen Ausgangs-OpAmps beschrĂ€nken, da Ausgang Aout1 ja bereits durch den Hardwareabgleich genullt wurde. Ein Offset-Wert von +1 entspricht beim 12-Bit-Wandler einer Spannung von +5 mV, beim 16-Bit-Wandler von etwa +300 ”V. Stellen Sie den Offset jedes Kanals so ein, dass sich eine möglichst geringe (<5 mV) Ausgangsspannung ergibt. Der große Spannungs-Wahlschalter rechts steht fĂŒr diesen Abgleichpunkt natĂŒrlich auf „0V“.

Bei der AD16-8-Karte mĂŒssen Sie sowohl Offset-Spannung als auch Skalenfaktor Software-kalibrieren, um Exemplarstreuungen des Spannungsteilers auszugleichen; wegen der sehr feinen „Körnung“ des 16-Bit-Wandlers haben wir auf eine Hardwareabgleichmöglichkeit (bis auf die Referenzspannungseinstellung) verzichtet. Schließen Sie zunĂ€chst sĂ€mtliche AnalogeingĂ€nge (Ain0 bis Ain7) mit Masse (PL2 Pin 9 und 10) kurz - am besten mit einem selbstgefertigten Kurzschlussstecker, lĂ€ngere Kabel sind unbedingt zu vermeiden - und beobachten Sie die Ausgangsspannungsanzeige.

Die Zoom-Taste bewirkt eine Anzeige-Dehnung um den Faktor 1000. Der Zeiger des virtuellen Messwerks sollte nun gleichmĂ€ĂŸig um den Nullpunkt herum hĂŒpfen, wenn der Offset-Wert stimmt. Auf dem Oszillogramm sehen Sie nun das Eigenrauschen des Wandlers, das laut Datenblatt etwa 4 LSB-ZĂ€hlerpunkte betragen darf; einen gewissen Beitrag zum Rauschen leisten auch die vorgeschalteten OpAmps. Die aufgezeichnete Linie liegt bei korrektem Offset-Abgleich genau in der Mitte. Das Feld „Raw“ zeigt den naturbelassenen Roh-Integerwert des Wandlers an, mit dem blauen Button kann man diesen Wert negiert in das Offset-Feld kopieren und den eingestellten Kanal damit nullen („Write“ nicht vergessen).

Etwas kritischer gestaltet sich der Skalenfaktor-Abgleich, da hierfĂŒr eine hochstabile +10-V-Quelle benötigt wird. Ein Labornetzteil aus der Amateurliga eignet sich dafĂŒr in der Regel nicht, da es viel zu stark driftet. Ersatzweise könnte die eigene Referenzspannung der AD16-8-Karte dafĂŒr herhalten - natĂŒrlich nur, wenn sie hochprĂ€zise abgeglichen wurde; leider betrĂ€gt sie nicht 10 V, sondern nur 2,56 V. Wir schlagen daher vor, dass Sie erst den DA12-8-Abgleich durchfĂŒhren und deren Ausgangsspannung (mit dem Wahlschalter auf +10 V einstellen) als Kalibrierspannung fĂŒr die AD16-8-Karte verwenden. Ein parallel angeschlossenes Digitalvoltmeter dient dabei zur Kontrolle. Stellen Sie den jeweiligen AD-Skalenfaktor einfach so ein, dass die Anzeige mit dem abgelesenen Wert auf dem Digitalvoltmeter ĂŒbereinstimmt. Der Ein- und Ausgangsspannungsbereich der c't-Lab-Karten ĂŒber alles endet ĂŒbrigens nicht bei exakt 10 V, sondern bei 10,23 V, sodass immer etwas Abgleichreserve bleibt.

Beide LabView-Programme können auch gleichzeitig laufen. Wenn Sie den Analog-Ausgang der DA12-8-Karte mit dem AD16-8-Eingang ĂŒber ein 10-poliges Flachbandkabel verbinden, sollten Sie die eingestellte Ausgangsspannung jedes DA-Kanals gleichzeitig am AD-Eingang messen können. Stimmen die Werte aller KanĂ€le ĂŒberein, ist das WandlerpĂ€rchen einsatzbereit.

Den möglicherweise mit jeder Firmware-Revision aktualisierten oder erweiterten Befehlssatz können Sie als Tabelle auf unserer Projektseite (siehe Soft-Link) einsehen. GegenĂŒber der in c't 11/2007 abgedruckten Fassung sind inzwischen Befehle zur externen Triggerung (Logik-Signal an PL1 von AD16-8) hinzugekommen, die einer nĂ€heren ErlĂ€uterung bedĂŒrfen.

Viele Messaufgaben lassen sich mit dem Trigger-Eingang vereinfachen oder automatisieren. Im normalen Polling-Betrieb liefert ADA-IO nur auf explizite Messwertabfrage ein Messergebnis, das jeweils aktuell ermittelt wird. Mit der Trigger-Funktion kann man dafĂŒr sorgen, dass ADA-IO die Messwerte automatisch und ohne Abfrage ausspuckt. Zu jedem Analogport und auch zu den Digital-I/Os existiert eine sogenannte Trigger-Maske, in der die einzelnen Bits den jeweiligen Messkanal beziehungsweise I/O-Port reprĂ€sentieren. Ist ein Bit gesetzt, liefert ein Trigger-Impuls an AD16-6/PL1 die Messergebnisse zu dem entsprechenden Kanal automatisch. Beispiel: Setzt man mit „TRM 1=15!“ die ersten vier Bits (15 = 00001111 binĂ€r) in der Trigger-Maske fĂŒr die AD16-8-Karte (SubkanĂ€le 10 bis 17), liefert ein Trigger-Impuls auch die Messergebnisse der ersten vier A/D-SubkanĂ€le (10 bis 13, Ain0 bis Ain3). Mit dem „TRL“-Parameter (Trigger-Level) legt man fest, ob die Triggerung auf der positiven (TRL=1!) oder negativen (TRL=0!, Default) Flanke des Logik-Signals erfolgen soll. Auf der AD16-8-Karte zieht Pullup-Widerstand R2 das Trigger-Signal nach +5 V, sodass ein einfacher Schaltkontakt nach Masse reicht, um den Messvorgang auszulösen.

Mit dem Trigger-Timing-Parameter „TRT“ kann man eine periodische Triggerung erzwingen: „TRT=1000!“ zum Beispiel liefert eine Messwertausgabe anhand der gesetzten Trigger-Masken-Bits einmal pro Sekunde (1000ms), auch wenn kein Trigger-Impuls anliegt. Mit „TRT=0!“ schaltet man die periodische Ausgabe wieder ab (Default). Werte unter 10 ms sind wegen des internen 8-ms-Messzyklus nicht sinnvoll und auch nicht zulĂ€ssig, die Trigger-Maske fĂŒr den Analogausgang (TRM 2) wird ignoriert. Ein gesetztes Masken-Bit fĂŒr die I/O-Ports gilt fĂŒr den gesamten 8-Bit-Port: „TRM 3=31!“ beispielsweise liefert bei Triggerung die Bytewerte fĂŒr die IO8-32-Ports 1 bis 5. Alle Trigger-Parameter bleiben im EEPROM-Bereich des ATmega-Controllers dauerhaft gespeichert, Änderungen verlangen immer eine vorherige Schreibfreigabe mit „WEN=1!“, wie in c't 11/2007 beschrieben.

Das ADA-IO-Modul ist mit den hier vorgestellten Wandler-Boards vorerst vollstĂ€ndig; der bei voller BestĂŒckung noch frei bleibende Slot kann fĂŒr eigene Erweiterungen, etwa SensorvorverstĂ€rker, dienen. Zu einem spĂ€teren Zeitpunkt der Serie wird noch eine Timer/Counter-Karte nachgereicht, die Impulse und Frequenzen zĂ€hlen kann. Der nĂ€chste c't-Lab-Beitrag stellt erst einmal das versprochene Funktionsgeneratormodul DDS samt Bedien-Panel vor.

Soft-Link [1]

Forum zu c't-Lab [2]

StĂŒckliste AD16-8
Halbleiter
D1 1N4148
U1 AD712 oder OPA2107A DIL
U2 LT1019-2,5 oder REF-43 DIL
U3 DG508 od. DG408 DIL
U4 LTC1864 SO8
Passive Bauteile
C1, C2, C5 4”7 35V Ta.
C3 220n SMD1206
C9 2n2 SMD0805
C4 1n ker.
C6 100n 63V MKT
C7,C8 100n ker.
L1 10”H axial
R1, R4, R16 470R SMD0805
R15 10k SMD0805
R2 4k7
R3 2k2
R5 10k 0,1%
R6 2k67 0,1%
R7 75k 0,1%
R8 100R
R9 15k 0,1%
R10 8k06 0,1%
R11 2k 0,1%
R12 1k 0,1%
R14 10k 0,1%
R17,R18 10R
R13 2k PrÀz.-Trimmer stehend, inline
PL1 2pol. Platinen-Steckverbinder mit Kabel
PL2 Pfostenverb. 10pol.
JP1, JP2 Jumper (siehe Text)
CONN1 VG-Messerleiste 64pol, 90° a/b, Platine AD16-8
StĂŒckliste DA12-8
Halbleiter
D1 1N4148
D2 entfÀllt
U1 TL072
U2 LTC1257 DIL
U4, U5 TL074ACN oder LF444 DIL
U3 DG508 od. DG408 DIL
Passive Bauteile
C1, C6...C9, C12...C15 100n 63V MKT
C4, C10, C11 100n ker.
C2, C5 47” 25V
C3 4”7 35V Ta.
L1 10”H axial
R1...R3, R9 10k 0,1%
R6 953R 0,1%
R7 0R (DrahtbrĂŒcke)
R8 entfÀllt
R10 10k
R11...R19 100R
R20, R21 10R
R4 100R PrÀz.-Trimmer stehend, inline
R5 200R PrÀz.-Trimmer stehend, inline
PL1 Pfostenverb. 10pol.
JP1 Jumper (siehe Text)
CONN1 VG-Messerleiste 64pol, 90° a/b, Platine DA12-8
BestĂŒckungsvariante 16 Bit
D2 1N4148
U1 AD712 oder OPA2107
U2 LTC1655 DIL oder SO8
U4, U5 AD713 DIL
R7, R8 10k 0,1%

(cm [3])


URL dieses Artikels:
https://www.heise.de/-291076

Links in diesem Artikel:
[1] http://www.heise.de/ct/07/13/links/202.shtml
[2] http://www.heise.de/ct/foren/S-c-t-10-2007-S-124-Fernwirkung/forum-116199/list/
[3] mailto:cm@ct.de