Forum: Mikrocontroller und Digitale Elektronik HIH-5030 an ADC Input


von Tobias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte gerne eine Platine entwickeln, mit der ich über einen RS485 
Bus die Luftfeuchte messen kann.

Als Sensor möchte ich den HIH-5030 nutzen. Er soll an einen ADC des 
ATmega 8.
Nun bin ich im Datenblatt des HIH daruf gestossen, dass eine minmale 
Last(Widerstand) von 65kOhm am Ausgang hängen muss.

Laut Datenblatt des Atmega hat der ADC einen Eingangswiderstand von 
100MOhm.
Sollte von der Seite her ja dann schon mal passen. Nun möchte ich vor 
dem ADC jedoch gerne einen Tiefpass einsetzen. Mein Prof. hat immer 
gesagt: "Nutzen Sie nie einen ADC am µC ohne Filter". Nun bin ich mir 
allerdings unsicher, wie sich der Tiefpass an meinem Sensor verhält.

Kann ich die Schaltung so wie oben angehangen aufbauen?

Danke schon mal im Voraus.

Mit freundlichen Grüßen
Tobias

von Joe F. (easylife)


Lesenswert?

Tobias schrieb:
> Sollte von der Seite her ja dann schon mal passen.

Ich sehe keinen Lastwiderstand bei dir. Passt also von der Seite schon 
mal eher nicht so gut... ;-)

Tobias schrieb:
> Mein Prof. hat immer
> gesagt: "Nutzen Sie nie einen ADC am µC ohne Filter".

Ein weiser Mann.

Die Grenzfrequenz (fc) des Filters muss auf die Samplingfrequenz 
abgestimmt sein (fc möglichst unter 1/2 samplingfrequenz (fs)).
Alle (Stör-)Frequenzen über fs/2 "spiegeln" sich an fs/2.

: Bearbeitet durch User
von Tobias (Gast)


Lesenswert?

Hallo,

vielen Dank für die Antwort.
Hab jetzt noch 100k parallel zum C6 gesetzt. Ich hätte jetzt den µC als 
Last gesehen.

Wie ganau muss die Grenzfrequenz des Tiefpasses den im Anteil der 
Samplingfrequenz entsprechen? Ich arbeite mit 125kHz im ADC.
Bräuchte nach der Rechnung dann 62,5kHz.
Mit der üblichen E12 Reihe komme ich allerding "nur" auf 60,2kHz.
Genügt das? Ich habe darin noch keinerlei Erfahrungen.

Mit freundlichen Grüßen
Tobias

von Joe F. (easylife)


Lesenswert?

Tobias schrieb:
> minmale
> Last(Widerstand) von 65kOhm

Tobias schrieb:
> Hab jetzt noch 100k parallel zum C6 gesetzt.

Damit ist die Last aber immer noch zu klein.
Großer Widerstand = kleine Last.


> Wie ganau muss die Grenzfrequenz des Tiefpasses den im Anteil der
> Samplingfrequenz entsprechen? Ich arbeite mit 125kHz im ADC.

Du fragst den ADC aber vermutlich nicht 125000x pro Sekunde ab. Das 
macht bei einem Temperatursensor keinen Sinn.

Entscheidend ist die Frequenz, mit der du in deiner Firmware den ADC 
abfragst.

> Bräuchte nach der Rechnung dann 62,5kHz.
> Mit der üblichen E12 Reihe komme ich allerding "nur" auf 60,2kHz.
> Genügt das? Ich habe darin noch keinerlei Erfahrungen.

Es muss nicht so genau sein.

Wie ist hoch denn deine tatsächliche Samplingfrequenz (also Abfragen des 
Temperaturwertes pro Sekunde)?

Edit:
Bzw. umgekehrt gefragt:
In welcher Zeitspanne erwartest du einen nennenswerte 
Temperaturänderung?

: Bearbeitet durch User
von Tobias (Gast)


Lesenswert?

Hallo,

hatte mich schlichtweg einfach vertippt.
10k habe ich paralell zum C gesetzt. Das sollte als Last ja genügen.

Ich frage den Sensor über den Timer alle 10ms ab. Wären also 100Hz.
Lege ich den Filter dann auf 50Hz aus?

Mit freundlichen Grüßen
Tobias

von Tobias (Gast)


Lesenswert?

Joe F. schrieb:
> Edit:
> Bzw. umgekehrt gefragt:
> In welcher Zeitspanne erwartest du einen nennenswerte
> Temperaturänderung?

Natürlich erwarte ich in einer Zeitspanne von 10ms keine nennenswerten 
Änderunge. Es geht hier mehr um ein Monitoring.

