Forum: Mikrocontroller und Digitale Elektronik ADC: Sensorwert schwankt, weil VCC schwankt. Und jetzt?


von Roth (Gast)


Angehängte Dateien:

Lesenswert?

Es ist viel Text, ich weiß. Danke für's Trotzdem-Lesen, weil in einer 
eigentlich einfachen Sache ein Problem besteht, wozu ich noch keine 
passende Lösung parat habe.

Ich bin am KI (Kombiinstrument) meines VW am Tüfteln, um die 
Plateaufunktion (vom Hersteller gewollt falsche Anzeige der 
Kühlwasser-Temperatur) zu eliminieren.

HIER Beitrag "suche Schrittmotor-Schaltung (Patch für VW Kombiinstrument)"
und HIER Beitrag "Re: Arduino Analogeingang - leider nur sehr kleine Spannungsdifferenz (0,4V)"
zu sehen.

Wie Bild im letzten Link zeigt, geht es vorwärts. eigentlich sind jetzt 
nur noch ein µC (z.B. ARDUINO) und ein paar Bauteile (H-Bridge) nötig, 
um das Ziel zu erreichen: Den Schrittmotor der Kühlwasseranzeige selbst 
anzusteuern.

Leider habe ich gestern ein Problem bemerkt. Dazu komme ich weiter unten 
gleich noch. Vorher will ich mein Vorgehen erörtern.

Der Kühlwassertemperaturgeber nennt sich 'G2'. Er schaltet gegen Massem 
wie es üblich ist. Hier sowas wie ein Schaltplan: 
https://t4-wiki.de/w/images/Elektrik_Geber_Kuehlmittel_TDI_2000.jpg

Plan war, G2 von der Platine des KI abzugreifen. Das ist bereits 
geschehen, siehe Bild CIMG0493.JPG. Natürlich hochohmig, weil G2 noch 
weitere Funktionen ansteuert. Die Original-Technik darf ich nicht 
stören. Und darin liegt auch das Problem, denn der Spannungsteiler, für 
den G2 das Signal liefert, verwendet keine stabilisierte Spannung, 
sondern die nackte Bordspannung (12 bis 14V). Und diese schwankt!!

Dadurch schwankt auch der Messwert. Und zwar bei unveränderter 
Temperatur. Wie soll ich denn da messen können ???

