Forum: Mikrocontroller und Digitale Elektronik kleinste Spannungen mit ADC messen?


von Michael T. (michelback)


Lesenswert?

Hallo,
ich möchte gerne sensorsignale einlesen, die sehr geringe 
Spannungsunterschiede haben. Es handelt sich dabei um Schadgassensoren, 
die mit entsprechender elektronik eine Spannung entsprechend zur 
schadgaskkonzentration(in ppm) ausgeben.
bei 0,02ppm werden rein rechnerisch gesehen 0,25487218V ausgegeben.
bei 0,04ppm (verdoppelung der Konzentration)werden 0,25474436V 
ausgegeben.

Die Spannung ändert sich also erst im µV-Bereich. Kann das ein ADC noch 
direkt erfassen?

Ich habe mal folgende Rechnung angestellt:
14bit ADC mit Vref=1,5V (MAX1147/MAX1149)

Berechnung der Bereichsbreite des ADC(nach 
microcontroller.net-ADC-Tutorial):
1,5V/16384=0,000091552V

damit könnte ich (rein rechnerisch) den Unterschied zwischen 0,02ppm und 
0,04ppm erfassen:

Berechnung ADC-Wert @ 0,02ppm: 0,25487218V / 0,000091552V = 2783,9....
Berechnung ADC-Wert @ 0,04ppm: 0,25474436V / 0,000091552V = 2782,5...

Es müsste also gerade so gehen - rein rechnerisch. Aber ist das 
praktisch überhaupt möglich? Mir scheinen die Spannungsänderungen im 
µV-Bereich zu klein zu sein, oder geht das mit dem ausgewählten ADC?

Grüße,
Michael

von Klaus (Gast)


Lesenswert?

Üblicherweise steht im Datenblatt des Sensors, ob so eine rechnerische 
Auflösung überhaupt reproduzierbar vorliegt. Oder ob das ganze selbst am 
Analogwert im Rauschen untergeht (was ich befürchte).
Und im Datenblatt sind oftmals auch Vorschläge zur Beschaltung, auch zur 
Datenerfassung mit ADC enthalten.
Sollten die Analogwerte so rauskommen, das mit einem 14- oder gar 16-Bit 
ADC, das brauchts echte Praxiserfahrung oder eine gute Application Note 
im Datenblatt des ADC, sonst wird das nix.
Nach Möglichkeit sollte man solche Sensoren in einer 
Wheatstone-Brückenschaltung anwenden.
GOOGLE Suche:
wheatstone  "14 Bit" schematic
wheatstone  "16 Bit" schematic
Klaus

von B e r n d W. (smiley46)


Lesenswert?

Nach welchem Messprinzip arbeitet der Sensor überhaupt? Ist das ein 
Halbleitersensor? Und für welches Gas?

Gruß, Bernd

von Anon Y. (avion23)


Lesenswert?

Schau dir im Datenblatt des atmega* die differentiellen ADCs an. Die 
haben einen integrierten opamp mit bis zu 200x Verstärkung.

von Reinhard Kern (Gast)


Lesenswert?

Michael T. schrieb:
> Berechnung ADC-Wert @ 0,02ppm: 0,25487218V / 0,000091552V = 2783,9....
> Berechnung ADC-Wert @ 0,04ppm: 0,25474436V / 0,000091552V = 2782,5...

Hallo Michael,

ich würde analog und präzise z.B. 0,254 V vom Messwert abziehen, dann 
sieht das für den ADC viel besser aus. Eine Brücke ist eine Möglichkeit 
dazu. Falls das realisierbar ist, könntest du z.B. den Brückenausgang 
bei 0 ppm auf 0 V abgleichen - du brauchst "bloss" eine entsprechend 
reine Umgebung.

Gruss Reinhard

von Michael T. (michelback)


Lesenswert?

Vielen Dank für die schnellen Rückmeldungen.

@Bernd:
hier hatte ich schonmal einen Thread über die Schadgassensoren 
aufgemacht:
[[Beitrag "Suche Schadgas Sensoren"]]

Da ist unter anderem auch die Beschaltung der Sensoren mit OPAmps 
enthalten. Bei den Sensoren handelt es sich um Elektrochemische 
Sensoren, wobei bei den Gasen H2S und SO2 eine positive Spannung am 
Ausgang erzeugt wird und bei NO2 und CL2 eine negative.

@Anon Ymous:
µC steht schon fest und hat leider keine differentielle Messmöglichkeit 
oder integrierten Verstärker. Das muss ich alles extern realisieren...

