Forum: Mikrocontroller und Digitale Elektronik Superschnelle Analogmessung im millivolt bereich


von Zurigo (Gast)


Lesenswert?

Ich bin Anfänger und habe mir das eZ430-F2013 Development Tool in a USB 
Stick geholt. Die Anwendung, die ich umsetzen wollte funktionniert 
bereits problemlos. Ich verwende den 16 bis Sigma Delta für die Messung 
eines Sensorsignals von ca. +/- 2 millivolt. Es werden ca. 400 Messungen 
pro Sekunde durchgeführt, was für die Anwendung ideal ist. (Bis zu 4000 
samples wären wohl möglich nach meinen Experimenten...)

Ich habe 1.2 Volt Referenzspannung, Verwende A1+ und A1- und den PGA mit 
8 facher verstärkung.

Mein Problem liegt darin, dass ich eine Knopfzelle verwenden muss. Der 
gewählte Sensor IC benötigt aber 3 mA strom! Was nützt mir ein super 
stromsparender Microcontroller, wenn mir der Sensor innert 10 Stunden 
die ganze Batterie leer säuft? Genau - nämlich gar nichts. Und das ist 
mein Problem.

Ich habe mir nun überlegt, den Sensor über einen der noch freien I/O 
Pins *einfach ein und auszuschalten um Strom zu sparen. Da der AD 
wandler bis zu 4000 samples bringt, würde ich damit ca. 1/10 des 
Stromverbrauchs haben. (weil ich von den 4000 ja nur 400 samples 
wirklich brauche und den rest der Zeit ausschalten könnte...)
Das ein und ausschalten des Sensors ist übrigens kein problem. 
Funktionniert bis ca. 2 MHZ ohne weiteres, habe ich in einer separaten 
schaltung mit Rechteckgenerator und Oszi ausgemessen.


Nun zu meiner Idee / Frage:
Ich möchte mir eine sample and hold schaltung ohne äussere Bauteile 
(abgesehen vom Kondensator) aufbauen. (Weil der 2013'er ja keine sample 
and hold schaltung zu haben scheint...)
Meine idee wäre nun, den CASHORT des Comparators zu nutzen, um den 
Kondensator am separaten Pin zu laden. Danach soll der Sensor abgestellt 
und mit dem nun eingeschalteten Sigma Delta konverter die Spannung am 
Kondensator gemessen werden. So kann sich der langsame Sigma Delta viel 
zeit lassen und ich kann den Sensor trotzdem nur für einige 
microsekunden einschalten, was sehr viel Strom spart. (ziel wäre ca. 3 
microampere durchschnisstverbrauch für den Sensor. Also ein Tausendstel 
vom Verbrauch bei dauernder einschaltung)


--------------
Offene Fragen:
--------------
* Hat jemand von euch sowas schon mal gemacht?
* Kann mir jemand sagen, ob sowas überhaupt möglich ist?
* Kann ich den CASHORT verwenden, obwohl ich den comparator
  gar nicht brauche?
* Ist diese Idee überhaupt realistisch und umsetzbar mit dem 
MSP430F2013?


Ich kann fast nicht glauben, dass ich kein Beispiel für eine einfache 
sample and hold beschaltung für den 2013er gefunden habe. Ein so 
präziser und eher langsamer AD wandler müsste doch korrekterweise immer 
mit einer sample and hold schaltung verwendet werden. Oder irre ich mich 
da? Ist dazu wirklich ein externer IC notwendig? Die idee oben wäre doch 
sehr viel einfacher. Oder?

Für eure Antworten bin ich sehr dankbar.

Grüsse aus der Schweiz

von pumpkin (Gast)


Lesenswert?

hallo,

ein wirklich langer thread. dass du echter anfänger bist möchte man kaum 
glauben, du machst dir imho schon die richtigen gedanken.

zu diesem developer-kit kann ich nix sagen, vllt kann ich trotzdem 
helfen:
also deine selbstbau-s&h-schaltung ist imho erstmal mit vorsicht zu 
genießen; damit bekommst du keine genauere messung hin - was aber auch 
garnicht dein anliegen ist wenn ich das recht verstanden habe. du willst 
einfach nur die messung vornehmen können auch wenn dein sensor schon aus 
ist, habe ich das richtig verstanden? oder willst du generell ein s&h 
haben? wie sieht dein signal aus was du da misst (frequenz, rauschen, 
...)?

