Forum: Mikrocontroller und Digitale Elektronik Fragen zu ADC


von Marcel W. (marcelw)


Lesenswert?

Hallo,

bin gerade an meiner Bachelorarbeit (Maschinenbau) mit der Entwicklung 
eines Datenloggers beschäftigt

Ich möchte Werte von einem Sensor digitalisieren um diese zu speichern. 
Der Mikrocontroller ist soweit fertig inkl. Speicher und LCD. Es geht 
jetzt noch um die Sensorauswahl und Anbindung.

Die meißten Sensoren geben 4...20 mA oder 0...5 V aus.

Mein 12 Bit ADC hat folgende Werte:

AVCC = 2.2...3.6 V
V(Ax)(Analog input voltage range) = 0 ... AVCC

Das bedeutet das dies so nicht möglich ist, daher benötige ich einen 
Spannungsteiler um die Spannungen anzupassen oder?

Diesen kann ich mit der Formel aus dem Tutorial auslegen (28 Ω und 140 
Ω). Können so auch präzise Messungen (Fehler < ca. 0,1%) realisiert 
werden oder muss dort Aufwendiger gearbeitet werden? Ergibt sich jetzt 
nicht einen Strom von 29 mA? Also auch viel zu hoch für meinen ADC 
(siehe unten).

Dieses Gedankenexperiment war jetzt auf die Ausgabe der Spannung 
bezogen, was mache ich bei der Stromstärke?

IADC12_A (Operating supply current into AVCC terminal):
Bei VCC = 2.2 V ,IADC12_A = 125...155 μA
Bei VCC = 3.6 V ,IADC12_A = 150...220 μA

Sprich meine Stromstärke vom Sensor ist viel zu hoch. Auch verstehe ich 
hier nicht den Zusammenhang zwischen Strom und Spannung. Zwar steht in 
meinen Datenblatt das:

RI (Input MUX ON resistance):
min = 10 Ω
typ = 200 Ω
max = 1900 Ω

Aber was fange ich mit den einzelnen Werten an? Wann liegt welcher Wert 
vor? Sind das μC interne Werte die mich jetzt eig. noch garnicht 
interessieren?

Ja und zu guter Letzt noch eine allgemeine Frage zur Gültigkeit meiner 
AD Wandlung. Ich möchte mit, wie bereits erwähnt, 0,1 % FS messen. Bei 
einem Messbereich von 0...100 bar also auf 0,1 bar (1/1000) genau. Mit 
einem 12 bit ADC können 4096 "Zahlen" dargestellt werden, sprich meine 
Genauigkeit kann theoretisch erreicht werden da mein LSB etwa 0,025 bar 
bzw. 25 mbar entspricht oder?

Ich weiß das ich mich vielleicht ein bisschen lächerlich mache aber ich 
glaube das ich vor lauter Bäumen den Wald nicht mehr sehe (C++ für PC 
Software, C für μController und jetzt noch Elektrotechnik), also 
versucht gnädig zu sein.

Bin für alles (Links, Tutorials, Beispiele und natürlich Kritik) offen!

von Karl H. (kbuchegg)


Lesenswert?

Marcel W. schrieb:

> Die meißten Sensoren geben 4...20 mA oder 0...5 V aus.
>
> Mein 12 Bit ADC hat folgende Werte:
>
> AVCC = 2.2...3.6 V
> V(Ax)(Analog input voltage range) = 0 ... AVCC
>
> Das bedeutet das dies so nicht möglich ist, daher benötige ich einen
> Spannungsteiler um die Spannungen anzupassen oder?

Ja

> Diesen kann ich mit der Formel aus dem Tutorial auslegen (28 Ω und 140
> Ω).

Bischen klein die Widerstandswerte

> Können so auch präzise Messungen (Fehler < ca. 0,1%) realisiert
> werden

Natürlich. Alles nur eine Frage wie genau die Widerstände sind. Und dann 
kann man ja auch noch die realen Widerstände ausmessen und einen 
Korrekturfaktor rechnerisch anbringen. *)

> oder muss dort Aufwendiger gearbeitet werden? Ergibt sich jetzt
> nicht einen Strom von 29 mA?

Könnte bei den Widerstandswerten hinkommen.

