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
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
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
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.
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
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.
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
@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?
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.
@ 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.
@ 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!
@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
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?
@ 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.