Forum: Mikrocontroller und Digitale Elektronik ADC ohne ARef: Wie Absolutwert messen


von Horst (Gast)


Lesenswert?

Hallo,
ich schaue mir gerade die LPC11Cxx an. Die sind ja noch überschaubar. 
Jedoch lese ich das Manual so, daß die Referenzspannung für den ADC fest 
mit der Versorgungsspannung des Controllers verbunden ist. 
Ratiometrische Widerstandsmessungen sind damit ja kein Problem, aber wie 
kann man damit eine absolute Spannung messen, wenn die Referenz die 
Versorgungsspannung ist? Zum Beispiel, wenn ich die Batteriespannung 
eines Funkmoduls messen will, um diese rechtzeitig zu wechseln?

von Johannes (Gast)


Lesenswert?

Ohne jetzt deinen Akku/Batterie zu kennen. Du betreibst einen uC ja 
nicht direkt an der Batteriespannung sondern da ist ja immer noch ein 
Linear oder Schaltregler dazwischen. Somit ist deine Versorgungsspannung 
zu mindestens innerhalb der Betriebsparameter deines Spannungsreglers, 
unabhängig von der Batterie.

Was natürlich auch geht, aber sowohl Schaltungs- als auch Rechenaufwand 
mit sich bringt, eine externe Spannungsreferenz (LM4040 oder sowas) auf 
einen ADC Eingang klemmen. Von dem kennst du dann die Spannung und 
kannst anhand vom Wertverhältnis auf den Absolutwert schließen.
Es ist aber zu beachten ob man zwei ADC Kanäle nutzt und das Sampeln 
parallel anstoßen kann, oder ob man mehrere Pins auf einem Kanal hat und 
die dann zwangsweise seriell gesampelt werten. Was dann natürlich 
Schwingungen, starkes Rauschen,... auf der Versorgung nicht zwangsläufig 
raushält aus der Messung.

von Hanns-Jürgen M. (yogy)


Lesenswert?

Ich kann mir nicht vorstelen, daß ein AD-Wandler die Versorgunsgspannung 
als referenzspannung nutzt. Vlt. wird intern eine Referenzspannung 
erzeugt. Ich kennen den Baustein nicht. Zum problem der Messung der 
Eigenversorgung:

Aus VCC mittels einer Referenzdiode einen fixe Spannung kleiner VCC 
erzeugen und diese messen.  Dann steigt logischerweise der Messwert (in 
Digits) mit falener Versorgungsspannung.

Andere Spannungen ließen sich mit Hilfe einer externen gemessenenen 
Referenzspannung auch errechnen..

von W.S. (Gast)


Lesenswert?

Hanns-Jürgen M. schrieb:
> Ich kann mir nicht vorstelen, daß ein AD-Wandler die Versorgunsgspannung
> als referenzspannung nutzt.

Tja, mangelhafte Vorstellungskraft.

Diese µC sind solche mit geriner Pinanzahl, so etwa 44 oder 48 Pins. Da 
werden eben Pins gespart, was in solchem Falle nicht schädlich ist. 
Diese µC benutzen lt. Datenblatt tatsächlich Vcc als ADC-Referenz. Wer 
eine stabile Referenz braucht, muß eben einen ordentlichen 
Spannungsregler vor den µC setzen. Dann ist die Vcc auch gut genug für 
10 Bit Auflösung.

W.S.

von Rudolph R. (rudolph)


Lesenswert?

W.S. schrieb:
> Diese µC sind solche mit geriner Pinanzahl, so etwa 44 oder 48 Pins

Was für ein Argument ist das denn?
Die Tiny45 zum Beispiel haben auch nur 8 Pins und dennoch kann man da 
ohne ARef Pin VCC, 1,1V oder 2,56V Referenz auswählen weil der eben auch 
interne Referenz-Spannungsquellen hat.

Ich finde auch, dass ein µC ohne die Möglichkeit einer externen Referenz 
und ohne interne Referenz etwas eingeschränkt klingt.

von Bernd K. (prof7bit)


Lesenswert?

Hanns-Jürgen M. schrieb:
> Ich kann mir nicht vorstelen, daß ein AD-Wandler die Versorgunsgspannung
> als referenzspannung nutzt. Vlt. wird intern

Nein. Das ist nicht unüblich. Die kleinen von Freescale machen das 
genauso.

Und warum auch nicht? Wenn VRef- = GND und VRef+ = Vcc dann kann man 
wunderbar alles mögliche zwischen 0...3,3V messen, gar nicht mal so 
unpraktisch.

Was wegfällt ist halt der separate Eingang für die Referenzspannungen, 
intern kann man (WIMRE) aber immer noch auf interne Referenz umschalten.

: Bearbeitet durch User
von Oldie (Gast)


Lesenswert?

Was soll das Geschwafel mit WIMRE (gibt es bei LPC11Cx2/Cx4 nicht)
und WUNDERBARER Messung von 0...3,3 V, wenn man so ein Ding mit
Batterie / Akku von 3.6 V bis runter zu 1,8 V betreibt.
Da ist eine Vor-Regelung von Vcc auch Humbug: Kostet mAh!!!

