Hallo zusammen, ich habe je einen NXP Drucksensor am ADC eines AVR hängen: 1x Arduino micro (Atmega 32u4, https://www.arduino.cc/en/uploads/Main/arduino-micro-schematic.pdf) 1x ATMEGA 328 (AVCC hart an 5V, AREF an 100nF gegen 0V) Ich stelle eine starke Temperaturabhängigkeit fest. Die Platinen mit den Controllern sind jeweils im Außenbereich in Wetterfesten Gehäusen. Die Drucksensoren habe ich jetzt mal testhalber hübsch warm eingepackt, einigermaßen konstant bei 15°C. Die Werte des ADC folgen sehr schön der aktuellen Außentemperatur (mit DS18B20 gemessen) bei beiden Controllern. Steigt die Außentemperatur um ein °C steigt der ADC um 1-2 bit. Soweit zu meiner Feststellung, und jetzt zur eigentlichen Frage: Ich nutze ja die interne Spannungsreferenz für den ADC. Würde sich das Verhalten verbessern wenn ich eine externe Referenz verwende? Im Wiki (https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC#Externe_Referenzspannung) lese ich das bringt nix, die Begründung bleibt uns (mir) der Author aber Schuldig. Eine Aufklärung wäre nett. Gibt es andere Möglichkeiten diese Temperaturdrift zu kompensieren?
Probier's aus. Alternativ, einen NTC mitlaufen lassen und zur Kompensation verwenden.
Peter schrieb: > Ich nutze ja die interne Spannungsreferenz für den ADC. Du siehst das Ergebnis! Als 1. Verbesserung könntest Du die 5 V Versorgungsspannung als Referenz nehmen, ansonsten mit einer ext. Referenz (LM336-2.5) die Referenzspannung noch verbessern.
Sabberlott W. schrieb: > Probier's aus. Alternativ, einen NTC mitlaufen lassen und zur > Kompensation verwenden. Nicht nötig. Der ATMega328P hat einen eingebauten Temperatursensor. Anhand dessen könntest du kompensieren.
Peter schrieb: > Würde sich das Verhalten verbessern wenn ich eine externe Referenz > verwende? Wenn die Temperaturdrift der externen Referenz niedriger als die der internen ist, wird das Ergebnis besser. Die Temperaturdrift der internen Referenz hast du ja schon ermittelt, die der externen steht in deren Datenblatt. Oder du kompensierst die Temperaturdrift der internen Referenz wie vom Arduino Fanboy vorgeschlagen. Bevor du dir aber viele Gedanken über Temperaturdriften und deren Kompensation machst, solltest du im Datenblatt des Drucksensors nachschauen, ob er ratiometrisch misst. Ist dies der Fall, dann nimmst du einfach die (hoffentlich gut geglättete) Versorgungsspannung des Sensors als Spannungsreferenz.
Vielleicht fertige Einheiten verwenden, wo Du Dir die Msswerte direkt via I2C z.b. abholen kannst? Dann hast Du keine Probleme mit solchen Ungenauigkeitung und Kompensation.
@Peter (Gast) >Ich stelle eine starke Temperaturabhängigkeit fest. Die Platinen mit den >Controllern sind jeweils im Außenbereich in Wetterfesten Gehäusen. Die >Drucksensoren habe ich jetzt mal testhalber hübsch warm eingepackt, >einigermaßen konstant bei 15°C. Das reicht nicht wirklich. Du GLAUBST, daß dein Sensorsignal konstant wäre, wirklich nachweisen kannst du das aber nicht. >Die Werte des ADC folgen sehr schön der aktuellen Außentemperatur (mit >DS18B20 gemessen) bei beiden Controllern. >Steigt die Außentemperatur um ein °C steigt der ADC um 1-2 bit. Glaub ich kaum, das wären 1000-2000ppm/K. SOOO gurkig ist die interne Referenz höchstwahrscheinlich nicht. Selbst so einfache und eher alte Referenzen wie ein LM336 haben typisch 70, max. 230ppm/K. https://www.mikrocontroller.net/articles/Standardbauelemente#Shuntregler.2FSpannungsreferenz >Soweit zu meiner Feststellung, und jetzt zur eigentlichen Frage: >Ich nutze ja die interne Spannungsreferenz für den ADC. Würde sich das >Verhalten verbessern wenn ich eine externe Referenz verwende? Miss erstmal RICHIG nach, wie stark die interne Referenz driftet. Dazu musst du eine WIRKLICH konstante Spannung aus einer guten Referenzquelle einspeisen und diese natürlich auf konstanter Temperatur belassen. Den AVR musst du in den Ofen stecken und erwärmen. Alternativ tut es auch ein Heißluftgebläse. Dann kannst du ansatzweise sagen, was los ist. Am Ende kommt eher raus, daß dein Sensor oder was anderes die Drift verursacht. Ist die Versorgungsspannung stabil und ausreichend hoch? >Im Wiki >(https://www.mikrocontroller.net/articles/AVR-Tutor...) >lese ich das bringt nix, die Begründung bleibt uns (mir) der Author aber >Schuldig. Eine Aufklärung wäre nett. Ziemlich diffuses Geschreibsel. Natürlich kann man eine deutlich bessere, externe Referenz verwenden, die hat dann auch ihre Vorteile. Aber wie gesagt, sooo schlecht ist die interne sicher nicht, auch wenn ich es selber nicht nachgemessen habe und das Datenblatt sich über die thermische Drift ausschweigt.
Schonmal danke für die Hilfreichen Antworten! Es sind MPX5050 als Drucksensoren verbaut. Lt. Datenblatt Ratiometrisch. Ich muss jetzt erstmal lesen was dies genau bedeutet :-) Die Spannungsversorgung besteht derzeit aus einem Recom 7805 Ersatz (Schaltregler) ohne besondere Glättungsmaßnahmen (Datenblattbeschaltung mit 4,7µF am Ausgang glaube ich). Vor dem Recom sind es 24V Batteriegespeist, weshalb ein Normaler Linearregler nicht zum Einsatz kommen kann. Ich werde am Wochenende mal ein bisschen Hirnschmalz in die Spannungsversorgung stecken um diese zu optimieren und als Referenz nehmen. Vielleich per Schaltregler auf ~8V runter und einen LDO 5V Linearregler die 5V bereitstellen. Vielleicht finde ich auch noch Anregungen wie man solche Schaltregler stabilisiert (bzw. dessen Spannung) Alternativ werde ich es versuchen mit den Temperatursensoren zu kompensieren oder eine externe Referenz zu verwenden.
@Peter (Gast) >Es sind MPX5050 als Drucksensoren verbaut. Lt. Datenblatt Ratiometrisch. >Ich muss jetzt erstmal lesen was dies genau bedeutet :-) Daß die Ausgangsspannung direkt proportional zur Versorgungsspannung bzw. einer Referenzspannung ist, die man außen anlegen kann. Nimmt man für den AVR VCC als Referenzspannung und diese ebenfalls als Versorgung/Referenz für den Sensor, so wird die Temperaturdrift dieser Spannung kompensiert. Denn bei sinkender VCC sinkt auch die Ausgangsspannung des Sensors im gleichen Maße (bei konstantem Eingangssignal). >Die Spannungsversorgung besteht derzeit aus einem Recom 7805 Ersatz >(Schaltregler) ohne besondere Glättungsmaßnahmen (Datenblattbeschaltung >mit 4,7µF am Ausgang glaube ich). AUA! Das ist eine Dreckschleuder! >nehmen. Vielleich per Schaltregler auf ~8V runter und einen LDO 5V >Linearregler die 5V bereitstellen. Naja, es reicht meist, einen passenden LC-Filter hinter deinen Schaltregler zu platzieren, um die Störpulse vom Schaltregler ausreichend zu dämpfen. >Vielleicht finde ich auch noch Anregungen wie man solche Schaltregler >stabilisiert (bzw. dessen Spannung) Das sind sie schon ;-) Was du meinst ist die Filterung der Schaltstörungen. >Alternativ werde ich es versuchen mit den Temperatursensoren zu >kompensieren oder eine externe Referenz zu verwenden. Was ganz fix geht. Nimm probehalber einen 7805 + Kühlkörper, dann siehst du recht schnell, ob es an den Schaltstörungen lag.
Peter schrieb: > Es sind MPX5050 als Drucksensoren verbaut. Lt. Datenblatt Ratiometrisch. Fein! Damit ist die interne Referenz aus dem Rennen, und irgendwelche Kompensationen einer Referenz auch. Peter schrieb: > Ich muss jetzt erstmal lesen was dies genau bedeutet :-) Tue das! Das hat offensichtlich Vorrang. Den Rest vergiss erstmal. ------- OK, Versorgung glätten, macht schon Sinn.
Arduino F. schrieb: > Peter schrieb: >> Ich muss jetzt erstmal lesen was dies genau bedeutet :-) > Tue das! > Das hat offensichtlich Vorrang. > > Den Rest vergiss erstmal. Ratiometrisch-> d.h. evt. kannst Dir ir-wo deine Referenzspannung direkt am Modul abgreifen. Schau Dir mal VOut an.
Hi
>Es sind MPX5050 als Drucksensoren verbaut.
Lt. Datenblatt sind das Drucksensoren für Differenz-Drücke von bis zu 50
kPa. Wie misst du da den atmosphärischen Luftdruck?
MfG Spess
Hi
>Vakuumkammer im Chip eingebaut?
Dann müsste das 'Vakuum' aber einen Druck von ca. 80 kPa aufweisen.
MfG Spess
IchMachs schrieb: > Ratiometrisch-> d.h. evt. kannst Dir ir-wo deine Referenzspannung direkt > am Modul abgreifen. Schau Dir mal VOut an. Okay, war wohl ein Scherz. Keiner lacht. Der war doch gut. Zum Glück muss ich mich nicht anmelden, dies verzeiht mir niemand.
"Device is ratiometric within this specified excitation range." Könnte das heissen, das die Messspannung von der Versorgung abhängt?
IchMachs schrieb: > "Device is ratiometric within this specified excitation range." > > Könnte das heissen, das die Messspannung von der Versorgung abhängt? ahrscheinlich, dass Sie nicht davon abhängt, vermute ich.
Nur um Missverständnissen vorzubeugen: ich messe nicht den atmosphärischen Luftdruck, sondern die Differenz zwischen zwei Belüftungskanälen um Blockaden oder Störungen zu erkennen. Bei der Anwendung stören mich die genannten Effekte nicht. Ich hab es nur bemerkt und dann mit einem zweiten System (dem Arduino) reproduziert. Jetzt möchte ich das nur so zum Spaß optimieren, man wird ja nicht dümmer dadurch. Ich habe jetzt erstmal genug Anregungen für die nächsten Abende. Danke euch! Auch dafür das es hier sehr Sachlich geblieben ist.
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.