Forum: Mikrocontroller und Digitale Elektronik 18Bit ADC -5V bis 5V bereich


von M. V. (bmtil)


Lesenswert?

Hiho,
ich bin gerade auf der Suche nach eine Analog-Digital Wandler, der 18 
Bit Auflösung kann und eine vernünftige Abtastrate besitzt. Der 
Inputbereich sollte zwischen -5V und 5V liegen.
Bis jetzt habe ich mir diesen hier ausgesucht:
AD7690 von Analog Devices.
Jedoch habe ich gleichzeitig dazu diesen Beitrag gefunden:
http://www.electrondepot.com/electrodesign/using-ad7690-to-measure-positive-voltage-range-446734-.htm
es scheint also nicht moeglich zu sein mit diesem ADC den negativen 
Bereich abzudecken. Gibt es vernuenftige Alternativen?
Vielen Dank fuer die Tips.
Mfg bmtil

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das mit dem negativen Bereich sollte man mit geeigneter 
Signalaufbereitung vor dem ADC erledigen.

18 Bit Auflösung stellt die allerdings vor einiges an 
Präzisionsanforderungen, aber das trifft Dein gesamtes Design.

18 Bit Auflösung sind 4 ppm.

Hast Du Dir darüber schon mal Gedanken gemacht?

von M. V. (bmtil)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das mit dem negativen Bereich sollte man mit geeigneter
> Signalaufbereitung vor dem ADC erledigen.
>
> 18 Bit Auflösung stellt die allerdings vor einiges an
> Präzisionsanforderungen, aber das trifft Dein gesamtes Design.
>
> 18 Bit Auflösung sind 4 ppm.
>
> Hast Du Dir darüber schon mal Gedanken gemacht?

Ehrlich gesagt noch nicht. Was hat das fuer Konsequenzen?
Warum Extra Signalaufbereitung, wenn es doch die "true differential 
adc's" gibt?

von Anja (Gast)


Lesenswert?

M. V. schrieb:
> Vielen Dank fuer die Tips.

Steht doch im Datenblatt auf Seite 1.
Du brauchst einen entsprechenden Verstärker ADA4941 um die 
Eingangsspannungen ins Fenster zu schieben.

Gruß Anja

von Arc N. (arc)


Lesenswert?

M. V. schrieb:
> Hiho,
> ich bin gerade auf der Suche nach eine Analog-Digital Wandler, der 18
> Bit Auflösung kann und eine vernünftige Abtastrate besitzt. Der
> Inputbereich sollte zwischen -5V und 5V liegen.
> Bis jetzt habe ich mir diesen hier ausgesucht:
> AD7690 von Analog Devices.
> Jedoch habe ich gleichzeitig dazu diesen Beitrag gefunden:
> 
http://www.electrondepot.com/electrodesign/using-ad7690-to-measure-positive-voltage-range-446734-.htm
> es scheint also nicht moeglich zu sein mit diesem ADC den negativen
> Bereich abzudecken. Gibt es vernuenftige Alternativen?
> Vielen Dank fuer die Tips.
> Mfg bmtil

Die Eingänge benötigen bei diesem und ähnlichen ADCs auf jeden Fall 
passende Treiber...
Ansonsten gäbe es noch z.B. AD7609, AD7162-2, AD7631, MAX11156, ADS8382.

+-5V klingt allerdings nach einem vorverarbeitetem Signal, was die 
Anforderungen an den ADC häufig deutlich reduziert...

von M. V. (bmtil)


Lesenswert?

Ok, ich habe nicht verstanden wozu die ADC Driver da sind, vielen Dank.

Dennoch habe ich mir um die Genauigkeit noch keine Gedanken gemacht.

von Arc N. (arc)


Lesenswert?

M. V. schrieb:
> Ok, ich habe nicht verstanden wozu die ADC Driver da sind, vielen Dank.
>
> Dennoch habe ich mir um die Genauigkeit noch keine Gedanken gemacht.

Wie gesagt +-5V klingt nach irgendetwas aufbereitetem, was die 
Anforderungen meistens deutlich senkt (es ist sinnlos mit 18-Bit 
Genauigkeit zu messen, wenn die (nicht korrigierbaren) Fehler der 
Vorverarbeitung größer sind).

5V/2^18 ~ 19 uV -> Thermospannungen müssen u.U. beachtet werden, OpAmps 
spezifizieren meistens nicht wie groß die Nicht-Linearitäten sind 
(InstAmps dagegen schon) -> Schaltungen aufbauen, messen, selektieren. 
Die "restlichen" Fehler: ADC, Referenz, Langzeit usw. usf.
Erste Übung: Wirklich alle Fehlerquellen der Schaltung auflisten...

