KomplementÀres Paar
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.
Analog-Hardcore
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).
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.
Multiuser-Wandler
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.
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.
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.
SpannungsschĂŒrend
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.
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.
Firmware-Plug&Play
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).
Aufzucht und Pflege
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.
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.
Henne und Ei
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.
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.
Massen-Demo
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.
Völlig ausgelöst
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.
| 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
Copyright © 2007 Heise Medien