pumpkin

von Joerg W. (joergwolfram)


Lesenswert?

Ich denke, du brauchst keine S&H. Einfach mit einem Timer alle 2,5ms den 
Sensor einschalten, ggf. kurz warten, messen und wenn das Messergebnis 
da ist, den Sensor wieder ausschalten.

Jörg

von Fly (Gast)


Lesenswert?

Wie lange braucht eine A/D Wandlung genau?
Was ist die höchste Frequenz die du misst?
Wenn du dir diese beiden Werte gegenüberstellst, kannst du abschätzen ob 
du ein S&h brauchst. Rechne doch  mal das delta u bei max. Frequenz und 
Wandlungszeit... Wenn das innerhalb deiner Messgenauigkeit liegt, 
brauchst du keins.

von Peter D. (peda)


Lesenswert?

Der Trick an Sigma Delta ist ja gerade, daß keine S/H verwendet wird.
Nur dadurch kann überhaupt die hohe Auflösung erreicht werden, weil 
Störungen und Rauschen wegintegriert werden.

400Hz ist für Sigma Delta ja schon verdammt flott, da sind wohl nicht 
mehr die vollen 16Bit verläßlich.


Peter

von Zurigo (Gast)


Lesenswert?

Wow super. Danke für die schnellen und guten Antworten.
Also ich versuche das gleich mal zu beantworten:

@pumkin
Nein, es geht mir nicht darum, die Genauigkeit des A/D wandlers zu 
verbessern. Die Messung funktionniert schon sehr gut und mit recht wenig 
Rauschen. Ich kann dir aber nicht genau sagen, ob ich wirklich 16 bit 
genauigkeit habe. Auf jeden Fall habe ich mehr als 11 bit, da meine 
Anwendung sonst gar nicht zuverlässig funktionnieren würde.
Du hast das völlig richtig verstanden. Ich möchte nicht die genauigkeit 
verbessern (die darf von mir aus sogar 1 bis 2 bit schlechter werden als 
sie das jetzt ist...)
Was ich möchte ist, den Sensor so kurz wie möglich anschalten zu müssen, 
weil mich dieser Sensor sehr viel Energie kostet. (Batterielaufzeit)

Das Signal das ich erhalte ist ein Distanzsignal das (wenn man die 
Messzeit von momentan ca. 1/400 tel Sekunde bedenkt) über eine Messung 
relativ konstant ist.
Das ursprüngliche Sinal ist Analog und hat keine modulierte Frequenz, da 
es von einer Wiederstandsbrücke kommt.

Ich hoffe das hat deine Fragen beantwortet?



@Joerg Wolfram
Das habe ich mir auch schon überlegt. Aber wenn der Sigma Delta doch 
keine Sample and Hold Schaltung hat, dann dürfte ich den Sensor doch 
erst wieder abschalten, wenn die Wandlung fertig ist. Da so eine Messung 
mindestens etwa eine Tausendstelsekunde dauert und ich 400 Messungen pro 
Sekunde machen muss, würde ich dann ja nur etwa 6/10 der Zeit wirklich 
stromsparen. Das reicht auf keinen Fall für eine Sinnvolle 
Batterielaufzeit. Ich würde so auf etwa 24 Stunden kommen und müsste 
jeden Tag die Batterie wechseln.
Aber vielleicht habe ich das Prinzip des Sigma Delta auch nicht richtig 
verstanden? Wäre es denn möglich früher abzuschalten? Ich habe mir das 
Prinzip mit der s&h nur überlegt um wesentlich früher abschalten zu 
können (bzw. den Sensor kürzer einschalten zu müssen)


@Fly (Gast)
Die höchste Frequenz die ich messe ist ca bei 200 Hz. (schätzung)
Jedenfalls habe ich herausgetüftelt das die Anwendug bei 400 Messungen 
zuverlässig läuft. Bei 200 Messungen pro Sekunde geht das leider nicht 
mehr, weil ich wichtige "peaks" verpasse.
Was die Dauer der Sigma Delta Messung angeht so tippe ich auf ca. eine 
Tausendstelsekunde. Ich konnte es auch schon auf 4000 Messungen bringen, 
indem ich an der Genauigkeit herumgeschraubt habe. Aber mehr ist auch 
nach langem probieren und optimieren einfach nicht drin mit diesem Sigma 
Delta. Ob die Genauigkeit bei 4000 Messungen noch ausreicht weiss ich 
aber nicht. Der Versuch war eine Endlosschlaufe, die nach jeder Messung 
gleich wieder eine Messung startete. Ohne Auswertung. Ich gehe also zur 
Sicherheit lieber von einer Messdauer von einer Tausendstelsekunde aus. 
Wie kann ich nun aus diesen beiden Zahlen bestimmen ob ich s&h brauche? 
Das ist mir nicht ganz klar.


