Ist ein bisschen länger geworden, hoffe es schreckt Euch nicht gleich
ab.
Salu zusammen
Ich habe hier ein bisschen ein komisches Problem. Meine Schaltung ist
„zu gut“ g Vielleicht höre ich die Flöhe husten, aber so ganz kann ich
die Sache einfach nicht glauben und ihr noch weniger vertrauen. Gleich
vorweg, ich kann das SCM nicht posten, aber ich habe den wichtigen Teil
denke ich unten gut beschrieben.
Zur Umgebung:
Die Schaltung ist genau 1x vorhanden, habe also kein Vergleichsobjekt an
welchem ich Messungen anstellen könnte. Ebenso sind Messgeräte
vorhanden, aber ob die in dieser Grössenordnung noch genau genug sind,
naaaaaja :o) Und da ich schon genug lang diesen Beruf ausübe bin ich
beim Messen auch schon so einige Male auf die Schnauze gefallen.
Hardware:
Es handelt sich um zwei Drucksensoren (Freescale MPXH6115 und MPX6400)
MPXH6115 Umgebungsdrucksensor / MPX6400 4Bar Absolut Drucksensor. Da das
Ausgangssignal ratiometrisch ist, habe ich die Speisung der Sensoren
über eine +5V Präzisionsquelle von Maxim realisiert. Da ich in der
Schaltung am Eingang zwingend einen Schaltregler verbauen muss, ist
diese Spannung (7.5V) die Eingangsspannung der Präzisionsquelle. Sicher
nicht optimal, aber es ging nicht anders mit vertretbarem Aufwand.
Natürlich habe ich alle Quellen, wie so üblich in Messsystemen,
überdimensional abgeblockt. Heisst, es hängen da schon so einige C’s rum
:o))
Das PCB ist gefräst, 2 Lagen. Ich habe sehr lange als Layouter
gearbeitet. Denke das PCB ist mir gut gelungen, aber wie so oft bei
Fräslayouts ist es halt nicht immer 100% optimal. Nur schon ein
Messsystem auf 2 Lagen zu bauen ist meines Erachtens fragwürdig, vor
allem wenn es Einzelstücke sind und es jetzt nicht auf jeden Cent
ankommt.
Der Ausgang der Drucksensoren hängt an 4 OPs (1. OP Impedanzwandler, 2,3
OP TP-Filter 4. Ordnung (Butterworth / Sallen Key), 4. OP
Impedanzwandler) Als OPAMP fungiert ein AD8630, 4fach, Single Supply,
Rail to Rail Zero Offset ) und gehen danach in einen ADC von Analog
Device (AD7685 Approx, 16Bit no missing code).
Die Filter haben eine Bandbreite von 1kHz (gemessen) daran kann das
folgende Problem also auch nicht liegen ;o)
Ausgelesen wird der ADC über eine pseudo SPI Schnittstelle mittels eines
uP. Was ich weiss, die uP Seite sollte nicht das Problem sein (SPI-Bus
Einstellungen) da diese Routinen seit geraumer Zeit im Einsatz wunderbar
funktionieren, aber ausschliessen will ich auch das nicht.
Nun zum Problem:
Es ist egal wie schnell ich den ADC „rennen“ lasse, ob ich 1x pro
Sekunde Sample, oder 10000x. Die Messwerte beider Sensoren stehen bis
aufs letzte Bit still! Kann machen was ich will, das Teil steht still.
Habe mir hierzu ein Array gebaut in welchem ich die Messwerte ablege.
Die Messwerte stimmen sehr genau. Laut unserem Meteorologischen Dienst
hatte ich 98.16hPa Umgebungsdruck und der eine Sensor zeigte 98.6hPa und
der andere 99.0…. an.
So, hab ich mir gedacht, 16Bit stillstehen?? Auf einer gefrästen
Platte?? :o)))) Mit dem Oszi sieht die Sache zwar gut aus, aber da ich
nur ein Digital Oszi habe ist da halt immer ein gewisses rauschen
vorhanden. Da kann ich echt nicht sagen ob ich nun was Falsches messe,
oder ob ich wirklich dieses Rauschen habe. Dies müsste der ADC auf alle
Fälle registrieren (grösser 1LSB)
Hmmmm, also mal in das Teil reingepustet… In meinem Array sehe ich dann
wie sich die Messwerte ändern. Dabei habe ich auch aufeinander folgende
Messwerte. Scheint also kein LSB Problem vorzuliegen. Dachte zuerst das
z.B. das letzte Bit immer verschluckt wird oder so. Was ich sagen muss,
bei den ADC’s handelt es sich um Samples von Analog Device. Der Rest der
Bauelemente wurde über Distis besorgt.
Tja, jeder andere würde sich wohl freuen, aber ich arbeite genug lange
auf diesem Beruf um bei solchen Sachen nicht in Euphorie auszubrechen,
sondern eher mal einen Schritt zurück zu treten und mir zu überlegen, ob
dies nun wirklich sein kann.
Wie würdet Ihr bei der weiteren Fehlersuche vorgehen? Was habe ich nicht
beachtet? Andere Drücke anlegen, welche referenzierbar sind, wird sehr
schwierig, da fehlen mir echt die Messmittel.
Über Tipps würde ich mich freuen
Grüessli
Layouter
Dein Text ist echt zu lang, und viel unnötiges bla bla.
Wenn deine letzten Bit nicht rauschen, dann vieleicht weil deine max.
Spannung an den ADCs ereicht ist .
Check doch erst mal deine ADCs.
Nemm ein Poti oder einen Spannungsteiler 50/50 und häng den von dern
Uref nach gnd und den Mittelanschluss auf deinen ADC Eingang
Wenn ich richtig rechne ist dein höchster ADC Wert Dez. 65536 bei 16
Bit.
Du mußt also in etwa Dez. 32768 messen.
Wirklich 16 stabile Bits mit einem Drucksensor zu bekommen ist schon
ungewöhnlich - zumindest wenn der Bereich einigermaßen voll ausgenutzt
wird. Wenn man relativ viel Geld ( so > 1000 EUR für den Sensor)
ausgiebt, kriegt man schon auch sehr gute Sensoren wo die 16 Bit und
ggf. sogar etwas mehr möglich sind - unmöglich ist das also nicht.
Ein wenigstens grober Test für den Skalenfaktor wäre schon angebracht.
Da muss nicht super Genau sein, sondern mehr als Test, dass man nicht um
einen Faktor 2 oder gar 10 daneben liegt.
Kontinuierliche Werte beim AD heißt noch nicht, dass mit irgendwie ein
paar der unteren Bits verloren gegangen sind. Das sieht man eher am
Skalenfaktor.
Salu
Da liegt das Problem nicht, ich weiss schon wie man einen ADC bedient
;o) Ebenso habe ich natürlich den Output der Sensoren gemessen, nach
jeder OP Stufe ect. Habe alles auch mit dem Datenblatt verglichen und
das stimmt.
Gruss
Merkwürdig.
Denke, dass da eher zuviel Aufwand getrieben wurde.
Also, dass durch die 4 OPs leicht zusätzliche Drift
dazukommen kann.
Überschlagsbetrachtung:
MPX 6115: 46 mV / kPa = 4,6 mV / hPa (früher mBar)
16 Bit bei 5 V entspricht 0,076 mV pro LSB.
Auflösung ca. 1/60 hPa.
Da sollte man IMMER was sehen, schon wenn die Tür
geöffnet/geschlossen wird...
Bei 98 statt bekömmlicheren 980 hPa Umgebungsdruck
könnte man allerdings schon etwas Probleme haben,
Messwerte abzulesen. ;-)
(Wohl ein Fehler in der Dezimalstelle?)
Ok, der Tipp mit dem Skalenfaktor muss ich mir überlegen und testen.
Vielen Dank für den Tipp! Was ein bisschen dagegen spricht ist, wenn ich
das jetzt richtig interpretiere, dass ich zwar zwei Drucksensoren habe,
aber die natürlich eine ganz andere Skaleneinteilung haben. Sprich der
eine hat bei Umgebungsdruck ca. 1V, der andere 4V (nagelt mich auf die
Werte nicht fest). Das würde ja dann eigentlich dagegen sprechen, oder?
Grüessli
Wenn deine letzten Bit nicht rauschen, dann vieleicht weil deine max.
Spannung an den ADCs ereicht ist .
Check doch erst mal deine ADCs.
Nemm ein Poti oder einen Spannungsteiler 50/50 und häng den von dern
Uref nach gnd und den Mittelanschluss auf deinen ADC Eingang
Wenn ich richtig rechne ist dein höchster ADC Wert Dez. 65536 bei 16
Bit.
Du mußt also in etwa Dez. 32768 messen.
@Mr Kaktus
Ich habe Deinen Beitrag schon gelesen, aber daran kanns nicht liegen.
Am 1. ADC liegen, gemessen mit Oszi ca. 4V an und der AD Wert welchen
ich auslese stimmt mit dem überein.
Am 2. ADC liegen, gemessen mit Oszi ca. 1V an und der AD Wert welchen
ich auslese stimmt mit dem überein.
Alles bezogen auf +5V Ref von einer Präzisionsquelle.
Gruss
Ok, das hört sich soweit gut an. Was ich noch nicht verstanden habe, was
ist das für ein ADC? ein µC ein ATmel.
Was ist wenn du einen 1k Widerstand nimmst und denn ADC Eingang nach
Masse belastest? DAnn muss sich doch was ändern?
@ Layouter (Gast)
>Am 1. ADC liegen, gemessen mit Oszi ca. 4V an und der AD Wert welchen>ich auslese stimmt mit dem überein.
Und zuckt der Wert, wenn man auf den Sensor klopft? Vielleicht fehlt
einfach das Sample/Update Signal am ADC und der haut nur einen einmalig
richtig gemessenen Wert immer wieder raus ;-)
MfG
Falk
@ Falk
Yep, der zuckt schon :o)) Das ist es ja. Beide Sensoren zucken. Am Abend
war laut Meteo auch eine kleine Luftdruckänderung, haben beide wunderbar
gezeigt. Ich weiss eigentlich dass es nicht sein kann und trotzdem seh
ichs vor mir :o) Tja, werd den Fehler schon noch finden.
Grüessli
Udo Schmitt schrieb:> Vieleicht liest du 2mal das high-byte aus?
LOL, geil...jetzt wird aber auch alles versucht, um das Ergebnis zu
widerlegen.
Aber stimmt schon - ich baue auch Elektronik für Drucksensoren und da
einen 100% stabilen Wert (ohne Mittelung o.ä.) zu bekommen ist nahezu
unmöglich.
Franz schrieb:> LOL, geil...jetzt wird aber auch alles versucht, um das Ergebnis zu> widerlegen.
Hatte ich schon gesehen, copy und paste und vergessen den Registername
zu ändern. Und dann wundern daß sich die Werte nur etwas sprunghaft
ändern und ansonsten superstabil stehen.
So, Problem gelöst...
Hätte ich jetzt nicht gedacht, aber ich hab nun die Samples von Analog
durch solche vom Distributor ersetzt. Und siehe da: Die letzten Bits
zappeln nun auch. Programm ect. alles gleich, hab nur die beiden IC
getauscht.
Jetzt bin ich in 2 Jahren schon 2x mit Samples auf die Schnauze
gefallen... Jenu, verbuche jetzt das mal als Lehrgeld.
Grüessli
Layouter