> Also auch viel zu hoch für meinen ADC
> (siehe unten).

Nö. Der ADC zieht soviel Strom wie er braucht. Die Frage ist: sind die 
29mA zuviel für die Sensoren. Denn die müssen den Strom ja liefern.

Edit:
*) Oder gleich den kompletten Spannungsteiler im Betrieb ausmessen bzw. 
kalibrieren. zb 3V aus einem Labornetzteil anlegen, nachsehen was der 
ADC misst und daraus einen Korrekturwert berechnen.

von Karl H. (kbuchegg)


Lesenswert?

Teil 2

> IADC12_A (Operating supply current into AVCC terminal):
> Bei VCC = 2.2 V ,IADC12_A = 125...155 μA
> Bei VCC = 3.6 V ,IADC12_A = 150...220 μA
>
> Sprich meine Stromstärke vom Sensor ist viel zu hoch.

Nein.
Strom wird gezogen, nicht gedrückt!
In den ADC rinnen ~150µA hinein. Soviel wie der sich eben holt.

Die 29mA laufen durch die Widerstände letztendes nach Masse ab (die 
150µA können wir getrost vernachlässigen)!

             29mA
   Sensor  -----------+
                      |
                     R1
                      |  150µA
                      +-----> ADC
                      |
                     R2
                      | 29mA - 150µA
                      |
          Masse    ---+--


> Ich weiß das ich mich vielleicht ein bisschen lächerlich mache
Nun ja. Ohmsches Gesetzt ist "Grundlagen Elektrotechnik", erstes 
Semester

von Dietrich L. (dietrichl)


Lesenswert?

Karl Heinz Buchegger schrieb:
>> IADC12_A (Operating supply current into AVCC terminal):
>> Bei VCC = 2.2 V ,IADC12_A = 125...155 μA
>> Bei VCC = 3.6 V ,IADC12_A = 150...220 μA

> 29mA
>    Sensor  -----------+
>                       |
>                      R1
>                       |  150µA
>                       +-----> ADC
>                       |
>                      R2
>                       | 29mA - 150µA
>                       |
>                    ---+--

Ich glaube, das ist ein Missverständnis:
AVCC ist vermutlich die Versorgungssannung des ADCs, nicht der Strom in 
den Messeingang.

Dann war da noch das, was mich verwirrt:

Marcel W. schrieb:
> RI (Input MUX ON resistance):
> min = 10 Ω
> typ = 200 Ω
> max = 1900 Ω

Wo ist denn da ein MUX? Vielleicht sagst Du mal, um welchen ADC es geht 
und hast auch eine Schaltung oder wenigstens einen Entwurf. Dann kann 
man viel besser reden...

Gruß Dietrich

von Karl H. (kbuchegg)


Lesenswert?

Dietrich L. schrieb:
> Karl Heinz Buchegger schrieb:
>>> IADC12_A (Operating supply current into AVCC terminal):
>>> Bei VCC = 2.2 V ,IADC12_A = 125...155 μA
>>> Bei VCC = 3.6 V ,IADC12_A = 150...220 μA
>
>> 29mA
>>    Sensor  -----------+
>>                       |
>>                      R1
>>                       |  150µA
>>                       +-----> ADC
>>                       |
>>                      R2
>>                       | 29mA - 150µA
>>                       |
>>                    ---+--
>
> Ich glaube, das ist ein Missverständnis:
> AVCC ist vermutlich die Versorgungssannung des ADCs, nicht der Strom in
> den Messeingang.

Ich denke du hast recht.
"Operating supply current" ist der Strom, den er ADC zur Versorgung 
braucht.
Also in der Zeichnung die 150µA durch x ersetzen, wobei x zur Zeit noch 
nicht bekannt ist.

>
> Dann war da noch das, was mich verwirrt:
>
> Marcel W. schrieb:
>> RI (Input MUX ON resistance):
>> min = 10 Ω
>> typ = 200 Ω
>> max = 1900 Ω

Das verwirrt mich ehrlich gesagt auch. Für den Messeingang eines ADC 
sind diese Werte arg niedrig.

von holger (Gast)


Lesenswert?

