Forum: Analoge Elektronik und Schaltungstechnik 10V Eingang mit 16-bit ADC auf RaspPi


von EGSler (Gast)


Lesenswert?

Ich habe ein Projekt zugeteilt bekommen, in dem es um Messwerterfassung 
geht.
8 differentielle 16-bit ADC sollen diverse Daten von Sensoren aus 
unserem Labor dauerhaft auslesen und an einen Raspberry senden. Die 
Sensoren halten sich an industrielle Standards und liefern 
typischerweise 0-10V (manche auch 4...20mA, das muss ich ebenfalls noch 
beachten).

Ich bin mir darüber im klaren, dass 16bit-AD-Wandlung kein leichtes 
Spiel ist, aber das ist die Mindestanforderung, 18-bit wären theoretisch 
besser.

Worum es mir eigentlich geht:
Ich habe nun einige Herstellerseiten abgesucht und auch den ein oder 
anderen ADC gefunden, der einen Eingangsbereich bis 10V besitzt, aber 
die haben alle irgendwelche anderen Nachteile, wie z.B. nur 
Single-Ended-Kanäle.

Ich habe mir nun den ADS1115 rausgesucht, da er mit I2C leicht 
anzusprechen ist. Davon würde ich 4 Stück für 8 differentielle Kanäle 
anschließen.
Aber da er eine Vref von nur 4,096V besitzt, muss ich die 
Eingangsspannung herunterteilen. Und darauf bezieht sich meine 
eigentliche Frage: Wie sehr muss ich da bei einem Spannungsteiler 
aufpassen? Wie stark ist das Rauschen, das ich mir mit 
Metallschichtwiderständen im Bereich um 10k einhandeln würde? Würde 
diese meine genauen Messungen bereits ad absurdum führen?

Viele Grüße
EGSler

von S. E. (crayse)


Lesenswert?

Wenn 16-bit sicher funktionieren sollen, dann vielleicht besser was 
fertiges?

Z.B. http://www.mccdaq.com/usb-data-acquisition/USB-1608G.aspx
bzw. wohl identisch zu http://www.meilhaus.de/redlab+1608g.htm

Gibt wohl auch Linux-Treiber für den Raspi:
http://kb.mccdaq.com/KnowledgebaseArticle50543.aspx

von Joachim (Gast)


Lesenswert?

EGSler schrieb:

> Aber da er eine Vref von nur 4,096V besitzt, muss ich die
> Eingangsspannung herunterteilen. Und darauf bezieht sich meine
> eigentliche Frage: Wie sehr muss ich da bei einem Spannungsteiler
> aufpassen? Wie stark ist das Rauschen, das ich mir mit
> Metallschichtwiderständen im Bereich um 10k einhandeln würde? Würde
> diese meine genauen Messungen bereits ad absurdum führen?

10k-Widerstände haben ein Rauschen von etwa 13 nV/Wurzel(Hz).

Bei einem Messintervall von 20 ms (um 50 Hz-Störungen zu verringern), 
gäbe das eine mittlere Rauschspannung von etwa 92 nV. Also sehr weit 
unter dem Wert für ein Digit von 62,5 µV.

Gruß

von EGSler (Gast)


Lesenswert?

S. E. schrieb:
> Wenn 16-bit sicher funktionieren sollen, dann vielleicht besser was
> fertiges?

Nunja, es existiert bereits eine professionelle (und entsprechend teure) 
Lösung von NI.
Ich bin als Student dort am Arbeiten und dieses Projekt soll künftig 
irgendwann mal eine Ergänzung darstellen, die kostengünstig einfach auf 
Verdacht hin bei jedem Experiment angebracht werden kann, obwohl man 
nicht davon ausgeht, dort irgendwas bestimmtes zu messen.
Ich vermute mal, dass es vorrangig darum geht, dass ich ein Projekt 
habe^^ ;)

@Joachim
Ah, danke für deine Rechnung, dann kann ich ja einfach einen 
Spannungsteiler verwenden.

von EGSler (Gast)


Lesenswert?

