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
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
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
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
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
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
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
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.
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.
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.
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.
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?
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.
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
Joe F. schrieb: > > Siehe: https://de.wikipedia.org/wiki/Alias-Effekt Da wird sich der Sensor aber schwer tun, so schnelle Änderungen bereitzustellen...
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.
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.
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
Ein Tiefpass in Software würde es auch tun, bei den zu erwartenden 'Signalfrequenzen'
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.
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
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.
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.