von M. V. (bmtil)


Lesenswert?

Hm, ok wenn ich mit den Signalweg ueberlege.
Ich kriege -10V bis 10V Signal:
a) Signal geht in Spannungsteiler
b) Nach dem Spannungsteiler geht er in den ADA4941
c) ADC Wandlung in dem AD7690
d) Signalverarbeitung im µC
f) Signal geht in einen 16Bit DAC und danach zurück zum Messgeraet (das 
Messgeraet regelt sich selbst).

von Udo S. (urschmitt)


Lesenswert?

M. V. schrieb:
> Dennoch habe ich mir um die Genauigkeit noch keine Gedanken gemacht.

Das ist doch das erste worüber man sich Gedanken macht. Warum hast du 
dich für einen 18 Bit ADC entschieden, warum nicht 16, 14 oder gar 10 
Bit.

Was nützt dir eine Aussage 4,80345V gemessen zu haben, wenn der Fehler 
deines Gesamtsystems so groß ist, daß es auch 4,80000 oder 4,82000V sein 
können?

von M. V. (bmtil)


Lesenswert?

Das Messgeraet um welches es sich handelt ist eine hoch genaue 
Praezisionswaage. Theoretisch reichen auch 16Bit Wandlung, ich habe mich 
fuer 18 entschieden, damit 2 LSBs verloren gehen koennen.

Achja, warum ich darueber keine Gedanken gemacht habe, naja ich bin erst 
seit 2 Tagen in dem Projekt, musste mir erstmal alles anschauen und eine 
Idee haben :)

von Stefan (Gast)


Lesenswert?

Es scheint mir sinnlos, einen 18bit Wandler zu verwenden, wenn nur 16bit 
verwendet werden. beachte die Kosten.

Wie genau ist denn Dein Spannungsteiler? Meine Spannungsteiler, die ich 
im Hobby einsetze, erzeugen typischerweise mehrere Prozent Abweichung, 
weswegen 8bit Wandler angemessen sind.

von Udo S. (urschmitt)


Lesenswert?

Stefan schrieb:
> Es scheint mir sinnlos, einen 18bit Wandler zu verwenden, wenn nur 16bit
> verwendet werden.

Kommt darauf an. Wenn dessen Nichtlinearität und abs. fehler 
entsprechend besser sind kanns durchaus Sinn machen.

M. V. schrieb:
> ist eine hoch genaue
> Praezisionswaage.

Also brauchst du absolute Genauigkeit und nicht nur Kurzzeitstabilität, 
oder gibts die Möglichkeit einer Selbstkalibrierung vor jedem Messen

M. V. schrieb:
> Signal geht in Spannungsteiler

Wenn dein Spannungsteiler aus 0,001% Widerständen besteht ist dein 
Fehler schon beim 16. Bit.
Wenn der TK z.B. bei 40ppm pro K ist, dann bedeutet schon eine 
Abweichung von 1°C ein Fehler in den Bits 16, 17 und 18.

von Arc N. (arc)


Lesenswert?

M. V. schrieb:
> Hm, ok wenn ich mit den Signalweg ueberlege.
> Ich kriege -10V bis 10V Signal:
> a) Signal geht in Spannungsteiler
> b) Nach dem Spannungsteiler geht er in den ADA4941
> c) ADC Wandlung in dem AD7690
> d) Signalverarbeitung im µC
> f) Signal geht in einen 16Bit DAC und danach zurück zum Messgeraet (das
> Messgeraet regelt sich selbst).

Da es eine Waage ist, wären andere ADCs u.U. besser geeignet (die 
Abtastrate des AD7690 ist bei solch langsamen Vorgängen meistens 
absoluter Overkill)
ADS1232, ISL26132, AD7191, AD7195 etc.

Noch günstiger wäre es die Signalumwandlung in der Waage zu überspringen 
und dort direkt mit einem passenden ADC zu wandeln.

von M. V. (bmtil)


Lesenswert?

Also, die Situation ist wie folgt:
Die Waage ist nicht manipulierbar, wir kriegen tatsaechlich nur die -10V 
bis +10V. Sie misst so hochgenau, dass sogar ein Luftzug den Messwert 
veraendern kann, deswegen ist diese geschirmt. Die benoetigte Abtastrate 
sind mindestens 100kHz, besser mehr.
Es ist mir durchaus bewusst geworden, dass durch den Spannungsteiler, 
Signalaufbereitung etc. bei solchen Messwerten ein 18Bit ADC vermutlich 
nichts bringt.
Am Anfang habe ich auch nur geschaut ob es genaue ADC gibt die den 
Messbereich aushalten, anscheinend gibt es sowas nicht, und man muss es 
irgendwie vorverarbeiten.
Die Kosten sind erstmal kein Problem, ein gewisses Budget mit ordentlich 
Puffer haben wir zur Verfuegung. Theoretisch koennten es sogar 100€ ADCs 
werden.
Danke fuer die zahlreichen Antworten und Anregungen.