Das fällt mir ja erst jetzt auf: Das Rauschen ist da gar nicht das 
Problem.
Viel schwieriger ist es einen Spannungsteiler zu konstruieren, der mir 
die hohe Genauigkeit von 16bit nicht kaputt macht!
Ich hab mal nach integrierten Präzisions-Spannungsteilern gesucht, aber 
außer Megatron nicht viel gefunden. Und bei denen habe ich keine 
Bezugsquelle ausmachen können, ich weiß nicht, ob die nur nach Auftrag 
fertigen...?

Eine Möglichkeit wäre noch, 0,1% Widerstände aus einer Charge zu kaufen 
und die dann bestmöglich zu selektieren. Damit komme ich den benötigten 
~0,01% Genauigkeit wohl schon gut nahe ;)

von Thomas F. (igel)


Lesenswert?

EGSler schrieb:
> Viel schwieriger ist es einen Spannungsteiler zu konstruieren, der mir
> die hohe Genauigkeit von 16bit nicht kaputt macht!

Das Schlagwort heisst: Kalibrieren!

Messkette komplett aufbauen und dann mit entsprechenden 
Kalibrier-Equipment Verstärkung und Offset für alle Kanäle einstellen.

Die 16 Bit Auflösung (nicht Genauigkeit!) ist wohl auch eher akademisch, 
in Real Life sind 14 Bit eigentlich ausreichend.

von EGSler (Gast)


Lesenswert?

Thomas Forster schrieb:
> Messkette komplett aufbauen und dann mit entsprechenden
> Kalibrier-Equipment Verstärkung und Offset für alle Kanäle einstellen.

Du meinst Softwareseitig?
Ja, das wäre tatächlich noch ein guter Plan, das werde ich direkt mal 
mit aufnehmen.
Aber wäre natürlich schon sinnvoll, das ganze System so auszulegen, dass 
da wenig kalibriert werden muss.
Wie langzeitstabil sind denn eigentlich Spindeltrimmer? Damit könnte ich 
den Widerstand ja auch noch genau einjustieren!

von Thomas F. (igel)


Lesenswert?

EGSler schrieb:
> Wie langzeitstabil sind denn eigentlich Spindeltrimmer? Damit könnte ich
> den Widerstand ja auch noch genau einjustieren!

Für eine Feinjustage durchaus möglich. Wir haben in den letzten JAhren 
einiges an messtechnik eingekauft. Kein Gerät verwendet noch diskrete 
Bauteile zum Abgleich. Das macht man alles in Software.

von EGSler (Gast)


Lesenswert?

Ok... ich werde einfach mal beides testen.
In Hardware, weil es schön einfach ist. Und dann wage ich mich an eine 
Softwarelösung ran, weil das scheinber so seine Vorteile mit sich bringt 
;)

von Joachim B. (jar)


Lesenswert?

Thomas Forster schrieb:
> Kein Gerät verwendet noch diskrete
> Bauteile zum Abgleich.


für Einzelstücke wie sich sie baue geht das aber, normal MF 1%er als 
Teiler und durch parallelschalten am oberen oder unteren Teiler R von 
größeren Widerständen genau hintrimmen.

EGSler schrieb:
> Und dann wage ich mich an eine
> Softwarelösung ran, weil das scheinber so seine Vorteile mit sich bringt

mache ich auch oft, die Kette sollte ja linear sein, alos nimmt man 2 
Messpunkte, einen oben, einen unten und setzt die Gradengleichung im MC 
ein

y = m * x + b

wobei m = dx/dy und b durch Nullstellenermittlung eingesetzt wird.

dann gibt es zu jedem Digitalwert die Spannung.

wer es noch genauer braucht macht eben eine Tabelle zu jedem Digitalwert 
die Spannung gemessen eintragen, der MC muss dann nur noch indizieren.

von Arc N. (arc)


Lesenswert?

EGSler schrieb:
> Das fällt mir ja erst jetzt auf: Das Rauschen ist da gar nicht das
> Problem.
> Viel schwieriger ist es einen Spannungsteiler zu konstruieren, der mir
> die hohe Genauigkeit von 16bit nicht kaputt macht!
> Ich hab mal nach integrierten Präzisions-Spannungsteilern gesucht, aber
> außer Megatron nicht viel gefunden. Und bei denen habe ich keine
> Bezugsquelle ausmachen können, ich weiß nicht, ob die nur nach Auftrag
> fertigen...?
>
> Eine Möglichkeit wäre noch, 0,1% Widerstände aus einer Charge zu kaufen
> und die dann bestmöglich zu selektieren. Damit komme ich den benötigten
> ~0,01% Genauigkeit wohl schon gut nahe ;)