@Reinhard:
das mit der Brücke klingt gut. Nur bin ich nicht sicher was die ganze 
zwischengeschaltete Elektronik an Drift und ungenauigkeiten mit sich 
bringt. Daher sind diese "rechnerischen Werte" eher zur Orientierung 
gedacht. Eine reine Umgebung gibts wohl eher nicht, da ich das ganze im 
Kfz einsetzen möchte. Aber ich bin eh am zweifeln ob das mit den 
Schadgassensoren was wird... Allerdings muss es irgendwie.

Einen schönen Abend an alle und vielen Dank,
Michael

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wie hoch ist denn der maximale Spannungshub des Sensorsignales?

Wenn der nur ein paar µV oder mV beträgt, ist es sinnvoll, das Signal 
mit einem geeigneten Operationsverstärker zu verstärken, bevor es an den 
ADC kommt.

von B e r n d W. (smiley46)


Lesenswert?

Hallo Michael

Mit elektrochemischen Sensoren Gase unterhalb von 100ppb detektieren zu 
wollen, ist wie im Rauschen zu Fischen. Die Nebeneffekte wie 
Temperaturdrift des Nullpunktes, Feuchtegehalt des Gases, andere Gase, 
auf welche der Sensor Querempfindlichkeiten hat usw. sind größer als der 
Meßeffekt.

Wie kommt es, daß Dein Sensorsignal auf 257mV steht und dann von dort 
ins Negative läuft? Hinter einem guten Messverstärker 100fach sollte der 
Sensor erstmal mit Nullgas (saubere Luft oder Stickstoff) und bei 
Raumtemperatur innerhalb +/- 1mV stabil bleiben. Dann läuft das Signal 
mit NO2 ins Negative oder mit NO nach "Oben".

Gruß, Bernd

von Michael T. (michelback)


Angehängte Dateien:

Lesenswert?

Hallo,
habe die schaltung mal angehängt.
@Bernd:
mein Fehler: die NO2 und CL2 Sensoren geben immer einen negativen Strom 
aus proportional zur ppm Konzentration. das ganze wird dann über einen 
OPV in eine negative Spannung umgewandelt. Da negative spannungen nicht 
mit einem ADC eingelesen werden können, verwende ich einen 
Spanungsteiler, wobei am oberen Ende +1,5V anliegen und am unteren ende 
nicht Masse, sondern die negative Ausgangsspannung der Sensorschaltung. 
Die Spannung am ADC wird also nicht negativ sondern nur kleiner je mehr 
ppm vorhanden sind:
=> mehr ppm => negative spannung größer => Spannung am ADC kleiner

@rufus:
Was ist unter maximalem Spannungshub zu verstehen? Die maximale 
ausgangsspannung? Im datenblatt des sensors bzw in einer Applikation 
note wurde nur die folgende formel angegeben, die sich auf die 
angehängte Schaltung bezieht:
Gas concentration (ppm) x sensor sensitivity (μA/ppm) = sensor output 
(μA)

Allerdings wird für die "sensor sensitivity" immer nur ein bereich 
angegeben. Beim SO2 Sensor ist die sensor sensitivity zB 450-750nA/ppm.

Die minimal/maximal-werte am ADC eingang sind dann laut 
Berechnung(sensor output current x R4) folgende:
H2S_min: 0,000627V(@ 0,03ppm)
H2S_max: 1V (@ 47ppm)

SO2_min:0,0033V (@ 0,2ppm)
SO2_max:0,825V  (@ 50ppm)

Jetzt die mit negativer ausgangsspannung und Spannungsteiler vor dem ADC 
(Spannungsangabe am ADC-Eingang!):
NO2_min:0,0177V (@ 20ppm)
NO2_max: 0,2851584V (@ 0,02ppm)

CL2_min: 0,01762V (@ 20ppm)
CL2_max: 0,25487218V (@ 0,02ppm)

Zum besseren Verständnis habe ich mal die Schaltung für die Sensoren mit 
negativer Ausgangsspannung in einer Skizze angehängt. IC2 ist nur für 
das ausgleichen der Potentiale und schnelles anschalten der Sensoren 
erforderlich, ist also für die Ausgangsspannung unwichtig. IC1 wandelt 
den vom sensor erzeugten Strom in eine Spannung Uout um.
Bei den "positiven" Sensoren (H2S und So2) fällt der spannungsteiler (R6 
und R7) einfach weg und der Ausgang mit Uout wird direkt an den ADC 
angeschlossen.