Mit freundlichen Grüßen
Tobias

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Ich würde den Filter noch weit darunter ansetzen.

z.B. 2.2K in Serie und den Kondensator auf 4.7uF (besser noch 1nF 
parallel für besseres HF Filtering).

Damit hast du eine Grenzfrequenz (-3dB) von 15 Hz, und alles oberhalb 
der kritischen Frequenz von fs/2 (50 Hz) wird mit mind. 10dB 
unterdrückt.

: Bearbeitet durch User
von John D. (Gast)


Lesenswert?

Seid ihr beiden euch wirklich sicher, dass das Datenblatt mit "Minimum 
Load" meint, dass dieser Widerstandswert nicht überschritten werden 
darf? Die DB von Honeywell sind leider nicht das Gelbe vom Ei (kenne ich 
vom HIH8131), aber bei einem Low-Power-Sensor erwarte ich, dass der 
Lastwiderstand einen gewissen Wert nicht unterschreiten darf.

von John D. (Gast)


Lesenswert?

Und die 50Hz-Filterung macht man besser per Software. C6 hat vielmehr 
den Sinn, den beim Samplen kurzfristig gezogenen Strom in den ADC-Pin zu 
liefern. Aber das wird im Atmega-Datenblatt ja eh beschrieben.

von Tobias (Gast)


Lesenswert?

John Drake schrieb:
> Seid ihr beiden euch wirklich sicher, dass das Datenblatt mit
> "Minimum
> Load" meint, dass dieser Widerstandswert nicht überschritten werden
> darf? Die DB von Honeywell sind leider nicht das Gelbe vom Ei (kenne ich
> vom HIH8131), aber bei einem Low-Power-Sensor erwarte ich, dass der
> Lastwiderstand einen gewissen Wert nicht unterschreiten darf.

Tja,

das ist eben die gute Frage.
Wenn von "Minimum Load" die Rede ist zwischen Output und Ground würde 
ich es so interpretieren, dass dies die kleinst mögliche Last ist.

von John D. (Gast)


Lesenswert?

Ja, das ist Raterei. Es könnte genausogut minimaler Lastwiderstand 
heißen. Korrekterweise hätte das in die Tabelle 1 aufgenommen werden 
müssen.

Für mich ist die Sache klar: ich würde den Sensor hochohmig betreiben. 
Wenn du dir nicht sicher bist: Miss halt z.B. bei 10kOhm, 68kOhm und 
470kOhm die Ausgangsspannung und schaue auf Abweichungen.

von Tobias (Gast)


Lesenswert?

John Drake schrieb:
> Ja, das ist Raterei. Es könnte genausogut minimaler Lastwiderstand
> heißen. Korrekterweise hätte das in die Tabelle 1 aufgenommen werden
> müssen.
>
> Für mich ist die Sache klar: ich würde den Sensor hochohmig betreiben.
> Wenn du dir nicht sicher bist: Miss halt z.B. bei 10kOhm, 68kOhm und
> 470kOhm die Ausgangsspannung und schaue auf Abweichungen.

Ja das wäre jetzt auch meine Idee gewesen.

Den Tiefpass(Hardware) lass ich dann ganz wegfallen? Sowohl für 50Hz als 
auch für 62,5 kHz?

von Joe F. (easylife)


Lesenswert?

John Drake schrieb:
> Und die 50Hz-Filterung macht man besser per Software. C6 hat vielmehr
> den Sinn, den beim Samplen kurzfristig gezogenen Strom in den ADC-Pin zu
> liefern.

Das ist eben nur die halbe Wahrheit.
Der Filter dient auch dazu, Aliaseffekte oberhalb der Nyquist-Frequenz 
(fs/2) zu reduzieren.

Siehe: https://de.wikipedia.org/wiki/Alias-Effekt

John Drake schrieb:
> Seid ihr beiden euch wirklich sicher, dass das Datenblatt mit "Minimum
> Load" meint, dass dieser Widerstandswert nicht überschritten werden
> darf?