Widerstände bzw. fertige Spannungsteiler/Netzwerke gäbe es u.a. von 
Vishay
http://www.vishaypg.com/foil-resistors/voltage-dividers-networks/

Wenn es auf die absoluten Werte nicht so ankommt, gibt es von Linear die 
LT5400-Reihe http://cds.linear.com/docs/en/datasheet/5400fb.pdf 
(Verhältnis der Widerstände +-0.01% max., Drift des Verhältnisses +-0.2 
ppm/°C typ. +-1 ppm/°C max.). Noch stabiler wird es nur noch mit den 
(hermetisch geschlossenen) Widerständen von Vishay.

> Wie langzeitstabil sind denn eigentlich Spindeltrimmer? Damit könnte ich
> den Widerstand ja auch noch genau einjustieren!

Kommt drauf an wie die eingesetzt werden... Trimmer haben immer, 
zumindest verglichen mit den oben genannten 
Widerständen/Widerstandsnetzwerken, eine drastisch schlechtere Langzeit- 
und Temperaturdrift und ebenso Drift durch Luftfeuchtigkeit etc. pp.

Eine Möglichkeit für den ADC wäre im übrigen noch der AD7609, der die 
Anforderungen u.U. schon von sich aus schafft.
http://www.analog.com/static/imported-files/data_sheets/AD7609.pdf

von Joachim B. (jar)


Lesenswert?

noch genauer wird es wenn der Temperaturgang mit aufgenommen wird, oder 
die Teiler und Bauteile vorgeheizt auf einer Temperatur gehalten werden 
die über der Raumtemperatur liegen, möglichst auf gute Wärmespeicher, 
Kupferplatte z.B.

: Bearbeitet durch User
von EGSler (Gast)


Lesenswert?

Arc Net schrieb:
> Eine Möglichkeit für den ADC wäre im übrigen noch der AD7609, der die
> Anforderungen u.U. schon von sich aus schafft.
> http://www.analog.com/static/imported-files/data_sheets/AD7609.pdf

Der bietet tasächlich einige Vorteile, sieht aber auch erstmal sehr 
komplex aus. Leider hat er kein I2C, aber SPI wird vermutlich auch nicht 
viel schwieriger werden. Zumal ich mit diesem ADC nur ein einziges 
Bauteil ansteuern muss, sodass auch der Nachteil der dritten Leitung für 
Chip-Select nicht ins Gewicht fällt (bzw. ich die Leitung theoretisch 
sogar über einen Pullup hochziehen könnte. Wobei das vermutlich aufgrund 
der eingeschränkten Flexibilität für später eine blöde Idee wäre...).
Ja, den werde ich auch nochmal genauer in Augenschein nehmen.

von Arc N. (arc)


Lesenswert?

Joachim B. schrieb:
> noch genauer wird es wenn der Temperaturgang mit aufgenommen wird, oder
> die Teiler und Bauteile vorgeheizt auf einer Temperatur gehalten werden
> die über der Raumtemperatur liegen, möglichst auf gute Wärmespeicher,
> Kupferplatte z.B.

Was bei 16-Bit und halbwegs guten Widerständen hier sehr wahrscheinlich 
nicht notwendig ist.
1/65536 ~ 15 ppm des ADCs (ohne dessen Fehler) vs. < 0.2 ppm/°C oder 
besser der Widerstände. Da das fertige Gerät wahrscheinlich nicht 
außerhalb des Bereichs 10 °C - 40 °C betrieben werden wird, wäre der 
Fehler durch die Widerstände bspw. 15°C * 0.2 ppm/°C = +-3 ppm. 
Interessanter wird es da die restlichen Fehler der Spannungsreferenz und 
des ADCs im Rahmen zu halten. Was natürlich einfacher wird, wenn gleich 
alles auf konstanter Temperatur gehalten wird.

von EGSler (Gast)


