Hallo liebe Freunde!
Ich wende mich mit einem "analog-digital-Problem" an euch.
Es geht um die analoge Sektion vor der AD-Wandlung. Der Sensor ist ein
Drucksensor mit DMS (mehrere davon, daher suche ich möglichst eine
universelle Schaltung).
Die Messzellen haben natürlich alle verschiedene Offset-Werte und auch
verschiedene Spannen. Meist ist der Offset negativ und das
Ausgangssignal geht bei Belastung dann ins positive (gemessen zwischen
den Brückenanschlüssen).
Mal ein paar Daten - die Messzelle wird aus der internen Referenz des
uCs gespeist. Diese besträgt 1,2V (MSP430F2013 mit 16 Bit S/D-Wandler).
Mal ein paar Zahlen:
Eingang: 1,2V Referenz
Vout+ (gegen Masse, unbelastet): 601,98mV
Vout- (gegen Masse, unbelastet): 602,55mV
Vout (Spannung zwischen den Zweigen, unbelastet): -549uV
Die Spannungen der Ausgänge bewegen sich also um den Mittelwert der
Eingangsspannung.
Vout+ (gegen Masse, belastet): 625,7mV
Vout- (gegen Masse, belastet): 614,2mV
Vout (Spannung zwischen den Zweigen, belastet): +11,5mV
Der ADC vom MSP kann an seinen Eingängen maximal eine Eingangsspannung
von 0,6V. Der Wandler arbeitet zwar auch differentiell, könnte also
theoretisch selber die Differenz daraus ermitteln, ABER: Da die Ausgänge
der Zelle sich schon selber über 0,6V befinden, kann der Wandler damit
nicht umgehen.
Ich muss also um und bei 600mV von beiden Eingängen subtrahieren, damit
der ADC die Eingangsspannung überhaupt ab kann.
So, von einem Signal 600mV abziehen ist jetzt nicht das Problem :) Die
Frage ist jetzt eher, was am sinnvollsten ist. Hierbei kommt die
Eigenschaft des ADCs dazu, dass man entweder differentiell messen kann,
oder halt single-ended. Was jetzt besser ist, gilt es für mich grad
herauszufinden.
Bei der differentiellen Messung habe ich einen Eingangsspannungsbereich
von +/- 0,6V für ein Ergebnis von 0x0000 bis 0xFFFF im
Offset-Binary-mode, also 16 Bit für 1,2V Spanne.
Im unipolaren mode kann ich bis +0,6V und bekomme am Ausgang halt 0x0000
bis 0xFFFF für eben diese 0,6V. Die Auflösung ist hier also wesentlich
feiner, aber ein analoges Signal auf einen größeren Bereich verstärkt
ist natürlich etwas unanfälliger für Bitwackeleien...OK, vorausgesetzt
die analoge Stufe ist ordentlich aufgebaut.
So, aber zurück zum Problem: Entweder nehme ich jetzt das bipolare
Signal und bleibe dabei, muss aber von beiden Ausgängen vorher ca. 600mV
abziehen und verstärke dann die Signale auf bis zu 600mV (der maximale
Ausschlag des positiven Ausgangs ist hier dann maßgebend, die volle
Spanne erhalte ich also auch nicht).
Oder ich messe unipolar mittels vorgeschaltetem Instr.-Verstärker und
füge einen Offset hinzu, sodass das ganze nicht ins negative geht.
Achso, ja, auch nicht unwichtig: NUR POSITIVE VERSORGUNG VORHANDEN. Ganz
auf 0V Eingang und Ausgang kann ich da auch nicht gehen.
Mhh, ich hoffe mein Vorhaben ist erstmal so einigermaßen klar geworden.
Jetzt wäre ich um Ratschläge sehr dankbar.
Da der MSP430F20x3 schon einen Instrumentenverstärker enthält, wird man
nicht so blöde sein, einen externen extra zu kaufen und anzuschliessen.
Da der Eingangsspannungsbereich bei 1.2V Versorgung der DMS
überschritten wird, versorgt man eben den DMS mit weniger, Prinzip
Spannungsteiler an Vref bevor ein OpAmp diese Spannung stabil genug
puffert damit sie einen DMS versorgen kann, denn du kannst Vref ja nur
mit 0.5mA belasten und wirst sowieso einen OpAmp einsetzen.
Pfennigfuchser nehmen zur Stromverstärkung von Vref einfach einen NPN
Transistor als Emitterfolger, dessen Ausgangsspannung liegt schon mal
0.7V unter VRef und bringt mindestens 100mA, aber die
Versorgungsspannugn des DMS ist nun temperaturabhängig von der Laune
dieses Transistors. Kein Problem, denn man kann sie single ended mit
einem weiteren A/D-Eingang messen, und in Software dann
korrekturrechnen.
MaWin schrieb:> Da der MSP430F20x3 schon einen Instrumentenverstärker enthält, wird man> nicht so blöde sein, einen externen extra zu kaufen und anzuschliessen.
Hi MaWin,
ich finde im Datenblatt und im User's Guide leider keine Zeichnung zum
genauen Aufbau.
Kennst du dich mit dem F2013 aus? Ich verstehe es zumindest so, dass der
Eingang nicht über die 0,6V sein darf. Oder zieht der MSP intern selber
die Signale voneinander ab, kann sie dann verstärken und digitalisiert
sie danach?
Sprich:
+IN (0,65V) ----
|--- +0,02V ----> GAIN ----> Wandlung
-IN (0,63V) ----
Ich werde ehrlich gesagt aus dem Datenblatt nicht 100% schlau.
> Ich verstehe es zumindest so, dass der> Eingang nicht über die 0,6V sein darf
Richtig (zumindest misst der er darüber nicht mehr richtig)
Aber was hast du an
VCC
|
Vref --|<
|E
+-+-+-- single ended A/D (misst ca. 0.6V bei 1.2V Bereich)
| |
R R
| |
| +--
DMS | | differential PGA sigma delta A/D (ca. 0.3V Signale)
+---(--
| |
R R
| |
GND GND
nicht verstanden ?
MaWin schrieb:> nicht verstanden ?
Ich hab deinen Vorschlag verstanden, ich wollte jetzt grad erstmal nur
gerne die interne Funktion des Wandlers verstehen.
Wenn ich einen differentiellen Wandler habe, dann ist doch eigentlich
das Ergebnis (Vin+ - Vin-) * GAIN.
Angenommen, ich habe halt ein Signal von 1,6V an Vin+ und 1,5V an Vin-,
dann wäre das Differenzsignal ja +0,1V und das könnte ich jetzt noch bis
maximal +600mV verstärken...so kenne ich es von anderen
Differenzwandlern.
Ist es hier beim MSP auch so? Ich habe nämlich gerade im DB noch eine
Angabe gefunden: Absolute Input rRange / Common Mode Input Range Avss -
0,1V...AVcc.
Also sollte das mit dem Signal doch eigentlich gehen bei 3V Avcc, oder
nicht?
So, ich hab jetzt mal ein bisschen herumprobiert. Also ich kann ja schon
noch mehr als die 0,6V anlegen.
Habe ich z.B. 1,1V an IN+ und 0,6V an IN-, dann kommen da auch +0,5V als
Ergebnis raus.
Aber jetzt steht noch im Datenblatt, dass man z.B. bei externer Quelle
nicht bis über 80% der Referenz benutzen soll.
Außerdem steht da, dass für GAIN = 1 eine Eingangsspannung von +/-500mV
vorgesehen ist.
Kennt sich zufällig jemand mit dem F2013 aus?