Hm, wirklich guter Einwand. In einem anderen Dokument steht hierzu:
"For an example with typical values of Vtn=1.7, Vtp=1.2, VDD=5 V and 
Vbias=2.6 V (Vt dependent), the maximum source current is about 50 μA. 
Therefore, for correct operation, the recommended minimum load value is 
76 kOhm (3.8 V/50 μA)." 
(http://sensing.honeywell.com/index.php?ci_id=51482).

Davon ausgehend hast du Recht, das ist wohl der kleinste zulässige 
Widerstand...
3.3V/65K ergibt genau diese 50uA...

Das ist natürlich dann wieder ein Problem mit einem Filter, der aus 
einem relativ kleinen Serienwiderstand und einem großen Kondensator 
besteht.
Ich würde sagen, du lässt den Lastwiderstand erstmal weg (machst ein 
unbestücktes Pad hin), setzt darauf, dass die 100K vom Input ausreichen, 
und dimensionierst den Filter eher in Richtung 22K / 1u.

Die 150uA beim initialen Aufladen des Kondensators (ca. 0.1s) wird der 
Sensor schon aushalten können.

von Joe F. (easylife)


Lesenswert?

Tobias schrieb:
> Den Tiefpass(Hardware) lass ich dann ganz wegfallen? Sowohl für 50Hz als
> auch für 62,5 kHz?

Nein. Höre auf deinen Professor, und auch auf mich ;-)
Du wirst erstaunt sein, wie viel stabiler deine Messwerte mit diesem 
Filter sind.

: Bearbeitet durch User
von John D. (Gast)


Lesenswert?

Joe F. schrieb:
>
> Siehe: https://de.wikipedia.org/wiki/Alias-Effekt

Da wird sich der Sensor aber schwer tun, so schnelle Änderungen 
bereitzustellen...

von Joe F. (easylife)


Lesenswert?

John Drake schrieb:
> Da wird sich der Sensor aber schwer tun, so schnelle Änderungen
> bereitzustellen...

Auch dieser Sensor hat einen Rauschanteil.
Ausserdem gibt es andere Störquellen, die den Messwert verfälschen.
Daher ist es fast schon sträflich den Tiefpass (2 Bauteile für je 1 
cent!) wegzulassen.

von Karl H. (kbuchegg)


Lesenswert?

Joe F. schrieb:
> John Drake schrieb:
>> Da wird sich der Sensor aber schwer tun, so schnelle Änderungen
>> bereitzustellen...
>
> Auch dieser Sensor hat einen Rauschanteil.
> Ausserdem gibt es andere Störquellen, die den Messwert verfälschen.
> Daher ist es fast schon sträflich den Tiefpass (2 Bauteile für je 1
> cent!) wegzulassen.

Ich geb dir in der Sache recht.
Aber bei einem Luftfeuchtesensor mit Nyquist zu argumentieren, mutet 
schon ein wenig seltsam an.

von Joe F. (easylife)


Lesenswert?

Karl Heinz schrieb:
> Aber bei einem Luftfeuchtesensor mit Nyquist zu argumentieren, mutet
> schon ein wenig seltsam an.

Nicht für Leute, die sich auskennen.
Das Problem sind doch nicht die Sensorwerte, sondern die Störungen, die 
man gar nicht erst im ADC haben möchte.
Und die hören bei fs/2 nicht auf...

Beispiel: in meinen Schaltungen messe ich üblicherweise ca. 50mV 
Rauschen auf den 3.3V.
Das sind 1.5% der 3.3V (angenommener Messbereich des ADC), oder -36dB.
Also misst der ADC ohne Filter bereits ab Bit 6 das Rauschen.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Ein Tiefpass in Software würde es auch tun, bei den zu erwartenden 
'Signalfrequenzen'

von Joe F. (easylife)


Lesenswert?

Karl Heinz schrieb:
> Ein Tiefpass in Software würde es auch tun, bei den zu erwartenden
> 'Signalfrequenzen'

Nein. Du hast es nicht verstanden.
Nach dem ADC bilden sich die Störfrequenzen als Artefakte in dem 
Frequenzband ab, das du eigentlich auswerten willst.

Also ausgehend von einer Samplefrequenz von 100 Hz stellt sich ein 
Störsignal von 90 Hz als 10 Hz Signal dar, ein 95 Hz Störsignal als 5 
Hz, usw. Das setzt sich nach oben beliebig fort.
Da nützt dir der Software-Tiefpass nichts mehr.
Das kriegst du nur vor dem ADC weg.

von Karl H. (kbuchegg)


Lesenswert?

Joe F. schrieb:
> Karl Heinz schrieb:
>> Ein Tiefpass in Software würde es auch tun, bei den zu erwartenden
>> 'Signalfrequenzen'
>
> Nein. Du hast es nicht verstanden.

Doch ich habe es verstanden.
Du reitest auf einem Problem rum, das keines ist.

EIn Tiefpass in Software und alle 50Hz Artefekte, die möglicherweise von 
einer möglichen Netzfrequenzeinstreuung herrühren könnten, sind weg.