von Arc N. (arc)


Lesenswert?

M. V. schrieb:
> Also, die Situation ist wie folgt:
> Die Waage ist nicht manipulierbar, wir kriegen tatsaechlich nur die -10V
> bis +10V. Sie misst so hochgenau, dass sogar ein Luftzug den Messwert
> veraendern kann, deswegen ist diese geschirmt.
> Die benoetigte Abtastrate sind mindestens 100kHz, besser mehr.

Dürften wir erfahren welche Waage/Wägezelle das ist?
Die mir bekannten Waagen im Mikrogrammbereich haben Einschwingzeiten im 
Sekundenbereich um die Genauigkeit zu erreichen (kenne da aber auch 
nicht alles)

> Am Anfang habe ich auch nur geschaut ob es genaue ADC gibt die den
> Messbereich aushalten, anscheinend gibt es sowas nicht,

Siehe oben AD7609 auch wenn der mehr Eingänge als nötig hat.

> und man muss es irgendwie vorverarbeiten.
> Die Kosten sind erstmal kein Problem, ein gewisses Budget mit ordentlich
> Puffer haben wir zur Verfuegung. Theoretisch koennten es sogar 100€ ADCs
> werden.

Das sind schon mal gute Voraussetzungen.

von Bernd (Gast)


Lesenswert?

M. V. schrieb:
>[...]
>Sie misst so hochgenau, dass sogar ein Luftzug den Messwert
> veraendern kann, deswegen ist diese geschirmt. Die benoetigte Abtastrate
> sind mindestens 100kHz, besser mehr.
>[...]

Warum muss das Ding denn mit >100kHz abgetastet werden?

von M. V. (bmtil)


Lesenswert?

Arc Net schrieb:
> Dürften wir erfahren welche Waage/Wägezelle das ist?
> Die mir bekannten Waagen im Mikrogrammbereich haben Einschwingzeiten im
> Sekundenbereich um die Genauigkeit zu erreichen (kenne da aber auch
> nicht alles)
Ich denke mal diese hier:
http://www.sartorius.de/de/product/product-detail/msa224s-000-da/ ist 
ziemlich aehnlich der, die wir verwenden.

Ich werde morgen mal, die Bedenken wegen der Genauigkeit aeußern.
Des Weiteren plane ich mich mal mit ein paar Kumpels aus der 
Hochfrequenztechnik zu treffen. Wenn jemand Ahnung hat eine Platine im 
hoch genauen Bereich zu entwerfen, dann die.

von Kevin K. (nemon) Benutzerseite


Lesenswert?

HF-Techniker sind etwas fehl am Platz. Du brauchst einen erfahrenen 
Analogelektroniker, der dir das analoge Front-End entwirft und beim 
praktischen Aufbau hilft. Versuch mal, dich von den 100kHz zu 
verabschieden und nimm einen laaaaaaangsamen Sigma-Delta-Wandler, damit 
du beispielsweise Netzbrummen rausgefiltert bekommst. Von den 20-24 Bit 
kannst du eh schonmal auf 16Bit Auflösung reduzieren, von denen eher so 
12-14 an genauigkeit übrig bleiben. Schau dir mal bei Digikey in der 
parametrischen Suche die Widerstandnetzwerke mit möglichst geringem 
Temperaturdrift und Alterung an. Die haben oft 5% Toleranz, aber da das 
Verhältnis sehr genau ist, ist das in der Regel eh egal, da du ohnehin 
einmal kalibrieren musst.

von M. V. (bmtil)


Lesenswert?

Kevin K. schrieb:
> HF-Techniker sind etwas fehl am Platz. Du brauchst einen erfahrenen
> Analogelektroniker, der dir das analoge Front-End entwirft und beim
> praktischen Aufbau hilft.
Mal schauen ob ich so jemanden finde, denke mal schon.


> Versuch mal, dich von den 100kHz zu
> verabschieden und nimm einen laaaaaaangsamen Sigma-Delta-Wandler, damit
> du beispielsweise Netzbrummen rausgefiltert bekommst. Von den 20-24 Bit
> kannst du eh schonmal auf 16Bit Auflösung reduzieren, von denen eher so
> 12-14 an genauigkeit übrig bleiben.
Ich werde mal nachfragen ob es moeglich ist die Spec anzupassen.