Angehängte Dateien:

Lesenswert?

Ein wenig sonderbar ist das Datenblatt von dem AD7609 aber, da sind 
immer mal so kleine Unstimmigkeiten, die mich stutzen lassen.

Im Anhang ist mal ein Ausschnitt: Sie schreiben von einem keramischen 
Kondensator, zeichnen aber einen Gepolten ein.
In einer anderen Darstellung haben alle ADs einen 100nF Cap, während 
einer einen 0.1µF Cap besitzt oO
Verwirrende Art der Bezeichnung...^^

von Joachim B. (jar)


Lesenswert?

EGSler schrieb:
> Im Anhang ist mal ein Ausschnitt: Sie schreiben von einem keramischen
> Kondensator, zeichnen aber einen Gepolten ein.

10µF gepolt für REF out

> In einer anderen Darstellung haben alle ADs einen 100nF Cap, während
> einer einen 0.1µF Cap besitzt oO

100nF für REF in und 0,1µ sind 100nF nix was mich stören würde

> Verwirrende Art der Bezeichnung...^^

finde ich nicht oder sagen wir so, finde ich nicht schlimm.

von EGSler (Gast)


Lesenswert?

Joachim B. schrieb:
> 10µF gepolt für REF out

Ja, im Text steht aber ceramic ;)

Mir ist schon klar, dass 100n und 0,1µ das Gleiche sind, daher ja meine 
Verwunderung^^
Aber du hast schon Recht, ist nichts schlimmes. Ich musste nur stutzen.

von Anja (Gast)


Lesenswert?

EGSler schrieb:
> Mir ist schon klar, dass 100n und 0,1µ das Gleiche sind, daher ja meine
> Verwunderung

mache ich auch häufig 100nF = normale Bauform, 0,1u dann Sonderbauform.

Einen preiswerten 2:1 Spannungsteiler mit Stabilität im ppm-Bereich läßt 
sich einfach mit einem halben LTC1043 (+ LTC1050/LTC2057 als Buffer) 
aufbauen. Ein nachgeschalteter LTC2400 hätte dann 24 Bit Auflösung. (Ok 
nicht ganz: es bleiben bei sorgfältigem Aufbau 19 rauschfreie Bits 
übrig).

Ein MAX4051/CD4051 multiplext die 8 Kanäle.

Wenn man es auf die Spitze treiben will:

Eine LM399 als stabile 7V Referenz die dann über einen 2. LTC1043 Faktor 
3/4 heruntergeteilt wird. -> 5.2V Referenz und bis zu 10.4V Meßbereich 
wenn man den ADC und die Logik mit 5.2V versorgt.

Gruß Anja

von Anja (Gast)


Lesenswert?

Ach so ja:

Die 2. Hälfte des LTC1043 und einen weiteren MAX4051/CD4051 dann für die 
differentielle Abtastung.
Ich gehe mal nicht davon aus daß die Sensoren mit großen 
Massedifferenzen behaftet sind.

Gruß Anja

von Arc N. (arc)


Lesenswert?

Anja schrieb:
> Ach so ja:
>
> Die 2. Hälfte des LTC1043 und einen weiteren MAX4051/CD4051 dann für die
> differentielle Abtastung.
> Ich gehe mal nicht davon aus daß die Sensoren mit großen
> Massedifferenzen behaftet sind.
>
> Gruß Anja

Wer weiß, was da alles läuft... Die Anforderung 16-Bit besser 18-Bit ADC 
zur Digitalisierung von 0-10 V, 4-20 mA Signalen aus Messwertumwandlern 
ist eigentlich normalerweise Overkill.

: Bearbeitet durch User
von U. M. (oeletronika)


Lesenswert?

Hallo,
auch ich meine, dass ist so ein typischer Fall von konfus formulierten 
Anforderungen.
Da hatte man evtl. mal eine Lösung mit 12 Bit, die auf Grund gruseliger 
Komponenten und schlechtem Aufbau nur 8 Bit Genauigkeit brachte und die 
Schlussfolgerung ist dann: Wir brauchen 16 Bit???

Welche Sensorik mit popligen analaogen Standardinterfaes hat denn 
überhaupt eine Genauigkeit, die deutlich über 10 Bit geht???

