PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATXMega interner OP vs. TS912D



Che Guevara
25.03.2014, 17:24
Hi,

da ich nun zu dem Entschluss gekommen bin, der LPS331AP sei unbrauchbar für meine Anwendung, möchte / muss ich nun wieder zurück zu Drucksensoren von FreeScale. Ich möchte den MPXH6115A6U nutzen, dieser gibt einen Wert von 45.9mV / kPa aus. Da ich eine Auflösung von 1cm / Digit haben möchte, brauche ich einen Operationsverstärker. Glücklicherweise nutze ich einen ATXMega, welcher pro ADC-Channel einen Verstärker (Gain von 0.5x bis 64x) zur Verfügung stellt.
Diese Option wäre optimal für mich, da ich auf der LP nicht mehr allzuviel Platz habe. Außerdem könnte ich dann den DAC des XMega als zweite Spannungsreferenz nutzen. Da aber der MPX mit 5V arbeitet und die max. AREF des XMega bei VCC/1.6 = 2.0625V liegt, dachte ich mir, ich könnte doch einen Spannungsteiler verwenden (Verhältnis 2.424242), um das Signal des MPX auf max. 2.0625V zu bringen. Den Gain des XMega würde ich dann auf 32 (1.444032Digit/cm) bzw. 64 (2.888064Digit/cm) stellen.
Außerdem brauche ich noch einen HW-Tiefpass, weiß allerdings nicht, wie ich dessen Werte berechnen muss, weil ja der Spannungsteiler da wohl auch mit reinspielt.
Jetzt also meine eigentliche Frage:
Meint ihr, der interne Differenzverstärker des XMega ist genaugenug für diese Aufgabe (also im Vergleich zum TS912D)?
Wie kann ich die Werte des Tiefpass berechnen und welche Größenordnung sollten die Widerstände des Spannungsteilers haben?

Vielen Dank & Gruß
Chris

EDIT:
Hab gerade im mikrokontroller.net gelesen, dass sich die Tiefpass-Frequenz so berechnet:
Tiefpass ohne Spannungsteiler: f = 1 / (2Pi * R * C)
Tiefpass mit Spannungsteiler: f = 1 / (2Pi * ((R1*R2)/(R1+R2)) * C)
Ist das soweit korrekt?

Außerdem stellt sich mir gerade noch die Frage, ob der Ausgangsstrom des MPX für den ADC des XMega reicht? Ich glaube, dieser braucht 0.5mA, um korrekt messen zu können.

EDIT2:
Achja, reicht eigentlich eine Drossel + ein paar C's (100nF, 10µF) aus, um die Versorgungsspannung (Lipo -> LM317) des MPX ausreichend zu glätten?