>>
>> Dann war da noch das, was mich verwirrt:
>>
>> Marcel W. schrieb:
>>> RI (Input MUX ON resistance):
>>> min = 10 Ω
>>> typ = 200 Ω
>>> max = 1900 Ω

>Das verwirrt mich ehrlich gesagt auch. Für den Messeingang eines ADC
>sind diese Werte arg niedrig.

Das wird wohl der Widerstand des Muxes selbst sein
und nicht der Eingangswiderstand. Der liegt dann in Reihe
zum Sample and Hold Teil.

von Marcel W. (marcelw)


Angehängte Dateien:

Lesenswert?

Hallo!

erstmal vielen Dank für die vielen Antworten! Der ADC ist in meinen μC
integriert (MSP430F5529), ich hänge mal das Datenblatt in den Anhang die
relevanten Werte finden sich auf S.69 der PDF.

Gut wenn ich jetzt alles richtig Verstanden habe:

R2=R1*UADC/(USensor-UADC)

Mit größeren Widerständen d.h R1=700Ω und mit USensor=5V bzw. UADC=3,6V
--> R2=1800Ω

Nun zieht mein ADC 150...220 μA aufgrund der 3,6V. Mein Gesamtstrom
beträgt nun USensor/(R1+R2) d.h. I= ca. 2mA.

So nun wäre es ja geschickt meinen ADC mit der gleichen Spannung wie
mein Gesamtsystem zu betreiben welche 3,3V beträgt und über das hier:

http://www.ti.com/product/tlv1117

zur Verfügung zu stellen.

Daher mit den neuen Werten: R1=850Ω R2=1650Ω I=2mA. Widerstände mit
geringer Toleranz wählen und ich bin auf einem guten Weg.

Als Referenzspannung kann ich nun die interne benutzen jedoch laut S.71
gilt diese nur für VCC=3,0V. Muss ich nun doch zwei Stromversorgungen
machen oder kann ich hier erneut mit einem Spannungsteiler (R1=100Ω &
R2=1000Ω I=3mA) arbeiten oder leidet dadurch die Genauigkeit zu stark?

Nochmals danke für die Antworten!

von Karl H. (kbuchegg)


Lesenswert?

> So nun wäre es ja geschickt meinen ADC mit der gleichen Spannung
> wie mein Gesamtsystem zu betreiben welche 3,3V beträgt und über das hier:

Das tust du sowieso. Der ADC ist in den µC integriert, wird daher mit 
derselben Versorgungsspannung betrieben.

Was du machen willst: Du willst dieselbe Referenzspannung benutzen!

Referenzspannug  !=  Versorgungsspannung des ADC

> Als Referenzspannung kann ich nun die interne benutzen jedoch laut
> S.71 gilt diese nur für VCC=3,0V.

Diese Tabelle sagt dir nur, dass bei einer Versorungsspannung von 3.0V 
sich die intern generierte Referemnzspannung im in der Tabelle 
angegebenen Bereich bewegen wird. Es wäre reichlich sinnlos einen µC zu 
fertigen, der in einem Spannungsbereich betrieben werden kann, und zur 
Benutzung der Referenzspannung des ADC muss man dann erst recht wieder 
auf eine bestimmte Versorungsspannung gehen. Dazu hat man ja eine 
generierte Referenzspannung, damit man von der Versorgungsspannung 
unabhängig wird.

Der µC erlaubt es dir ziemlich sicher, die Versorgungsspannung als 
Referenzspannung zu benutzen. Alles andere wäre ziemlich unsinnig.
Und wenn er dir das nicht als Softwareoption anbietet, dann kann man 
immer noch die Versorgungsspannung als externe Referenzspannung 
einspeisen.


Edit:
PS: Du baust das ganze doch hoffentlich vorab mal auf einem 
Experimentiersystem, zb Steckbrett auf? Im Moment scheinst du mir ganz 
schön zu schwimmen und heftig überfordert.

von Marcel W. (marcelw)


Lesenswert?

Vielen Dank das hat dann erstmal einige Unklarheiten ausgeräumt!

Ja Labornetzteil und Mulitmeter stehen auf meinem Schreibtisch 
Steckplatine und Widerstände kommen noch!

Nochmals Danke für die Erklärungen!

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.