Jetzt ist eben die Frage was ich messen kann... Können µV noch vom ADC 
erfasst werden? nV gehen wohl eher nicht mehr => Lösung für die 
"negativen" Sensoren gesucht. Das mit dem Rauschen ist natürlich wahr. 
Soll ich die Uout Spannungen nochmals verstärken?
Ich bin grad etwas verzweifelt, da ich die Sensoren gerne verwenden 
möchte, aber nicht weiß wie ich die Daten in meinen µC bekomme...
am besten wäre es, die "negativen" ausgangsspannungen so zu verstärken, 
dass sie in etwa den pegeln der "positiven"  sensoren entsprechen, dann 
bracuhe ich nur einen ADC mit einer Referenzspannung.

Grüße,
Michael

von Kai Klaas (Gast)


Lesenswert?

Hallo Michael,

>Zum besseren Verständnis habe ich mal die Schaltung für die Sensoren mit
>negativer Ausgangsspannung in einer Skizze angehängt.

Hat IC1 denn eine negative Versorgungsspannung?

>Jetzt ist eben die Frage was ich messen kann... Können µV noch vom ADC
>erfasst werden? nV gehen wohl eher nicht mehr => Lösung für die
>"negativen" Sensoren gesucht. Das mit dem Rauschen ist natürlich wahr.
>Soll ich die Uout Spannungen nochmals verstärken?

Wenn du eine doppelseitige Platine mit einem gewöhnlichen Layout 
verwendest, also mit einer nicht durchgehenden Massefläche, mußt du froh 
sein, wenn du mit dem ADC mV auflösen kannst. Also von µV oder nV ganz 
zu schweigen.

Das beste Mittel ist, erst einmal die Spannung nochmals rauscharm, also 
schön weit weg von allem Digitalen, zu verstärken. Am besten mit einem 
invertierenden Verstärker, der dir wieder die Polarität dreht.

Kai Klaas

von Michael T. (michelback)


Lesenswert?

Hallo Kai,

danke für deine Antwort. Endlich weiß ich mehr über auflösung von mV und 
co. :)

IC1 wird negativ versorgt werden, ich habe zwar eigentlich nur +3,3V 
aber über einen ADM8828 kommt dann die negative Versorgung zustande.

Zunächst wird erstmal alles doppelseitig bleiben, zu testzwecken. wenn 
ich zufrieden bin und das gesamtkonzept einigermaßen funktioniert werde 
ich Multilayer verwenden. Evtl werde ich mit PSPICE vorher mal versuchen 
zu simulieren, wobei ich das noch nie gemacht habe. Dann kommt 
vielleicht doch gleich eine Multilayerlösung dabei raus

Das mit dem invertierenden OP hört sich gut an. Vor allem wenn ich eh 
noch verstärken muss.

Jetzt noch mal OFFtopic:
bei einem ADC kann man ja die Bereichsbreite berechnen: also welcher 
Spannungswert entspricht einer ADC-Einheit. Laut Tutorial geht das so:
Bereichsbreite=Vref/ADC_Wert

konkretes Beispiel: Vref=0,4V  12bit-ADC
Bereichsbreite=0,4V/4096=0,000097656V

Theoretisch würde also der ADC alle 0,000097656V seinen Ausgabewert um 1 
erhöhen. Ist das realistisch? Dann würde der ADC ja doch im µV-Bereich 
auflösen können. Ich hätte nämlcih den ADS7841E von TI hergenommen, bei 
dem kann man eine Vref von 0,1V bis Vcc anlegen.
Grüße,
Michael

von KelleRassel (Gast)


Lesenswert?

Nein, die Referenz darf nicht so klein sein, resp. es bringt nichts. 
Denn die Limitierung ist das Rauschen.

von Kai Klaas (Gast)


Lesenswert?

Hallo Michael,

>Theoretisch würde also der ADC alle 0,000097656V seinen Ausgabewert um 1
>erhöhen. Ist das realistisch? Dann würde der ADC ja doch im µV-Bereich
>auflösen können.

Ja, das ist theoretisch schon richtig. Aber in der Praxis sind den 
Analogspannungen oft wegen unvollkommener Masseführung und Einkopplungen 
digitale Störsignale im mV-Bereich überlagert. Manchmal ist der 
AD-Wandler sogar selbst der Störenfried, wenn er just im Moment der 
Wandlung gerade vom Microkontroller angesprochen wird, oder irgendein 
anderes digitales Bauteil gerade seinen Ausgang toggled.

Auflösungen im µV-Bereich sind sehr sehr schwer zu realisieren. Man 
hilft sich da mit vielen Tricks:

- Mehrfachsamplen des Wertes und Mittelwert bilden um digitale Störungen 
herauszurechnen. Funktioniert nur, wenn der Störglitch nicht synchron 
zur Wandlung stattfindet.

- "Abschalten" aller digitaler Bauteile während der Wandlung, indem 
beispielsweise der Microkontroller in einen Sleep-Modus (oder ähnlich) 
gebracht wird und möglchst wenig digitale Chips, am besten gar keiner, 
seinen Ausgang toggled.

- Strikte räumliche Trennung von digitalen und analogen Bauteilen, um 
eine Verseuchung der analogen Masse zu vermeiden. Manchmal sogar 
Verwendung getrennter Masseflächen.

- und und und

Kai Klaas

von KelleRassel (Gast)


Lesenswert?

Wenn man sehr kleine Spannungen messen will, so sollte man es nicht 
unbedingt aus einem Controller heraus wollen. Und es auch nicht so eilg 
haben. Es gibt nahezu beliebig viele hochaufloesende ADC mit 20 bis 24 
bit. Davon sind vielleicht 19 bit realisierbar. Was will man mehr.

von Andreas K. (derandi)


Lesenswert?

Auflösung steigern klingt einfach, aber davon wird die Störeinstrahlung 
auch nicht weniger.
Der Störabstand ist einfach sehr, sehr klein.

von Michael T. (michelback)


Lesenswert?

Vielen Dank für die infos.
@KelleRassel:
ich will nicht mit dem controller direkt messen, sondern über einen 
externen ADC.
Die taktik sieht dann also zusammengefasst so aus, dass ich:

1) anaolog und digitalteil trenne (hatte ich aber sowieso vor wegen den 
ganzen EMV-geschichten)

2) die ausgangsspannungen der "negativen sensoren mit einem 
invertierenden OPV verstärke und in den mV bereich bringe.

3) die "positiven" sensoren auch in den mV-Bereich bringe.

Das heißt bei den "negativen" Sensoren muss ich mit Faktor 100 
Verstärken.
Problem ist jetzt dabei, dass ohne Verstärkung gilt:

Uout(@0,02ppm CL2)= -0,000154V => mit 100 verstärkt+invertiert 
Uout=0,0154V
Uout (@20ppm CL2)= -0,286V     => mit 100 verstärkt+invertiert 
Uout=28,6V

Das haut mit der Referenzspannung nicht mehr hin, da ich nur 3,3V für 
die Spannungsversorgung zur verfügung habe. Soweit ich weiß darf die 
Referenzspannung bei den ADC die Versorgungsspannung nicht übersteigen. 
Und die Eingangsspannung darf Vref nicht übersteigen... Teufelskreis.
Bleibt mir wohl nur die Wahl den Messbereich einzuschränken, also nicht 
bis 20ppm zu gehen.

Eilig habe ich es bei der messung nicht. Die sensoren brauchen sowieso 
nach Aktivierung 30sec bis sie gemessen haben. Danach wird auch erst der 
ADC eingeschaltet.
Grüße,
Michael

von Michael T. (michelback)


Lesenswert?

Wo liegen denn die Störungen durchschnittlich? eher im µV-bereich oder 
im mV-bereich? Zum beispiel wenn man eine Platine hat auf der ein 10MHz 
µC sitzt mit externem Quarz, wobei aber digitalteil und analogteil 
getrennt voneinander auf der Platine (kein multilayer) untergebracht 
sind? Ich will nur erfahrungswerte wissen, da ich da noch im dunkeln 
tappe.
gruß

von Michael T. (michelback)


Lesenswert?

Noch eine Dumme Frage:
Mehr Auflösung (zB 20bit ADC) bringt nichts weil das Rauschen davon 
nicht verschwindet. Wenn ich jetzt das ganze verstärke, verstärke ich ja 
auch das Rauschen mit. Außerdem kommen noch drift etc. des verstärkers 
mit dazu.
Ist es dann nicht am besten, so gut wie möglich zu schirmen, während der 
Messung alle HF-Störer abzustellen und doch davon auszugehen, dass der 
ADC hoch auflösen kann (also keine weitere Verstärkung)?

von KelleRassel (Gast)


Lesenswert?

Eine Frage des Layouts. Ich messe zB Thermoelemente direkt mit dem ADC. 
Ein Chromel-Alumel bringt um die 40uV/K. Dabei habe ich eine 2.5V 
Referenz, daran einen Spannungsteiler fuer den negativen eingang des 
ADC, welcher dann auf 1.25V zu liegen kommt. Das Thermoelement zwischen 
dem negativen und positiven Eingang, und dabei kann ich dann auch 
Temperaturen mit negativer Thermospannung messen.
Auf derselben Leiterplatte kann ich auch noch ein Schaltnetzteil 
betreiben, das 50V & 8A zerhackt.