Selbst wenn man die 16 Bit dann hat, ist das kein Garant für hohe 
Genauigkeit. Das muß dann auch sehr sicher funktionieren un darf von 
äußeren Störungen nicht beeinflußt werden.

Deutlich höhere Auflösung kann sinnvoll sein, um sich z.B. 
Messbereichumschaltungen zu sparen, aber sonst scheinen mir 16 Bit auch 
nur akademisch.

> Eine Möglichkeit wäre noch, 0,1% Widerstände aus einer Charge zu kaufen
> und die dann bestmöglich zu selektieren. Damit komme ich den benötigten
> ~0,01% Genauigkeit wohl schon gut nahe ;)
Nein, damit bekommst du eben nur ca. 0,1%.
Relevant ist dann eher noch der TK (Temperaturkoeff.) und Älterung.
Der übliche TK von 0,1%-R ist TK25 bis TK15.
Mit TK25 und 5K Temp.diff bist du auch schon über die 0,1% Toleranz

Und auf Einstellregler jeder Art sollte man dann sowieso verzichten.
Die sind eine hochgradige Fehlerquelle und haben deutlich schlechter 
Difteigenschaften als hochpräsise Festwiderstände.

Um mögliche Ungenauigkeiten und auch Alterung auszugleichen, macht 
softwaremäßige Regression in Verbindung mit Kalibrierung immer Sinn.
Aber das wurde ja schon merhfach betont.
Gruß Elektronika

von Anja (Gast)


Lesenswert?

U. M. schrieb:
>> Eine Möglichkeit wäre noch, 0,1% Widerstände aus einer Charge zu kaufen
>> und die dann bestmöglich zu selektieren. Damit komme ich den benötigten
>> ~0,01% Genauigkeit wohl schon gut nahe ;)
> Nein, damit bekommst du eben nur ca. 0,1%.
> Relevant ist dann eher noch der TK (Temperaturkoeff.) und Älterung.
> Der übliche TK von 0,1%-R ist TK25 bis TK15.
> Mit TK25 und 5K Temp.diff bist du auch schon über die 0,1% Toleranz

Selektion auf 0.01% vor oder nach dem Löten?
Wenn man die "billigen" 0.1% Metallfillm (MPR) von Reichelt (YAGEO) 
nimmt driften die beim Löten bereits um bis zu 0.25%.

0.1% sind 1000 ppm -> es sind 40K Temperaturdifferenz bei TK25 der MPR 
0.1% Widerstände für nochmal 0.1% Temperaturdrift.
Über Lebensdauer (Load Life) kommen dann nochmal 1,5% Drift dazu.

http://www.reichelt.de/Metall-0-1-1-0-k-Ohm-91-k-Ohm/MPR-1-00K/3//index.html?ACTION=3&GROUPID=3104&ARTICLE=12751&SEARCH=mpr&OFFSET=16&WKID=0&;

Die bereits erwähnten Spannungsteiler (z.B. DSMZ) haben im Idealfall 2 
Widerstände auf demselben Substrat. Da hofft man dann daß sich die 
Effekte teilweise wieder kompensieren. Wobei die 0.1ppm/K "typ tracking" 
im Datenblat (Werbebroschüre) wohl eher optimistisch sind. Die 0.5-1 
ppm/K die als Max-Wert angegeben sind sind wahrscheinlich realistischer.

Gruß Anja

von Joachim B. (jar)


Lesenswert?

Anja schrieb:
> Selektion auf 0.01% vor oder nach dem Löten?
> Wenn man die "billigen" 0.1% Metallfillm (MPR) von Reichelt (YAGEO)
> nimmt driften die beim Löten bereits um bis zu 0.25%.

guter Einwand, es bleibt immer noch die Möglichkeit das im MC zu 
kompensieren durch Korrektur.

U. M. schrieb:
> Und auf Einstellregler jeder Art sollte man dann sowieso verzichten.
> Die sind eine hochgradige Fehlerquelle und haben deutlich schlechter
> Difteigenschaften als hochpräsise Festwiderstände.

sag ich auch immer, die meisten Fehler kommen von Trimmer deswegen 
gleiche ich mit Festwiderstände ab.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.