Hi,
muesste im mV Bereich messen. Da wollte ich wissen, ob das Verfahren,
dass ich mir für den AVR überlegt hab, funktioniert und man so dennoch
gute Werte erhält.
Also, wenn ich den Strom erhöhe, wird in meinem Bsp auch die Spannung
größer
Jetzt dachte ich mir, ich erhöhe den Strom immer genau so weit, bis der
AVR die Zahl erhöht.
also bis er zB von 4 auf 9mV umspringt und dann habe ich quasi gerade
den "9mV-Bereich" erreicht und knapp über 6,5 mV. Meint ihr das geht?
Du kannst Ströme so langsam oder schnell erhöhen oder erniedrigen wie Du
willst. Aber was hat das mit der Auflösung zu tun?
Es spielt doch gar keine Rolle ob eine zu messende Grösse schon Stunden
vorher anliegt oder kurz vor der Messung gerade eingestellt wurde. (Ich
rede hier wohlgemerkt nicht von Geschwindigkeiten in Grössenordnungen
der Haltezeit oder analoger Parameter der Eingangsschaltung).
Die Spannung bei welcher der ADC Wert um ein Bit springt unterliegt
genau den Ungenauigkeiten von den bei AD-Wandlern die Rede ist. Oder
meinst Du wenn er misst zwischen den Bit-Werten genauer als genau links
und rechts vom Kippen?
Mag sein, das mir Deine Idee nicht recht klargeworden ist. Vielleicht
erklärst Du es anhand eines Diagrammes das den wahren Spannungswert auf
der X und den AD-Ausgangswert auf der Y-Achse zeigt.
> Meint ihr das geht?
Nein!
Das Stichwort dazu heißt Linearität und Monotonie des ADC.
Es ist nicht garantiert, dass 1 Inkrement immer gleich viel
Spannungsunterschied repräsentiert. Dazu mehr im Datenblatt ;-)
Es gibt aber eine anderen Methode:
du gibst zusätzlich Rauschen in der Höhe (mindestens) eines Bits auf
dein Signal. Dann machst du etliche Messungen und mittelst das Ergebnis
aus diesen Messungen.
Ja Mittelwert klingt gut.
Hier meine Solution:(Ist aber nicht praktikabel)
Man misst die Spannung auf einem Kanal des ADUs in 8 bit Auflösung,
nimmt das gemessene Byte und erhöht es um eins um es danch auf einem DAU
wieder auszugeben.
Danach nimmt man die Spannung des DAUs und zählt von ihr die Spannung
des zu messenden Signals weg(subtrahierschaltung). Die so erzeugte
Spannung muss man dann nurnoch mit 256 multiplizieren und schon erhält
man eine Spannung die das niederwärtige Byte(leider bitweise invertiert)
des Theoretischen 16Bit ADUs darstellt.
Das Ergebniss der bitweise invertierten zweiten Wandlung, also der der
selbst erzeugten Spannung, ergibt zusammen mit dem Byte der ersten
Wandlung einen 16 Bit wert der wohl hoch genug aufgelöst sein dürfte.
Natürlich ist das alles absoluter Schwachsinn, da die
Bauteilungenauigkeiten soeinen Humbug absolut nicht zulassen würden.
Ich denke schon dass sich damit auch die Auflösung erhöht.
Du musst die Werte bevor du sie Mittelst in größere Datentypen wie zum
Beispiel Float stecken.
Zu meinem Beschämen muss ich zugeben dass die von mir oben gepostete
Schaltung falsch ist.(bitte den Dateianhang löschen)
Dafür würde die neue Schaltung auch dann funktionieren wenn der ADU
nicht abrunden würde.
Hi Alex,
das Standardverfahren besteht darin, daß Du Dein Meßsignal mit einem
Operationsverstärker so weit verstärkst, daß der ADU zu etwa 70%
ausgesteuert ist. Ich denke, dann gibt es mit der Auflösung die
wenigsten Probleme.
Gruß,
Michael
@ aaa
meinst du mit wackeln, dass ich schaue
wenn der controller zB anzeigt
0,5 0,6 0,5 0,6 0,5 und eben so zwischen den
werten hin und herspringt, die Spannung dann 0,55 beträgt?
@Michael Lenz
Das Problem ist, dass der Wert von 2,5V abweicht. Ginge also nur mit
einem Differenzverstärker, und dazu bräuchte ich wieder genau die
gleiche Spannung (sind nicht immer ganz genau 2,5V; mal werden mir 2,45
mal 2,55V angezeigt); wenn sich da ein Fehler mit einspielt, wird dieser
gleich vervielfacht.
>> Eine Standardloesung ist zb ein Modulationssignal draufzugeben, zB eine>> langsame Rampe und dann zu schauen wenn die Bits wackeln.
:
> und eben so zwischen den> werten hin und herspringt, die Spannung dann 0,55 beträgt?
Auch diese Idee ist kreativ und wird nicht funktionieren:
Es ist nicht jeder Schritt zwischen jedem Bit des ADCs gleich groß.
Stichwort Linearität, nähere Auskünfte dazu gibt das Datenblatt des
Bausteins.
Hallo Alex,
>> Das Problem ist, dass der Wert von 2,5V abweicht. Ginge also nur mit> einem Differenzverstärker, und dazu bräuchte ich wieder genau die> gleiche Spannung (sind nicht immer ganz genau 2,5V; mal werden mir 2,45> mal 2,55V angezeigt).
Es ist relativ egal, was angezeigt wird. Entscheidend ist, ob der Bias
(d. h. die 2,5V) stabil sind. Wenn nein, hast Du ohnehin ein Problem.
> wenn sich da ein Fehler mit einspielt, wird dieser> gleich vervielfacht.
Ja, und dann wieder durch die Verstärkung geteilt. Den Fehler wirst Du
auch mit anderen Verfahren nicht los.
Poste am besten mal, um welche ominöse Schaltung es sich handelt. Du
kennst das Problem mit der Glaskugel.
Gruß,
Michael
Hi,
also es handelt sich um einen Hallsensor. Der zeigt bei keinem Feld 2,5V
an. Ich zieh mit Hilfe des Programms noch 2,5V ab.
Sind diese stabil? Naja.
Also letztens bei der Eichung war das so:
0,000V bei der ersten Eichungsdurchführung
eine Weile vergeht, ich machs nochmal, dass es genauer wird
-0,004V beim 3.Mal, wie ich wieder kein Feld hatte:
-0,009V
Kann natürlich sein, dass diverse Störungsfelder da waren, ich weiß
nicht. Wobeis beim Einschalten glaub ich wieder 0,0 waren.
Das ist aber nicht soo dramatisch, es geht ja nur um die Differenz.
Daher wollte ich auch versuchen, möglichst genau zu messen. Der maximale
Fehler von ca. 0,0025V macht schon recht viel aus.
AD Wandler mit höherer Auflösung / Genauigkeit sind nicht mehr so tuerer
und auch gar nicht so groß. Da ist der Aufwand mit den Extra OPs sogar
eher größer. Man sollte z.B. einen LTC2400, MCP3421 oder ähnliches in
Erwägung ziehen.
Für etwas (1-3 Bit) mehr Auflösung geht das mehrfache Auslesen des ADs,
wenn genügend Rauschen oder Ersatzweise eine kleine Wechselspannung
drauf ist. Die ungleiche Breite der Bitabstände ist da einer der
Begrenzenden Faktoren.
Die Signalquelle ist immer noch nicht klar:
Wenn das ein Hallsensor mit Verstärker ist, sind die 2,5 V offset sehr
Störend.
Ein reiner hallsensor ohne Verstärkung liefert eine kleine
Differenzspannung zwischen 2 Punkten, die beide eine gewisse Spannung
gegen GND hat. Die Auswertung erfolgt dann durch einen
Differenzverstärker. Je nach Qualität des Sensors kann es da auch einen
Relativ großen Offset geben.
Der Beschreibung nach scheint aber schon die Signalquelle nicht so genau
zu sein. Dann hilft auch ein besserer AD wandler nicht.
Es gibt mit dem Hallsensor uebrigens zwei Offsets. Der Eine von den
Hallsonde, und der Andere vom Restfeld. Dagegen kann man unter
Umstaenden wie folgt vorgehen :
Den Offset der Hallsonde kriegt man weg, indem man keinen DC Strom
anlegt, sondern einen AC Strom. Den Offset durch das Restfeld krieg man
weg, in dem man die Sonde dreht.
Hi,
also per software hab ich ihn schon eliminiert.
Meinte eigentlich nur zusätzlich, weil sich der ab und an mal um ein,
zwei werte ändert.
>Den Offset der Hallsonde kriegt man weg, indem man keinen DC Strom>anlegt, sondern einen AC Strom. Den Offset durch das Restfeld krieg man>weg, in dem man die Sonde dreht.
meinst du den kompletten offset? weil da hab ich 2,5V.
Und wie ich 5V AC erzeuge, weiss ich leider auch nicht... naja,
letzteren Tipp merk ich mir auf jeden Fall, thx ;)
Hi Alex,
> also es handelt sich um einen Hallsensor. Der zeigt bei keinem Feld 2,5V> an. Ich zieh mit Hilfe des Programms noch 2,5V ab.> Sind diese stabil? Naja.
Ich denke, das ist das eigentliche Problem, das Du hast. Ein
Rauschsignal kannst Du durch zeitliche Mittelung wegfiltern. Ein
Driftsignal hat viel längere Mittelungszeiten.
> Kann natürlich sein, dass diverse Störungsfelder da waren, ich weiß> nicht. Wobeis beim Einschalten glaub ich wieder 0,0 waren.> Das ist aber nicht soo dramatisch, es geht ja nur um die Differenz.
Leg doch mal den Daumen auf den Sensor (zum Heizen - du kannst auch den
Fön nehmen). Dann siehst Du, ob das ein Temperaturdrift ist.
Vielleicht kannst Du dann ja auch rausfinden, ob der Magnetfeldsensor
die Temperaturabhängigkeit hat oder evtl. sogar der AD-Wandler. Ich
vermute ja eher, es ist der Hallsensor.
Ich habe mal mit dem Magnetfeldsensor KMZ-51 gearbeitet. Das Magnetfeld
wurde über den magnetoresistiven Effekt (Abhängigkeit des el.
Widerstandes vom Magnetfeld) gemessen. Da gab es auch ein Driftproblem.
Es wurde gelöst, indem der Widerstand einmal bei positivem und einmal
bei negativem Strom gemessen wurde und anschließend beide Ergebnisse
voneinander subtrahiert wurden. Das ist vom Prinzip her so ähnlich wie
die Empfehlung, mit Wechselstrom zu messen.
Eventuell ist aber auch nur die eingesetzte Referenzspannungsquelle für
die 2,5V schlecht. Wenn das Bauteil einen Eingang für eine externe
Referenzspannung hat, hast Du Glück. Dann kannst Du eine genauere
Referenzspannungsquelle nehmen.
(Wenn Du eine gute Referenzspannungsquelle brauchst, kannst Du mal bei
Analog schauen. Die haben sehr gute, und man kann auch samplen bzw. bei
Farnell bestellen.)
> Daher wollte ich auch versuchen, möglichst genau zu messen. Der maximale> Fehler von ca. 0,0025V macht schon recht viel aus.
Wie gesagt: Ich glaube nicht, daß Du ein Auflösungsproblem oder ein
Problem mit Rauschen hast, sondern ein Driftproblem.
Gruß,
Michael