von Kai Klaas (Gast)


Lesenswert?

Hallo Michael,

>Wo liegen denn die Störungen durchschnittlich? eher im µV-bereich oder
>im mV-bereich?

Also, das Schlimmste was ich bis jetzt gesehen habe, waren Spikes von 
100mV, stammed von einem nicht entkoppelten 74HCMOS Chip, der sich mit 
dem ADC eine dünne Massebahn teilte.

>Zum beispiel wenn man eine Platine hat auf der ein 10MHz µC sitzt mit
>externem Quarz, wobei aber digitalteil und analogteil getrennt
>voneinander auf der Platine (kein multilayer) untergebracht sind? Ich
>will nur erfahrungswerte wissen, da ich da noch im dunkeln tappe.

Michael, bei allem Respekt, aber das kann man nicht so einfach sagen. 
Das mußt du wirklich selbst ausprobieren. Bei deiner skizzierten 
Situation habe ich schon separate, schnelle 12bit Wandler eingesetzt, wo 
das LSB nicht mehr zuckte, wo also das Rauschen auf jeden Fall unter 
100µV lag. Aber da habe ich alle Chips mit LRC-Pi-Filtern entkoppelt, 
den Microkontroller besonders niedrig getaktet, während der Wandlung den 
Microkontroller ins Koma gelegt, getrennte Masseflächen verwendet, etc. 
Kein PWM nebenher, kein RS232 und RS485 Verkehr, u.s.w., alles tot!

Es ist in jedem Fall ratsam, den Analogbereich des AD-Wandlers möglichst 
groß zu wählen und das Analogsignal so weit wie es irgend geht zu 
verstärken.

Kai Klaas

von Andreas G. (beastyk)


Lesenswert?

Moin Leutz!

Ich wollte damals den DDC114 für Messungen einsetzen, hab mir auch das 
Testboard von denen angeschaut und bin (bis jetzt) etwas verzweifelt 
g.

Aber da es hier mal um präzise Messungen mit AD-Wandlern geht dachte ich 
mir ich zeig euch diesen Link hier, vielleicht ist da für die alten 
Hasen ja auch noch was dabei (interessante Links gibs da auch):

http://www.edn.com/index.asp?layout=article&articleid=CA6434367&industryid=47038&text=ddc114

Auf alle Fälle ist es sehr wichtig die Teile welche HF strahlen gut 
abzuschirmen bzw. den ADC gut abzuschirmen (nichts geht über Kupfer 
(lol))

Gruß
Andi

von Michael T. (michelback)


Lesenswert?

hallo Leute,
vielen Dank, jetzt formt sich so langsam ein Bild :D
@Kai:
Du hast natürlich recht, sowas muss ich selbst ausprobieren.


Dann werd ich schauen, dass ich alles in den mV Bereich bringe und 
versuche direkt mit Multilayertechnik zu arbeiten. Da dürfte ich dann 
mit 2 Masseflächen (digital und analog getrennt) gut schirmen können. 
kann man sowas (EMV) mit Pspice eigentlich simulieren? das wäre ganz 
interessant zu wissen. So könnte man sein Layout ja perfektionieren.
Grüße,
Michael

von Daniel (Gast)


Lesenswert?

grundsätzlich kannst du da sicher simulieren... nur ist das ganze so 
komplex und unüberschaubar das es nich halwegs vernüftiger zeit nichtmal 
ansatzweise möglich ist...

adc im mV Bereich messen... frag mich immer wiso sich die leute so mühe 
geben sich das leben selbst schwer zu machen... viel glück...

von Thomas (kosmos)


Lesenswert?

Man sollte möglichst nah am Sensor verstärken und dann erst das Signal 
auf die Reise schicken. Vielleicht ist es ja möglich den Sensor, OpAmp 
bzw. auch den ADC auf eine Platine auszulagern und möglichs nach an das 
zu messende Medium bringen.

Habe es auch schon oft bei Motorsteuergeräten gesehen das ein 2ter µC 
zum Einsatz kommt der nur für die AD-Wandlung und Aufbereitung der Daten 
zuständig ist das erlaubt auch einen möglichst großen Abstand zum 
Digitalteil  und es läßt sich alles schon vom Digitalteil abblocken.

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.