> Schau dir mal bei Digikey in der
> parametrischen Suche die Widerstandnetzwerke mit möglichst geringem
> Temperaturdrift und Alterung an. Die haben oft 5% Toleranz, aber da das
> Verhältnis sehr genau ist, ist das in der Regel eh egal, da du ohnehin
> einmal kalibrieren musst.

Wenn ich es richtig verstanden habe, wird vor jeder Messung kalibriert. 
Das mit den Widerstandsnetzwerken ist ein guter Tip, aber ich denke mal 
der AD7609 ist gut geeignet fuer die Aufgabe. Ich habe verschwiegen dass 
wir eigentlich zwei parallele -10V bis 10V Signale haben, von daher 
haette ich je zwei ADC nehmen muessen. Es ist schon gut wenn er mehr 
Eingaenge hat.

von Peter (Gast)


Lesenswert?

Warum holt ihr euch denn nicht die Infos von der seriellen Schnittstelle 
der Waage fertig kalibriert ?

von M. V. (bmtil)


Lesenswert?

Also, hab heute mal gesprochen ob die 100kHz tatsaechlich notwendig 
sind, es ist die vom Unternehmen vorgegebene Spec und da laesst sich 
nichts drehen.
Somit faellt der AD7609 als Loesung aus.
Gibt es vllt. die dem AD7609 aehnliche 16 Bit Wandler, aber halt mit 
mindestens 300kSPS?

von M. V. (bmtil)


Lesenswert?

Ok, entschuldigung wegen Doppelpost. Mir kam gerade die Idee wie ich den 
7609 verwenden kann.
Wenn ich mit 200 kSPS abtaste, dann nehme ich alle 5µs einen Wert auf. 
Ziel sind aber 300 kSPS oder mehr, wenn ich mit 400 kSPS abtaste, dann 
nehme ich alle 2.5µs einen Wert auf.
Die Idee ist ein Signal zweimal abzutasten, aber um 2.5µs verschoben. 
Das Heisst Originalsignal am Eingang A, um 2.5µs Verschobenes am Eingang 
B. So taste ich am Eingang B immer die Weerte zwischen den Abtastungen 
am Eingang A ab. Am Ende dann fuehre ich beide Signale zusammen (halt 
bei dem digitalen Output).
Wuerde das so funktionieren um auf die geforderte Geschwindigkeit zu 
kommen?
Ach und wie viel Stoerungen kann so eine Verschiebelogik vor dem Eingang 
mitbringen?

von Udo S. (urschmitt)


Lesenswert?

100kHz ist doch völlig gaga. Die mechanische Resonanz von so einem Teil 
liegt zwischen 0,1 und 10 Hz.

von M. V. (bmtil)


Lesenswert?

Die 100kHz werden benötigt, weil der Regelkreis dieser Waage in einem 
FPGA steht. Dieser muss schnell mit Werten gefuttert werden, sonst 
ergibt der FPGA den sie dahin gebaut haben keinerlei Sinn.

von ich (Gast)


Lesenswert?

Ich denke, wenn eine Schnittstelle verfügbar ist, ist das die günstigste 
und einfachste Möglichkeit die Werte auszulesen. Manche Schnittstellen 
machen das ggf auch mit 100k-Werte pro Sekunde. Abgesehen davon, dass 
ich es für unrealistisch halte, jede 10µs einen neuen, genauen Wert des 
Gewichts zu haben. Letztendlich muss die Waage das Gewicht auch 
mindestens in der Geschwindigkeit messen, aber wofür? Dass die Anzeige 
des Gewichts 1000+ mal schneller angezeigt werden kann, wie es ein 
Mensch lesen kann?

Sollte das nicht möglich sein oder die "Chefs" der Sache einfach keinen 
Bezug zur Materie (E-Technisch) haben (kenne ich auch von meiner alten 
Arbeitsstelle), sehe ich 2 Dinge.

1. Wenn die Spannung -10 bis +10V aus dem Gerät kommt, wird diese 
sicherlich abhängig vom Gewicht erzeugt. Das muss dann aber auch 
mindestens 18bit Genau sein. Es macht ja keinen Sinn, ein Signal genauer 
zu messen, als es ist.