@ Peter Dannegger (peda)
Vielleicht kannst du mir mit dem Verständnis des Sigma Delta weiter 
helfen.  Wenn ich keine s&h verwende. Wie kann es denn sein, dass der 
gewandelte Wert genau der Spannung entsprechen soll, die am Anfang der 
Wandlung angelegen hat? Die Spannung kann sich doch während der Messung 
ändern. (Zum Beispiel wenn ich den Sensor abschalte.) Der Sensor 
speichert seine Ausgangsspannung leider nicht, da es sich um einen 
variablen Wiederstand handelt. Bis 2MHZ ein und ausschalten habe ich den 
Sensor ausgemessen. Und ich muss daher leider davon ausgehen, dass die 
spannung des Sensors sofort auf null absackt, sobald man seine 
Stromversorgung kappt. Glücklicherweise ist die Spannung aber auch 
sofort wieder da, sobald der Sensor mit Strom versorgt wird. Einem sehr 
schnellen ein und ausschalten (bis 2 MHZ) steht also aus Sensorsicht 
nichts im Weg.

von Joerg W. (joergwolfram)


Lesenswert?

Wenn eine Messung 1/1000 Sekunde dauert, kommst du dann aber auf keine 
4000 Messungen je Sekunde. Wie Peter schon geschrieben hat, macht dir 
ein S&H den Vorteil von Sigma-Delta, nämlich das Eingangssignal zu 
integrieren wieder zunichte.

Jörg

von Zurigo (Gast)


Lesenswert?

@Joerg Wolfram (joergwolfram)
Das stimmt schon. Auf die 4000 Messungen komme ich auch nur mit 
reduzierter Genauigkeit. 1000 Messungen wären es mit voller Genauigkeit.

Habe ich das mit dem wegintegrieren jetzt richtig verstanden:
Mit einer s&h ist die Zeit kürzer, in welcher der Sensor eingeschaltet 
ist. Damit ist es auch nicht mehr möglich, das gemessene Signal über 
längere Zeit zu "mitteln"?

Also damit könnte ich ganz gut leben, da ich die Genauigkeit des s&h ja 
nicht ausreize. Die Genauigkeit dürfte ruhig etwas sinken. Wichtig wäre 
mir halt nur, dass ich auf eine Sensorlaufzeit von ca. 1/400'000 Sekunde 
pro Messung  komme.

Gibt es denn ausser einer s&h noch andere Möglichkeiten, die 
Sensorlaufzeit so extrem zu verringern und trotzdem mit dem Sigma Delta 
einigermassen exakt zu messen? Wäre es denn möglich, den Sensor schon 
auszuschalten bevor der Sigma Delta fertig ist mit wandeln?

von jens (Gast)


Lesenswert?

Der Sigma Delta ADC braucht das Eingangssignal über die gesamte 
Wandlungszeit.
Wenn dir 12 Bit reichen kannst du aber auch einen MSP mit 12-Bit 
SAR-Wandler nehmen. Mit dem kommst auf eine Abtastzeit von kleiner 1µs.

von Kupfer Michi (Gast)



Lesenswert?


von Zurigo (Gast)


Lesenswert?