Die Antwort heißt:
Entweder - stabile (abgeglichene) Betriebsspannung,
oder     - nur ratiometrische Messung möglich.

Klimmzüge mit einem ADC-Eingang für eine Ref-Spannung haben
nur SEHR beschränkten Wert, weil die im o.a. Fall unter 1,8 V
sein muss, was u.a. MINDESTENS 1 Bit Auflösung kostet.

Fazit:
Die LPC11Cxx haben ihre Qualitäten, aber NICHT beim ADC.

von Bernd K. (prof7bit)


Lesenswert?

Oldie schrieb:
> Was soll das Geschwafel

Warum regst Du Dich so auf? Hast Du 10000 Stück gekauft ohne vorher ins 
Datenblatt zu schauen?

von Oldie (Gast)


Lesenswert?

Bernd K. (prof7bit) schrieb:

> Warum regst Du Dich so auf?

Ich habe keinen Grund mich aufzuregen, weil ich nur AVR mache. :-)
Habe doch nur zusammengefasst, dass hier hauptsächlich geschwafelt
wurde, statt dem TO mit klaren Aussagen zu seinem µC zu helfen.

Lagst nun mal daneben - da meckert man nicht auf andere, sondern
macht es nächstes Mal besser.  :-)

von Stm M. (stmfresser)


Lesenswert?


von Johannes (Gast)


Lesenswert?

So langsam wird es ja unerträglich hier!
Ist es denn wirklich zu viel verlangt zu einem Link, dem man dem Rest 
der Mitleser unbedingt vor die Füße werfen will, wenigsten EINEN Satz 
dazu zu schreiben, damit wenigstens der ein oder andere den 
Gedankengängen folgen kann?!

Zum Thema:
Es wurden Vorschläge gemacht wie man eine Absolutwertmessung ohne 
Referenz über Hilfsmittel realisieren kann, es wurde gesagt dass das 
Problem hier wohl eher Konzeptionell ist und leicht hätte Umgangen 
werden können...

Vielleicht sollte man jetzt auf den Autor warten um sein Problem genauer 
zu spezifizieren.

von Gerd E. (robberknight)


Lesenswert?

Oft haben die kleinen Mikrocontroller keinen extra Vref-Eingang sondern 
verwenden Vcc um Pins zu sparen.

Damit man dennoch absolute Messwerte bekommen kann, ist intern eine 
Referenzspannung von typischerweise ca. 1,2V vorhanden. Mit dem Mux des 
ADC kann man die jetzt gegen Vcc messen und damit rückrechnen welche 
Spannung Vcc momentan genau hat. Dann kann man den ADC-Mux wieder auf 
die normalen Pins legen und dort gegen das jetzt bekannte Vcc messen.

Leider scheint der LPC11Cxx diese Technik nicht zu verwenden und keine 
interne Vref anzubieten. Schau daher mal vielleicht bei ST, der 
STM32F072 könnte evtl. als Alternative passen und der hat eine solche 
interne Referenz.

von temp (Gast)


Lesenswert?

Den LPC11C2x gegen einen anderen Controller zu tauschen wird nicht so 
leicht sein. Welcher kleine M0 hat CAN und den Transceiver an Bord?

Die Referenzen in den übichen Controllern sind nur von der Auflösung her 
geignet den 10 oder 12bit gerecht zu werden. Die absolute Genauigkeit 
ist meistens so grottig, dass ein Abgleich nötig ist. Da ist es oft 
besser eine externe Referenz mit der nötigen Genauigkeit zu verwenden 
und sich das Kalibrieren zu sparen.

von Jim M. (turboj)


Lesenswert?

Oldie schrieb:
> Was soll das Geschwafel mit WIMRE (gibt es bei LPC11Cx2/Cx4 nicht)
> und WUNDERBARER Messung von 0...3,3 V, wenn man so ein Ding mit
> Batterie / Akku von 3.6 V bis runter zu 1,8 V betreibt.
> Da ist eine Vor-Regelung von Vcc auch Humbug: Kostet mAh!!!

Aber doch nur wenn man die Leistung in einem LDO verbrennt. Wenn man 
einen Schaltregler auf z.B. 2,0 Volt einsetzt dann hält der Akku viel 
länger, weil bei höherer Spannung deutlich weniger Strom fliesst.

von Werner (Gast)


Lesenswert?

Horst schrieb:
> LPC11Cxx

Unter "LPC11Cxx" ist bei NXP leider kein Datenblatt zu finden, in das 
man gucken könnte. Meinst du die LPC11Cx2/Cx4? Vielleicht hast du einen 
Link zu dem/den Baustein, auf den sich deine Frage bezieht.

von Wolfgang (Gast)


Lesenswert?

Jim Meba schrieb:
> Wenn man einen Schaltregler auf z.B. 2,0 Volt einsetzt dann hält der
> Akku viel länger, weil bei höherer Spannung deutlich weniger Strom
> fliesst.