2. Wenn es wirklich so genau zu messen ist, weiß ich nicht, ob jemand, 
der nicht genau weiß, was 18bit bedeuten (an Anforderungen an 
Leiterbahn, Design, restliche Bauteile), soeine Aufgabe lösen 
kann/sollte (ohne dich damit beleidigen oder angreifen zu wollen). Die 
Auflösung+Genauigkeit ist das Problem, nicht umbedingt die 
Geschwindigkeit (dafür braucht man "lediglich" nen schnellen µC/FPGA).

von M. V. (bmtil)


Lesenswert?

Ich kann mir schon durchaus vorstellen was 18bit Aufloesung bedeuten, 
vorallem fuer das Layout, und ich steh in der Sache nicht alleine da.
Wie gesagt, tatsaechlich benoetigt werden nur 16Bit , aber es wird von 
vorne rein gerchnet dass wir die zwei letzten Bits verlieren, deswegen 
haben wir uns fuer 18 Bit Wandler entschieden.
Eine weitere Forderung an die Geschwindigkeit ist, wir wollen Software 
intern Down Sampling machen, das heisst die Werte aufeinander addieren 
und so das Wackeln aus den letzten Bits wegzukriegen. Um ein LSB zu 
gewinnen brauchen wir anscheinend eine dreifache Geschwindigkeit davon, 
was eigentlich noetig waere.

von Arc N. (arc)


Lesenswert?

M. V. schrieb:
> Ich kann mir schon durchaus vorstellen was 18bit Aufloesung bedeuten,
> vorallem fuer das Layout, und ich steh in der Sache nicht alleine da.
> Wie gesagt, tatsaechlich benoetigt werden nur 16Bit , aber es wird von
> vorne rein gerchnet dass wir die zwei letzten Bits verlieren, deswegen
> haben wir uns fuer 18 Bit Wandler entschieden.

Oversampling geht auch bei 16-Bit bzw. generell dann, wenn das Rauschen 
hoch genug ist, ansonsten kann z.B. mit Dithering gearbeitet werden


> Um ein LSB zu
> gewinnen brauchen wir anscheinend eine dreifache Geschwindigkeit davon,
> was eigentlich noetig waere.

???
Anzahl der Samples um n Bit zu "gewinnen" = 2^(2n)
0.5 Bit = 2-fach Oversampling
1 Bit = 4-fach
2 Bit = 16-fach
3 Bit = 64-fach

von kk (Gast)


Lesenswert?

Verwendest du DMS? Wenn ja: durch die Klebeschicht werden Frequenzen 
irgendwann ziemlich gedämpft, sodass es ohnehin sein wird, dass die 
100kHz overkill sind. Für das Nachregeln (Ich denke, ihr baut eine 
kraftkompensierende Waage) muss das dann berücksichtigt werden, je nach 
Regelung könnte dein System sogar instabil werden.
Ach ja: ohne besonderen Aufwand wirst du nicht die letzten 2 von den 18 
Bit wegschmeißen müssen, sondern auch die letzten 4-6 Bit von den 18.

von Klaus B. (butzo)


Lesenswert?

M. V. schrieb:
> Also, hab heute mal gesprochen ob die 100kHz tatsaechlich notwendig
> sind, es ist die vom Unternehmen vorgegebene Spec und da laesst sich
> nichts drehen.
Hoffentlich sind die dann bandbreitenbegrenzt, ein genauer Tiefpass mit 
18 Bit würde sehr interessant.

Zumindest die Widerstände der Schaltung sind handelsüblich:
Bürklin 35E480 und Konsorten, als Spannungsreferenz eine LTZ1000 sowie 
eine vier/sechs Lagen Leiterplatte. Ofenheizung ist auch nicht verkehrt.
Wenn's denn schee macht.
Oder sind 18 Bit Auflösung bei 10 Bit (0,1%) Genauigkeit gemeint?



Butzo

von M. V. (bmtil)


Lesenswert?

Arc Net schrieb:
> 1 Bit = 4-fach
> 2 Bit = 16-fach

meinte natuerlich 4-fache.
Nach der Besprechung heute, haben wir uns auf den AD7634 geeinigt als 
die beste Moeglichkeit.

von Arc N. (arc)


Lesenswert?

M. V. schrieb:
> Arc Net schrieb:
>> 1 Bit = 4-fach
>> 2 Bit = 16-fach
>
> meinte natuerlich 4-fache.
> Nach der Besprechung heute, haben wir uns auf den AD7634 geeinigt als
> die beste Moeglichkeit.

Sicher? Dessen DNL ist spezifiziert mit -1 LSB min (es fehlen Codes) bis 
2.5 LSB max. (nicht mehr monoton, die Transferfunktion wechselt das 
Vorzeichen...).

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.