@ jens (Gast) Danke für diese Antwort, das hat mir sehr geholfen. Ich 
war mir da wirklich nicht ganz sicher, hatte das aber auch vermutet. Was 
den 12 bit AD angeht, so gibt es diesen leider erst ab 64 pins (oder 48, 
bin nicht mehr ganz sicher). Verwenden tu ich aber nur 10 Pins des 
MSP430. Das wäre also völliger overkill. Mit dem 10 bit AD habe ich aber 
schon experimentiert. (Den gibt es auch für die kleineren MSP430'er) Der 
hat übrigens auch eine s&h. Mit der internen Referenz von 1.5 Volt 
klappt das leider nicht. Die Spannungen des Sensors sind wohl einfach zu 
klein. (Differenzspannung) Bin da aber noch am experimentieren.
Ich habe mich aber gefragt, was mit einer externen Referenzspannung 
wäre.
Ist es möglich eine viel kleinere externe Referenzspannung zu generieren 
und trotzdem noch 10 bit Auflösung zu haben? Oder was ist der Grund 
dafür, dass die internen Referenzen immer über 1 Volt liegen? 
Funktionniert der 10 Bit AD Wandler mit sehr kleinen Referenzspannungen 
nicht mer so genau?
(z.b. könnte man die Referenzspannung doch mit einer Wiederstandsbrücke 
generieren, die einen sehr hohen eigenwiederstand hat damit sie nicht 
viel strom brauch)

@ Kupfer Michi (Gast)
Danke! Das sieht sehr gut aus! Ich werd mir das auf jeden Fall zu gemüte 
führen. Jetzt habe ich doch noch eine chance den Sigma Delta zu 
verstehen.

von jens (Gast)


Lesenswert?

@ Zurigo der 10 bit ADC arbeitet leider erst ab 1.4V Referenzspannung. 
Du brauchst also noch einen kleinen externen Verstärker. Wenn dein 
Sensor eine Brückenschaltung aus vier 100 Ohm Widerständen ist reicht 
ein OP (z.B. LT6220 im SOT23-5) und einen Gegenkopplungswiderstand von 
4.7kOhm. Der OP wird zusammen mit dem Sensor und ADC für 1µs bis 2µs 
eingeschaltet. Als Vref+ und Vref- unbedingt die Brückenspannung 
verwenden!

von Pflorz (Gast)


Lesenswert?

@Zurigo,
Natuerlich kann man die Referenz nicht verkleiners und dadurch kleinere 
Schritte bekommen. die Limite schein 1.4V zu sein, macht etwa 1.4mV pro 
Schritt. Um die zu kriegen, musst Du gut sein. Das falsche Layout bringt 
mehr Rauschen als diese 1.4mV. Ebenso sollten die verstaerketen 10mV 
nicht verrauscht sein.

P

von Zurigo (Gast)


Lesenswert?

Danke. Das tönt wirklich gut. Leider habe ich noch keine Erfahrung mit 
externen op amps. (Nur mit dem internen PGA, der aber vergleichsweise 
einfach zu verwenden war)
Aber wenn ich das richtig verstanden habe, wird das wohl keine Hexerei 
sein.

Die Wiederstandsbrücke besteht wohl nicht aus 4 * 100 Ohm. Im Datenblatt 
steht, dass der Brückenwiederstand 1,4 bis 2,2 kOhm sei. Das erklährt 
zwar nicht ganz die ca. 3 mA stromverbrauch, die ich bei 3,3 Volt 
gemessen habe, aber das Datenblatt wird sicher exakter sein als meine 
hobbymässige Messung des Stomverbrauches.

Also Sens+ an Vref+
Sens- an Vref-
GND an Vs-
Vcc an Vs+
Den Gegenkopplungswiederstand zwischen Vout und Vref-

Habe ich die Beschaltung so richtig verstanden?
Werde morgen gleich mal sehn ob ich so einen op amp kurzfristig 
auftreiben kann. Sonst müsste ich den halt bestellen. Aber die dinger 
scheinen ja nicht teuer zu sein.

Wie hast du den Gegenkopplungswiederstand von 4,7 kOhm dimmensioniert?
Ist der höhere Brückenwiederstand ein Problem?
Muss da kein Vorwiederstand zwischen Sensor und Verstärker?

In Wikipedia habe ich auch die Formel für den Differenzverstärker 
gefunden. Nur sind da ganze 4 Wiederstände eingezeichnet. Dass ich die 
beiden Vorwiederstände nicht brauche kann ich nachvollziehen. Die Rolle 
übernimmt dann wohl die Messbrücke. Aber wieso brauche in denn keinen 
Wiederstand zwischen Vref+ und GND?

von jens (Gast)


Angehängte Dateien:

Lesenswert?

@ Zurigo
Die Schaltung hab ich mir so wie im Anhang gedacht. Die Verstärkung ist 
von R1 und den Brückenwiderständen abhängig. In diesem Fall also etwa 
53. Probier am besten aus ob das reicht. Grösser als 200 sollte sie aber 
nicht werden.

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.