Bemerkt habe ich das gestern, Da habe ich am G2 ein Voltmeter 
angeschlossen, um mal zu sehen, wie der Wert sich verhält. Beim erste 
Blinken sah ich das Malheur: Der Messwert blinkt mit :((

Natürlich ändert sich der Wert auch, wenn Verbraucher eingeschaltet 
werden, z.B. das Licht oder Gebläse eingeschaltet wird. Wenn das Licht 
an ist, hat der Sensor einen Spannungssprung von ca. 0,2 Volt (siehe 
Bilder CIMG0498.JPG und CIMG0499.JPG).

Bitte jetzt nicht lästern. Natürlich ist es klar, dass ein (an der 
Bordspannung hängender) Messwert sich ändert, wenn die Bordspannung sich 
ändert. Ich ging allerdings davon aus, dass das KI eine stabilisierte 
Spannung verwendet, um per Spannungsteiler das Eingangssignal für den 
Prozessor zu bilden. Das ist aber definitiv NICHT der Fall.

So kann natürlich nicht gemessen werden. Aber was soll ich tun? Mir 
fallen zwei Möglichkeiten ein:

1. Die 12-14V Bordspannung (natürlich per Spannungsteiler) als 
ADC-Referenzspannung (ARef) zu schalten.

2. Die Bordspannung mit einem eigenen ADC-Eingang zu messen und die 
Schwankungen intern im µC zu verrechnen.

Ich würde gerne wissen, wie der Hersteller (VW bzw. VDO) das Problem 
gelöst hat. An diese Info komme ich aber garantiert nicht ran. Wie 
würdet ihr das Problem lösen?

von Jörg R. (solar77)


Lesenswert?

...nur die Überschrift gelesen....

Gib dem AD-Wandler eine eigene Referenzspannung, unabhängig von VCC.

: Bearbeitet durch User
von Roth (Gast)


Lesenswert?

Jörg R. schrieb:
> ...nur die Überschrift gelesen....
>
> Gib dem AD-Wandler eine eigene Referenzspannung, unabhängig von VCC.

Sch...Überschrift nicht mehr geprüft. Nicht VCC des Prozessors, sondern 
die Versorgungsspannung des Gebers war gemeint

von Wolfgang (Gast)


Lesenswert?

Roth schrieb:
> Dadurch schwankt auch der Messwert. Und zwar bei unveränderter
> Temperatur. Wie soll ich denn da messen können ???

Wenn dein Sensorsignal linear von seiner (schwankenden) 
Versorgungsspannung abhängt, musst du eine ratiometrische Messung 
machen, d.h. die Referenz für den ADC muss auch per Spannungsteiler aus 
derselben schwankenden Spannung abgeleitet sein. Hochfrequente Störungen 
(in Größenordung der Wandlungszeit) müssen trotzdem rausgefilter werden.

von Dennis (Gast)


Lesenswert?

Ratiometrisch messen.

von Jörg R. (solar77)


Lesenswert?

Roth schrieb:
> Jörg R. schrieb:
>> ...nur die Überschrift gelesen....
>>
>> Gib dem AD-Wandler eine eigene Referenzspannung, unabhängig von VCC.
>
> Sch...Überschrift nicht mehr geprüft. Nicht VCC des Prozessors, sondern
> die Versorgungsspannung des Gebers war gemeint

Egal. Der AD-Wandler benötigt eine definierte Spannung mit der er 
vergleichen kann. Er sollte also eine geregelte Spannung als Referenz 
zugeführt bekommen.

von Roth (Gast)


Lesenswert?

Ihr seid wirklich schnell, danke :)

Wolfgang schrieb:
> d.h. die Referenz für den ADC muss auch per Spannungsteiler aus
> derselben schwankenden Spannung abgeleitet sein.
Und wie kriege ich es hin, dass die Schwankungen, gemessen in Volt, in 
der Höhe völlig identisch abgebildet werden? Dazu müssen doch die 
Widerstände beider Spannugsteiler (ARef und ADC-Pin) im selben 
Verhältnis zueinander stehen? Oder irre ich mich jetzt? Je mehr der 
Spannungsteiler gegen Plus geht, desto höher ist doch der Absolutwert 
der Schwankung. Lässt sich das elektronisch lösen, oder nur per 
Software?

von Temperatur-Messer (Gast)


Lesenswert?

Jörg R. schrieb:

> Egal.

Nein, absolut nicht.

> Der AD-Wandler benötigt eine definierte Spannung mit der er
> vergleichen kann. Er sollte also eine geregelte Spannung als Referenz
> zugeführt bekommen.

Nein.
Er muß die (heruntergeteilte) Bordspannung als Referenzspannung nehmen. 
Nur dann stimmt das Verhältnis zwischen der Spannung, die der Geber (mit 
seiner Beschaltung) liefert und der Bordspannung.

von Roth (Gast)


Lesenswert?

Gut. Ratiometrisch messen scheint die Lösung zu sein. 
http://www.elektronik-kompendium.de/forum/forum_entry.php?id=14895 Das 
Wort kannte ich noch nicht, aber es liegt auf der Hand.

Darf ich denn an den ARef-Pin eine sich (teilweise schnell) ändernde 
Spannung anlegen, oder kommt der µC dann durcheinander?

von Temperatur-Messer (Gast)


Lesenswert?

Roth schrieb:

> Darf ich denn an den ARef-Pin eine sich (teilweise schnell) ändernde
> Spannung anlegen, oder kommt der µC dann durcheinander?

Na freilich.
Das, was Du und ich als "schnell" empfinden, läßt so einen Kontroller 
nur
müde blinzeln.

von geb (Gast)


Lesenswert?

> Darf ich denn an den ARef-Pin eine sich (teilweise schnell) ändernde
> Spannung anlegen, oder kommt der µC dann durcheinander?

>Na freilich.
>Das, was Du und ich als "schnell" empfinden, läßt so einen Kontroller
>nur
>müde blinzeln.

Da wär ich jetzt nicht so überzeugt. Ich denke, dass sich Vref während 
der Wandlungszeit nicht mehr als 1LSB ändern sollte, sonst sind die 
Messwerte vermutlich Mist.

Grüsse

von MaWin (Gast)


Lesenswert?

Roth schrieb:
> Ich bin am KI (Kombiinstrument) meines VW am Tüfteln, um die
> Plateaufunktion (vom Hersteller gewollt falsche Anzeige der
> Kühlwasser-Temperatur) zu eliminieren.

Oh ja, DAS nervt mich auch an meiner Karre,
diese geitige Behindertheitnder Entwickler, die sich nicht denken 
können, daß eine korrekte Anzeige auch Sinn macht und 
Diagnosemöglichkeiten ergibt,
habe dafür aber ODB Anzeige der echten Temp auf Tablet.


Genau so bescheuert, daß der Wagen zwar sehr genau weiss wann eine 
Glühlampe durchgebrannt ist und das im Inspektions-Log vermerkt, aber 
dem Fahrer auf dem Kombiinstrument nicht anzeigt.

Roth schrieb:
> Gut. Ratiometrisch messen scheint die Lösung zu sein.

Ja, auch Messung über 2 Eingänge (Messwert und Spannung) und 
rückrechnen.

> Darf ich denn an den ARef-Pin eine sich (teilweise schnell) ändernde
> Spannung anlegen, oder kommt der µC dann durcheinander?

Eigentlich nicht, die Spannung sollte während der Messung konstant 
bleiben, aber die dauert nur Mikrosekunden.

Man bildet den Mittelwert mehrere Messungen, dann stören Störungen nicht 
so.

von Roth (Gast)


Lesenswert?

Temperatur-Messer schrieb:
> Na freilich.
OK. Wenn das geht, will ich es nachher gleich umsetzen.

Und wie kriege ich es hin, dass die (heruntergeteilte) Bordspannung (in 
Absolutwerten) dieselben Spannungssprünge hat wie der zu messende 
Sensorkreis? Lässt sich das überhaupt zu 100% kompensieren, oder muss 
ich per Software mit einem Multiplikator arbeiten?

von Temperatur-Messer (Gast)


Lesenswert?

geb schrieb:
>> Darf ich denn an den ARef-Pin eine sich (teilweise schnell) ändernde
>> Spannung anlegen, oder kommt der µC dann durcheinander?
>
>>Na freilich.
>>Das, was Du und ich als "schnell" empfinden, läßt so einen Kontroller
>>nur
>>müde blinzeln.
>
> Da wär ich jetzt nicht so überzeugt.

Aber ich. :-)