So ein Luftfeuchtesensor ändert doch nicht 10 mal pro Sekunde seinen 
Wert. WEnn der alle 10 Sekunden einmal seinen Wert ändert dann ist es 
viel und dazu muss er schon im Badezimmer stehen und jemand muss die 
Dusche aufdrehen. D.h der Tiefpass kann ruhig grosszügig gemacht sein 
und mehr als ein paar mal pro Sekunde braucht man da auch nicht 
abtasten.

: Bearbeitet durch User
von Joe F. (easylife)


Lesenswert?

50 Hz sind ja leider nicht die einzige Störfrequenz.
Schaltregler, der ADC, der uC, alle erzeugen Störungen in allen 
möglichen Frequenzbändern.
Miss mal alleine die Versorgungsspannung, 50mV Rauschen sind da nicht 
übertrieben.

von Karl H. (kbuchegg)


Lesenswert?

Dann  machen viele Leute, die scheinbar ohne Probleme Temperatur und 
Luftfeuchtesensoren auslesen irgendwas grundsätzlich komplett falsch, 
wenn sie deine Störungen alle nicht in den Daten haben?

Bleib doch mal am Boden.
Wir haben es hier mit Sensoren zu tun, die extrem low frequency 
Änderungen zeigen. Das ist nicht irgendwas high-tech, das mit 10kHz 
abgefragt werden muss.

: Bearbeitet durch User
von Joe F. (easylife)


Lesenswert?

Ja, jeder der einen ADC Eingang ohne korrekt berechneten Tiefpass 
beschaltet macht etwas grundsätzlich falsch.
Ich habe versucht zu erklären warum. Wer es nicht sehen will, braucht 
sich nicht die Mühe machen es zu verstehen.
Dann habe ich schon mehr Aufträge ;-)

Edit:
Karl Heinz schrieb:
> Wir haben es hier mit Sensoren zu tun, die extrem low frequency
> Änderungen zeigen. Das ist nicht irgendwas high-tech, das mit 10kHz
> abgefragt werden muss.

Es spielt keine Rolle, ob du mit 100 Hz abfragst, oder 10 KHz.
Das Problem bleibt das gleiche: Die Störungen bilden sich in tieferen 
Frequenzen ab, und ein Softwarefilter hilft dagegen nicht.

: Bearbeitet durch User
von Tobias (Gast)


Lesenswert?

Joe F. schrieb:
> Ja, jeder der einen ADC Eingang ohne korrekt berechneten Tiefpass
> beschaltet macht etwas grundsätzlich falsch.
> Ich habe versucht zu erklären warum. Wer es nicht sehen will, braucht
> sich nicht die Mühe machen es zu verstehen.
> Dann habe ich schon mehr Aufträge ;-)
>
> Edit:
> Karl Heinz schrieb:
>> Wir haben es hier mit Sensoren zu tun, die extrem low frequency
>> Änderungen zeigen. Das ist nicht irgendwas high-tech, das mit 10kHz
>> abgefragt werden muss.
>
> Es spielt keine Rolle, ob du mit 100 Hz abfragst, oder 10 KHz.
> Das Problem bleibt das gleiche: Die Störungen bilden sich in tieferen
> Frequenzen ab, und ein Softwarefilter hilft dagegen nicht.

Danke an euch beide.

Ich werde denk ich die Hardware-Lösung nutzen. Habe mit analogen 
Tiefpässen bis jetzt gute Erfahrungen gemacht.
Eine Frage hätte ich allerdings noch.
Wenn ich mich jetzt doch dazu entscheiden sollte, nur 10mal pro Sekunde 
den Sensor abzufragen müsste ich meinen Filter ändern oder?

Ich habe momentan noch nicht richtig verstanden, warum ich diese 
Frequenz betrachten muss und nicht die wirklich Samplingfrequenz.

von Joe F. (easylife)


Lesenswert?

Deine wirkliche Samplingfrequenz ist genau die Frequenz, mit der du die 
Werte vom ADC abholst.

Den Tiefpass bei 10 Hz Samplingfrequenz auf eine Grenzfrequenz von 5 Hz 
(oder weniger) zu dimensionieren ist auf jeden Fall zu empfehlen.
Der 22K/1uF (fc 7Hz) unterdrückt dir 50Hz mit ca. -17dB

Wenn du mit 10 Hz sampelst, reicht dir evtl. auch fc = 2.8Hz
-> 56K/1uF
Dann liegt die Dämpfung von 50Hz schon bei ca. -25dB.

Das gleiche gilt natürlich für alle höheren Frequenzen. Die werden auch 
entsprechend besser (-8dB) unterdrückt.

: Bearbeitet durch User
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.