Besserwessi
26.03.2014, 17:16
Zum Glätten der Versorgungsspannung reicht auch schon ein Spannungsregler (wohl Sparsamer als LM317 und low drop (wenn es nur 2 Zellen Lipo Sind). Die Drossel und 10-100µF ggf. zwischen Akku und dem Spannungsregler. Der Weg mit Spannungsteiler und dann wieder Verstärken ist nicht so ideal - da bekommt man ggf. zusätzliches Rauschen. Ob das Wirklich stört müsste man sehen, aber ggf. bräuchte man dann eine guten Verstärker.
So wirklich aussagekräftig ist das Datenblatt nicht, aber vermutlich ist das Signal ratiometrisch , d.h. die ADC ref sollte von der Versrogung des Sensor abgeleitet sein. Es sind keine Daten zum Rauschen da - was eher ein Zeichen dafür ist, das der Sensor hinsichtlich Rauschen nicht so toll ist.
Damit wäre der Interne Verstärker zwar ggf. passend, weil der Sensor schon von sich aus stark rauscht. Wie viel der Verstärker im µC rauscht solle im Datenblatt stehen - damit sollte man erkennen ob die interne Verstärkung ausreicht. In aller Regel wird man mit reduzierter Genauigkeit rechnen müssen.

Che Guevara
27.03.2014, 20:57
Hi,

also ich habs jetzt mal so ausprobiert, die Referenzspannung des ADC (AREF) wird aus einem Spannungsteiler mit den selben Werten generiert.
Grundsätzlich funktionierts NICHT, ich glaube, das liegt an der zu hohen Impedanz. Der Drucksensor gibt bei 4.9V (max. Ausgabewert) max. 0.5mA aus, was einem Widerstand von ca. 10k Ohm entspricht. Danach noch der Spannungsteiler (10k / 6k8 --> ca. 4k) ergibt einen Gesamtwiderstand von 14kOhm, bei max. 0.14mA. Nach dem Spannungsteiler befindet sich außerdem noch ein 600nF Kerko, die bilden zusammen einen ca. 70Hz Tiefpass (oder müsste ich da den internen Widerstand des MPX auch nocht miteinbeziehen, um auf die Grenzfrequenz zu kommen?! Gerade bin ich schon der Meinung.).
Das Problem äußert sich dadurch, dass der ADC-Wert ununterbrochen in eine Richtung wegläuft (bis zum Anschlag, außer ich führe den DAC nach). Außerdem schwankt der Wert sehr stark. IMHO sollte / könnte das doch an der Impedanz liegen?
Ich werde heute auf jedenfall mal noch einen Impedanzwandler (TS912) nachschalten, um zu überprüfen, obs daran liegt. Wenn dem so sein sollte, kann ich gleich auf den internen Differenzverstärker verzichten und alles diskret aufbauen. Man man man ....
Das Signal hab ich übrigens direkt am µC per Oszi gemessen, auch nach einigen Minuten Laufzeit ist dieser Drift nicht zu erkennen, es kann also nur am ADC liegen.

Gruß
Chris

Besserwessi
28.03.2014, 10:38
Der Ausgangswiderstand des Sensor geht etwas in die Grenzfrequenz ein, aber nicht wesentlich. Die Impedanz von rund 4 K ist zusammen mit dem Kondensator ist OK für den ADC. Der Kondensator sollte aber ruhig kleiner (z.B. 47 nF) sein, die letztendliche Filterung geht besser in Software.

Ein Problem ist allerdings den DAC als Offset zu nutzen: auch der der DAC wird Drift und rauschen zeigen, und die misst man vermutlich. Gerade der DAC im AVR nutzt eine S&H Stufe am Ausgang - da kann man nicht viel mehr verlangen als die nominelle Auflösung. Ein DAC für den Offset und ADC für den Rest ist halt kein wirklicher Ersatz für einen hochauflösenden AD Wandler - zumindest müsste man dann einen driftarmen DAC (ein Digitaler Poti ist da ggf. geeignet) nehmen.

Der erster Test wäre auch eher ob Rauschen / Drift des Sensors klein genug sind - das ist nämlich alles andere als sicher. Also erst einmal eine Messung mit externem Verstärker mit Poti / Spannungsteiler als Vergleich. Im Zweifelsfall da auch was besseres als den TS912 als OP (etwa LT1013).

Wie gut oder schlecht das mit der internen Verstärkung / DAC geht, sieht man besser wenn man einfach nur einen festen Spannungsteiler misst.

Che Guevara
28.03.2014, 12:37
Hi,

danke für deine Tipps.
Also ich habs gestern noch kurz ausprobiert, bin allerdings nicht weit gekommen, weil mein fliegender Aufbau wohl zu schwingungsfördernd war. Ich hatte dann in der Versorgungsspannung (sowohl vor, als auch nach dem LM317) einen deutlichen Ripple, alle 150µs.
Der ADC des ATXMega und der OP sollten kein Problem darstellen, ich hatte nämlich die Schaltung vor ca. einem Jahr schonmal aufgebaut und da lief alles perfekt, ich hatte eine Höhenauflösung von ca. 1cm mit 1cm Rauschen. Der Sensor wird u.a. von Mikrokopter, APM und DJI verwendet, er ist momentan der einzige Sensor auf dem Markt (bzw. die gesamte analoge MPX-Reihe), mit dem man solche Aufgabenstellungen bewältigen kann.
Den Kondensator werde ich heute mal versuchen, kleiner zu machen, dann wird auch die Impedanz noch etwas kleiner, da er ja einen Tiefpass bildet.
Werde heute nochmals etwas testen und dann berichten.

Gruß
Chris

EDIT:
Habs gerade erst bemerkt, der Ripple auf Vcc beträgt ca. 1V und kommt nicht vom OP, sondern vom Sensor... Wie kann den das sein? Wie gesagt, alle 150µs eine gedämpfte Sinusschwingung, ca. 20µs lang.
Direkt am Sensor ist natürlich ein 100nF Kerko, der LM317 hat auch 2x 100nF und 1x 4.7µF. Ohne angeschlossenen Sensor ist VCC schön glatt.
Wenn ich ihn direkt am LNT betreibe, gibts da auch keinen Ripple, es muss also am Zusammenspiel von Platine und Sensor liegen. Nur wie / wo / warum?

EDIT2:
Hab gerade festgestellt, dass
1. die Frequenz des Ripple von der Eingangsspannung abhängt
2. die Störung weg ist, sobald ich einen weiteren Verbraucher an die 5V anschließe. Stecke ich den Verbraucher wieder ab, ist die Störung immer noch weg, erst wenn ich die ganze Schaltung stromlos mache und anschließend wieder anstecke, ist der Ripple wieder da, bis ich wieder einen weiteren Verbraucher anschließe..

Besserwessi
28.03.2014, 16:59
Der LM317 braucht einen relativ hohen Mindeststrom, damit er stabil regeln kann. Auch die Eingangsspannung sollte für 5 V am Ausgang wohl bei wenigstens 7,5 V besser 8 V liegen. Wenig Strom und dann eine knappe Spannung kann dann ggf. schon relativ nahe ans schwingen kommen. Es sollte in der Regel auch vor dem Regler ein Kondensator sein (etwa 1 µF Keramik). Wenn es sparsamer sein soll und die Spannung knapp ist wäre ein LDO wie etwa ein MCP1702 oder LP2985 wohl passender. Beim LDO auf den Kondensator hinter dem Regler achten.

Der kleinere Kondensator macht die Impedanz etwas großer. Der Vorteil liegt eher darin, das große Kapazitäten als SMD Bauform oft ein ziemlich schlechtes Dielektrikum haben und zu mehr Mikrophonie neigen. Etwas mehr Rauschen (wegen mehr Bandbreite) stört den ADC eher wenig, denn in der Regel wird man sowieso Oversampling und mitteln nutzen - zumindest einige der Xmegas können das sogar schon in Hardware. Eine große Verbesserung bietet der kleinere Kondensator nicht, sondern eher ein Vereinfachung der Schaltung.

Che Guevara
28.03.2014, 18:29
Hi,

also die Schaltung ist eigentlich schon fix, der LM317 wird bleiben, ist aber auch kein Problem, weil der zweite Verbraucher ein Rc-Empfänger ist, der sowieso immer angeschlossen sein muss (außer eben zum Debuggen, aber wenn mans weiß... evtl. mach ich noch eine LED o.ä. dran).
Ich hab das Problem jetzt nochmal genauer unter die Lupe genommen und herausgefunden:
Der Output des DAC fällt innerhalb 1.5s um ca. 75mV ab, eher er dann wieder auf den ursprünglichen Wert hinaufklettert... Erst dachte ich, das liegt an der Refresh-Rate, aber die Zeit ist einfach zu lange.
Ich probiers jetzt mal mit einem RC-Tiefpass am DAC-Output, der sollte das hoffentlich glätten (bei genügend großem C).
Das Rauschen ist ansonsten sehr gering, ich denke, das wird so funktionieren :D

Gruß
Chris