> Ich denke, dass sich Vref während
> der Wandlungszeit nicht mehr als 1LSB ändern sollte, sonst sind die
> Messwerte vermutlich Mist.

Das ist eine Temperaturmessung in einem verhältnismäßig trägen System. 
Da muß man nicht wie ein armer Irrer abertausend Mal pro Sekunde 
abfragen.
Wenn man alle 500ms abfragt, kann man schön in Ruhe rechnen (lassen).
Nur keine ungesunde Hektik.
:)

von Roth (Gast)


Lesenswert?

MaWin schrieb:
> Man bildet den Mittelwert mehrere Messungen, dann stören Störungen nicht
> so.
So kann man es machen. Leider weiß ich nicht, wie der µC sich intern 
verhält. Ob er (a) erst alle Eingänge gleichzeitig puffert, und dann die 
Werte einliest, oder (b) die Pins nach-und-nach einliest.

(a) wäre der Idealfall. Aber bei einem kleinen System dürfte (b) wohl 
wahrscheinlicher sein. So oder so werde ich Mittelwerte bilden - müssen.

***

Danke schon mal an alle für die vielen, wirklich guten Tipps :-)

von Roth (Gast)


Lesenswert?

Temperatur-Messer schrieb:
> Wenn man alle 500ms abfragt, kann man schön in Ruhe rechnen (lassen).
> Nur keine ungesunde Hektik.
Na ja Murphy redet auch noch mit. Ob mS oder µS , irgendwann zum 
Zeitpunkt X ändert sich der Wert. Und wenn X mit Zeitpunkt des Pollens 
zufällig identisch ist, ist Ergebnis falsch :( oder nicht?

von Einer K. (Gast)


Lesenswert?

Roth schrieb:
> Leider weiß ich nicht, wie der µC sich intern
> verhält. Ob er (a) erst alle Eingänge gleichzeitig puffert, und dann die
> Werte einliest, oder (b) die Pins nach-und-nach einliest.

Das Datenblatt des µC gibt gerne Auskunft.

von MaWin (Gast)


Lesenswert?

Roth schrieb:
> Leider weiß ich nicht, wie der µC sich intern
> verhält. Ob er (a) erst alle Eingänge gleichzeitig puffert, und dann die
> Werte einliest, oder (b) die Pins nach-und-nach einliest.

Natürlich nach und nach.

simutaneous sampling wird extra beworben wenn er es kann.

Brauchst du nicht.

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.