Hallo zusammen!
Folgendes: Ich habe einen ADC, welcher einen Druck misst...also er misst
natürlich die Spannung des Drucksensors. Problem ist, dass mein Wert
ziemlich wackelt. Wie kann ich diesen am besten beruhigen?
Wenn ich die Sample-Rate runter stelle, dann wird das Ding
schneckenlangsam. Mit einer höheren Sample-Rate und Averaging durch eine
bestimmte Zahl an Messwerten bringt auch Zappeln oder Schneckentempo.
Aber auch im Schneckentempo springt der Wert, nur halt langsamer.
Es ist ein 20-Bit SD-Wandler (den hatte ich grad hier)
In einem Metallgehäuse das ganze und sehr weit getrennt von irgendwas
digitalem. Klar, Layout macht viel aus, aber was kann ich jetzt tun, um
den Wert zu beruhigen?
Hi,
der Sigma Delta Wandler benötigt ein Sample&Hold Glied, wenn er noch
keines integriert hat. Er bildet den Mittelwert der Eingangsspannung,
also wenn die während einer Messung davonläuft dann macht der Käse am
Ausgang.
20 BIT und welche Eingangsspannung wird gemessen ?
Beispiel: 0-5 Volt bei 20 BIT = 1048576 Schritte oder anders formuliert:
5V / 1048576 = 4,76 µVolt. Was erwartest du da ?
Da gehts dann schon mit dem Layout los, sag jetzt nicht das Ganze ist
auf nem Lochraster Board.
1275 schrieb:> wenn er noch> keines integriert hat
Das ist ein fertigr Wandler für Brückenmessungen. Direkt zum anschließen
mit integriertem PGA.
Frank Bär schrieb:> In welchem Umfang zappelt der ADC denn?
Die Werte liegen im "Nullzustand" zwischen 502764 und 502806. Ich weiß,
das ist nicht soooo viel, aber ich seh es auf dem Display und in meinem
Stromausgang. Wie könnte ich das los werden?
1275 schrieb:> der Sigma Delta Wandler benötigt ein Sample&Hold Glied
Gerade eben nicht. Der ΔΣ-Wandler liefert einen kontinuierlichen
Bitstrom. Erst der digitale Filter, der den Bitstrom in einen Wert
umrechnet, sorgt für eine Abtastrate.
Bernd N schrieb:> 5V / 1048576 = 4,76 µVolt. Was erwartest du da ?
3V / 1048576 = 2,86uV
Mir ist das völlig klar! Und es ist kein Lochraster, nein. Ich suche ja
nur nach einer geeigneten Möglichkeit, das ganze nachträglich in
Software zu beruhigen, ohne dass die ganze Geschichte extrem langsam
wird.
Einfach die letzten Stellen abschneiden?
raketenfred schrieb:> gleitender Mittelwert über eine gewisse anzahl?!
Also ich habe jetzt eine bestimmte anzahl von messungen und mache da
draus den Mittelwert. Aber der SD-Wandler ist ja eh schon ne Schnecke.
Momentan liest er mit 10SP/s ein. Da dann noch nen Mittelwert und das
Display hinkt.
Ich kann die SP/s jetzt hochdrehen, aber das ändert nichts.
>> Einfach die letzten Stellen abschneiden?
So ist es. Wie sinnvoll das ist ergibt sich aber erst aus dem
Zusammenhang. Was willst du messen und wie genau willst du es messen ?
Was soll denn die Anzeige später einmal anzeigen ? Druck in welchen
Schritten ?
Guido schrieb:> Die Werte liegen im "Nullzustand" zwischen 502764 und 502806. Ich weiß,> das ist nicht soooo viel, aber ich seh es auf dem Display und in meinem> Stromausgang. Wie könnte ich das los werden?
Bilde einen gleitenden Mittelwert über ~20 Werte, damit kriegst du das
weggebügelt.
Am Meßeingang C gegen Masse (von 20 pF bis einigen nF) je nach
Geschwindigkeitsanforderung.
In der Software entweder einen gleitenden Mittelwert oder besser einen
Medianfilter programmieren. Elegant wäre das Mittelwertfilter gleich als
Standard FIR-Filter zu programmieren, um die Filtercharakteristik später
optimieren zu können.
Du hast ein Rauschen von ca. 120µV. Wie steht es um die Abschirmung des
ADCs, der Referenzspannungsquelle und dem Rauschen auf der
Refrenzspannung selbst? Der LTC2400 (24bit) ist mit 0,3ppm RMS Rauschen
angegeben, das macht bei 5V Referenz 4.2µVpp. Was für einen Wandler hast
du denn genau?
Guido schrieb:> Einfach die letzten Stellen abschneiden?
Kosmetik
> Einfach die letzten Stellen abschneiden?
Das ist auch keine Lösung: stelle dir mal vor, dass der Messwert z.B.
genau auf der Hälfte deines Bereiches liegt.
Es zappelt dann trotzdem...
Auf wie schnelle Änderungen willst du reagieren können? -> passender
Tiefpassfilter.
Möglichst alle Störquellen deaktivieren (µC - sleepmodi).
Wobei alles >15bit schon recht sportlich wird.
moving average filter glätten ohne langsamer zu werden.
Paul schrieb:> Am Meßeingang C gegen Masse (von 20 pF bis einigen nF) je nach> Geschwindigkeitsanforderung.
Ich habe da einen 1u Kondensator an jedem Eingang
Vielleicht versuchst Du auch mal zu klären ob Du Dir Störung von der
Sensor Seite einfängst. Also speise doch mal eine saubere Gleichspannung
aus z. B. einer Batterie ein. Vielleicht hast Du aber auch Spikes auf
der Versorgungsspannung für die Brücke. Klemm doch mal ein Scope ran.
Luk4s K. schrieb:> Gerade eben nicht. Der ΔΣ-Wandler liefert einen kontinuierlichen> Bitstrom. Erst der digitale Filter, der den Bitstrom in einen Wert> umrechnet, sorgt für eine Abtastrate.
Von Abtastrate habe ich auch nichts gesagt.
>> Das ist auch keine Lösung: stelle dir mal vor, dass der Messwert z.B.>> genau auf der Hälfte deines Bereiches liegt.
Es ist dann keine Lösung wenn es ohne Sinn und Verstand erfolgt. Ein AD
Wandler wandelt immer eine Eingangsgröße in eine Ausgangsgröße. Wenn das
mit 16 BIT geht dann kann er die letzten 4 BIT sehrwohl verwerfen.
Leider immer noch keine Angaben über die Anzeige und somit ist die
Diskussion sinnfrei.
Bernd N schrieb:> Leider immer noch keine Angaben über die Anzeige und somit ist die> Diskussion sinnfrei.
Ich würde mir gerne den Druck mit einer Auflösung von 0,1mbar anzeigen
lassen. Meine Anzeige schwankt drucklos zwischen -0,5 und + 0,2.
Luk4s K. schrieb:> Guido schrieb:>> Einen MAX11206> Auf dem Papier sieht der doch schonmal ganz gut aus.> Und jetzt noch: Was für eine Refrenzspannungsquelle?
Eine LT1406CIS. Die Initialgenauigkeit ist hierbei egal, da mit dieser
Quelle kalibriert wird.
Lars schrieb:> Luk4s K. schrieb:>> Gerade eben nicht. Der ΔΣ-Wandler liefert einen kontinuierlichen>> Bitstrom. Erst der digitale Filter, der den Bitstrom in einen Wert>> umrechnet, sorgt für eine Abtastrate.>> Von Abtastrate habe ich auch nichts gesagt.
Doch, ein Sample&Hold impliziert eine Abtastrate.
Guido, wir reden leider immer noch aneinander vorbei. 0,1 mBar verstehe
ich aber ich wüßte gerne folgendes:
Beispiel:
Anzeige von 0-2 Bar, Schrittweite = 0,1 mBar.
Welche Eingangsspannung entspricht 2 Bar ? Wie ist der Bereich
ausgenutzt ? Kannst du nicht einfach mal alle Daten zusammenhängend
herausrücken und dann mal mit z.B. 16 BIT rechen und selbst dabei
erkennen ob 16 BIT dafür ausreichen ?
UREF ?
Dann kann man immer noch Mittelwertbildung, TP etc. in Software angehen.
Im ersten Schritt kann man jedenfalls durch einfache Mathematik
bestimmen welche Auflösung für die Aufgabe benötigt wird und genau
dieses Konzept hätte ich gerne von dir in einem Rutsch.
Guido schrieb:> LT1461CIS, sorry!
Die macht ca. 24µVpp Rauschen. Jetzt hast du mehrere Möglichkeiten:
Du willst die 20bit voll ausnutzen und suchst die Rauschquelle und
eliminierst sie.
Oder dir sind die letzten Bits egal und schneidest sie ab.
0,1mBar Auflösung, was ist Fullscale? Was ist dein Drucksensor und wie
sieht das Analogfrontend aus?
Bernd N schrieb:> Guido, wir reden leider immer noch aneinander vorbei.
OK, also ich habe eine Druckmessung von 0-10bar und möchte diese gerne
mit 0,1mbar auflösen.
Bei Vollausschlag bekomme ich einen ADC-Wert von 802310 (Brückenspannung
am DMS vom Drucksensor) Der PGA steht auf 64, das ist das höchste, was
geht, sonst verlässt er den Messbereich vom ADC (der ADC stellt sich die
Verstärkung beim Kalibrieren selber ein).
Die Referenzspannung beträgt 3,000V
Luk4s K. schrieb:> Was ist dein Drucksensor und wie> sieht das Analogfrontend aus?
Es handelt sich um einen keramischen DMS. Die Brückenausgänge gehen je
auf einen 1u-C und von da an den ADC, dieser hat Signal-Buffer, um die
Quelle nicht zu belasten.
Die Referenzspannung beträgt 3,000V
802310 = 3V ? = 10 Bar ?
Besser 1048576 = 3V, will sagen das der Ansatz schon nicht gut ist. Im
ersten Schritt würde ich den Sensor so anpassen das 10 Bar auch ca. der
Wandler Endpunkt ist und erst dann gehts weiter.
Habe ich deine Werte richtig verstanden ?
Guido schrieb:> OK, also ich habe eine Druckmessung von 0-10bar und möchte diese gerne> mit 0,1mbar auflösen.
Das sind ca. 16,7bit. bzw. 10ppm.
Guido schrieb:> Der PGA steht auf 64
Aha. Dann werden aus den 2,86µV/bit schonmal 45nV/bit. Dann machen deine
42Bits rauschen nur noch 1,8uV aus.
Ja, 6 Stellen z.B. 10.0001 Bar = 16 BIT + 1 also 3 BIT wegwerfen,
Anpassung korregieren und Mittelwert bilden. Wenns dann noch wackelt
Filter verwenden.
Bernd N schrieb:> 802310 = 3V ? = 10 Bar ?
802310 == 10 bar, nicht 3V! Wi gesagt, der interne PGA kann nur 2^n bis
128, also nichts zwischen 64 und 128.
Bernd N schrieb:> Im> ersten Schritt würde ich den Sensor so anpassen das 10 Bar auch ca. der> Wandler Endpunkt ist und erst dann gehts weiter.
Externe Beschaltung ist leider nicht drin, der PGA muss das erledigen,
daher leider auch keine 100%ige Anpassung ;-\
Wenn ich mich nicht allzusehr verrechnet hab, dann hast du schon das
Minimum an Rauschen rausgeholt. Die Kosmetische Beruhigung machst du
dann am besten in Software.
Dann betreibst du jetzt die Korrektur eines Designfehlers. Du verwirfst
durch die Fehlanpassung schon jede Menge. Der Ansatz ist für ein
präzises Messgerät nicht gut.
>> Wenn ich mich nicht allzusehr verrechnet hab, dann hast du schon das>> Minimum an Rauschen rausgeholt. Die Kosmetische Beruhigung machst du>> dann am besten in Software.
So ist es.
Luk4s K. schrieb:> Wenn ich mich nicht allzusehr verrechnet hab, dann hast du schon das> Minimum an Rauschen rausgeholt. Die Kosmetische Beruhigung machst du> dann am besten in Software.
Na jut, Jungs. Dann werde ich erstmal werkeln und mich dann wieder mit
dem Resultat melden! Ich danke euch erstmal!
if(AdcVal-measVal>AdcWindow){// Delta measVal, AdcVal > X mV ?
9
AdcVal=measVal;// => Anzeige sofort aktualisieren
10
}else{// Delta measVal, AdcVal < X mV ?
11
AdcVal-=1;// => Messwert annähern
12
}
13
}
Hierbei wird eine aktualisierung der Anzeige bei großem Delta sofort
erzwungen, bei kleinen Änderungen nähert man sich an. Die Anzeige wird
hierdurch träge.
Guido schrieb:> OK, also ich habe eine Druckmessung von 0-10bar und möchte diese gerne> mit 0,1mbar auflösen.
1:100.000, das ist ja schon recht heftig.
Bist Du sicher, daß der Sensor überhaupt so hoch auflösen kann?
Peter
0,1 mbar Auflösung entspricht bei atmosphärischem Druck etwa einer
Höhenänderung von 80cm.
Je nach Größe und Form des Volumens, in dem die Messung erfolgt, wird
man da schon erkennbare Änderungen des Drucks durch äußere Einflüsse
erhalten (vorbeikommendes Fahrzeug/Flugzeug).
Edit: Temperaturänderungen nicht zu vergessen.