Du vergißt, dass auch ein Schaltregler Leistung verbrennt. Solche mit 
100% Wirkungsgrad oder mehr wurden leider noch nicht erfunden. Ob unterm 
Strich ein "viel länger" herauskommt, muss man im Einzelfall prüfen.

Horst schrieb:
> ..., aber wie kann man damit eine absolute Spannung messen, wenn die
> Referenz die Versorgungsspannung ist?

Indem du in deiner Schaltung eine Referenzspannungsquelle einbaust und 
deren Wert mißt. Der Rest ist simpler Dreisatz.

von Bernd K. (prof7bit)


Lesenswert?

temp schrieb:
> Den LPC11C2x gegen einen anderen Controller zu tauschen wird nicht so
> leicht sein. Welcher kleine M0 hat CAN und den Transceiver an Bord?

Aber ein Gerät mit CAN-Bus-Anbindung wird doch typischerweise nicht mit 
ungeregelter Batteriespannung betrieben, da kann man doch eine sauber 
geregelte Versorgungsspannung zur Verfügung stellen.

von Horst (Gast)


Lesenswert?

Donnerwetter, ist ja richtig was los ...

Es handelt sich um die LPC11C12/14/22/24. Die /22 und /24 haben den 
CAN-Transceiver schon an Bord.

Ich will per CAN ein Hausnetzwerk aufbauen, kann aber nicht überall 
verkabeln und damit auch mit Strom versorgen. Also müssen einige Knoten 
eben per Funk (nRF24L01+) angebunden werden und müssen daher auch per 
Batterie versorgt werden. Und da will ich halt einmal am Tag messen, wie 
gut es den Batterien denn noch geht. Also muß ich wohl eine externe 
Referenz an einen ADC-Pin legen, da ich innerhalb des Projektes nur mit 
einem Controllertyp arbeiten will.

Danke für die Infos!

von Wolfgang (Gast)


Lesenswert?

Horst schrieb:
> Also muß ich wohl eine externe Referenz an einen ADC-Pin legen, ...

Mit einem weiteren Pin könntest du die Referenz auch noch schaltbar 
machen, damit sie nicht dauern an der Batterie nuckelt ;-)

von Georg (Gast)


Lesenswert?

Horst schrieb:
> Also muß ich wohl eine externe
> Referenz an einen ADC-Pin legen

Ja, aber du musst die Batteriespannung ja nicht auf 18 bit genau messen 
- für den Zweck würde auch eine Zenerdiode reichen.

Georg

von m.n. (Gast)


Lesenswert?

Wenn Vcc von einem Linearregler kommt, nehme ich diese als Referenz. 
Besser als 1% ist es auf jeden Fall und reicht in der Regel voll aus.

Wenn es genauer werden soll, ist meist sowieso ein externer ADC 
notwendig.

von Horst (Gast)


Lesenswert?

Georg schrieb:
> Ja, aber du musst die Batteriespannung ja nicht auf 18 bit genau messen
> - für den Zweck würde auch eine Zenerdiode reichen.

War natürlich auch mein erster Gedanke, aber eine Zenerdiode muß man 
m.W. mit einem anständigen Strom betreiben, damit die Zenerspannung 
stimmt. Und bei Batteriebetrieb ist das eher kontraproduktiv, wenn die 
Spannungsmessung selbst irre Strom verbraucht.

m.n. schrieb:
> Wenn Vcc von einem Linearregler kommt, nehme ich diese als Referenz.
> Besser als 1% ist es auf jeden Fall und reicht in der Regel voll aus.

Ich betreibe ja direkt aus einer Batterie (bzw. will dies tun).

von m.n. (Gast)


Lesenswert?

Horst schrieb:
> Ich betreibe ja direkt aus einer Batterie (bzw. will dies tun).

Das war mir so nicht klar.
Dann kannst Du die Spannung einer ext. Referenz messen, aus der Du die 
Batterie-/Versorgungsspannung ableiten kannst.
Einfach und günstig: LM336-2,5 mit 20ppm.

von Bernd K. (prof7bit)


Lesenswert?

Horst schrieb:
> War natürlich auch mein erster Gedanke, aber eine Zenerdiode muß man
> m.W. mit einem anständigen Strom betreiben,

Es ist ja nicht so daß die Zenerdiode bei kleineren Strömen plötzlich 
komplett aufhört zu funktionieren, sie wird nur etwas nach unten 
abweichen in der Spannung, je nachdem wie rund das Knie in der Kennlinie 
ist. Du könntest also mit dem Strom so weit runtergehen wie möglich und 
dann wenn Du noch einen Portpin übrig hast die ganze 
Zenerdiodenschaltung nur dann kurz mit Spannung versorgen wenn Du eine 
neue Messung machen willst, es reicht ja wenn Du die Batterie nur alle 
paar Minuten misst.

von W.S. (Gast)


Lesenswert?

Ob nun Zenerdiode oder einfach ne rote LED, wenn man die Diode per 
Vorwiderstand und Portpin nur ganz kurzzeitig anschaltet, dann schluckt 
das Konstrukt über die Zeit gemittelt auch keinen nennenswerten Strom.

W.S.

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.