Forum: Mikrocontroller und Digitale Elektronik VCC messen (vor Step up)


von Mayer K. (mayer_k)


Lesenswert?

Hallo,
ich habe einen ATmega324 (später P Version, aber sind ja kompatibel) und 
will den per 1xAA NiMH-Akku (evtl 2 parallel) betreiben. Zurzeit messe 
ich die VCC indem ich die interne Referenzspannung 1,1V benutze.
Bekomme dadurch auch ausreichend genaue Werte allerdings muss ich jetzt 
einen Stepup-Wandler (3,3V) benutzen. Wie kann ich die Batteriespannung 
vor dem Wandler messen, ohne dass der Controller schaden nimmt, falls er 
nicht eingeschaltet ist?

von Dietrich L. (dietrichl)


Lesenswert?

Mayer K. schrieb:
> Wie kann ich die Batteriespannung
> vor dem Wandler messen, ohne dass der Controller schaden nimmt, falls er
> nicht eingeschaltet ist?

Längswiderstand 4,7k...10k reicht.

von Ingo (Gast)


Lesenswert?

Nein, reicht nicht. Der Strom durch den Längswiderstand darf den uC 
nicht versorgen können. Somit eine Mindedtlast von ein paar mA auf die 
Versorgung nach GND.

von Mayer K. (mayer_k)


Lesenswert?

Tut mir leid, hätte erwähnen sollen, dass ich Laie bin.
Könnte man das evtl noch etwas konkretisieren ?

von Dietrich L. (dietrichl)


Lesenswert?

Mayer K. schrieb:
> Könnte man das evtl noch etwas konkretisieren ?
1
             +---------+            µC:
2
    + ---+---| Step-Up |--+-------> Vcc
3
         |   +----+----+  |
4
         |        |       R2
5
Batterie |        |       |
6
         +--------(-------(---R1--> A/D-Eingang
7
                  |       |
8
    - ------------+-------+-------> GND
9
10
R1: Längswiderstand 4,7k...10k
11
R2: Grundlast z.B. 1k (falls sonst nichts weiteres an Vcc hängt)
Gruß Dietrich

von Mayer K. (mayer_k)


Lesenswert?

Vielen Dank.
An Vcc ist noch ein Display angeschlossen, welches maximal 50mA benötigt 
und ein Drucksensor, der jede Sekunde kurz eine Messung vornimmt.
Stimmen dann die Widerstände auch?
Wird weiterhin die interne Referenz benutzt?
Könnten Sie mir auch erklären, wozu die Widerstände da sind, damit ich 
es auch verstehe und nicht nur nachbaue.

von Christian L. (cyan)


Lesenswert?

Ingo schrieb:
> Nein, reicht nicht.

Und ob. Wir reden hier von einem µC der mindestens 1,8V sehen will und 
bei dem man als kleinste Brown-out Schwelle 1,8V einstellen kann. Wo ist 
also das Problem, wenn dieser über die Dioden 1,2V sieht? Von den 1,2V 
bleiben eh weniger als 0,7V übrig, da an den Dioden bei den niedrigen 
Strömen ein paar 100mV abfallen. Und selbst das ist schon optimistisch. 
Je nach zusätzlicher Beschaltung wird alles ohnehin schon ausreichend 
stark belastet. Ein zusätzlicher Widerstand ist also überflüssig.

von Dietrich L. (dietrichl)


Lesenswert?

Mayer K. schrieb:
> Stimmen dann die Widerstände auch?

R1 ist davon nicht betroffen.
R2 kann eventuell noch angepasst werden, s. unten

> Wird weiterhin die interne Referenz benutzt?

Das hat damit nichts zu tun.

> Könnten Sie mir auch erklären, wozu die Widerstände da sind, damit ich
> es auch verstehe und nicht nur nachbaue.

zu R1 (Längswiderstand):
Die Eingänge des µC haben Dioden nach Vcc. Die sind in Sperrrichtung 
betrieben, wenn die Eingangsspannung < Vcc ist.
Fällt Vcc aus und am Eingang liegt noch Spannung sind die Dioden in 
Durchlassrichtung und der Strom fließt vom Eingang nach Vcc.
R1 dient zur Strombegrenzung, um die Dioden nicht zu zerstören.

zu R2 (Grundlast):
Der Strom über die Eingangsdioden versorgt jetzt den µC. Die 
resultierende Spannung an Vcc hängt von diesem Strom und von der Last ab 
(Verbrauch µC + Peripherie).
Diese Spannung sollte klein genug sein, damit der µC sicher in den 
Reset-Zustand geht und nicht spinnt. Wenn die vorhandene Last nicht 
reicht braucht man die zusätzliche Last R2.

Gruß Dietrich

von Mayer K. (mayer_k)


Lesenswert?

Kann man R2 berechnen oder was wähle ich da nun aus, wenn ich noch 
zusätzlich das Display angeschlossen habe ?

von Olaf (Gast)


Lesenswert?

Ich wuerde ja einfach R1 sehr hochomig machen. Sagen wir mal 100k oder 
1M. Dann fliesst nicht mehr genug Strom um deinen Controller ueber die 
Schutzdioden zu betreiben. Allerdings ist der Strom auch zu gering damit 
dein AD-Wandler gut messen kann. Darum machst du dahinter noch einen 
Kondensator von 100nF oder groesser.
Du kannst dann zwar nur sehr langsame Aenderungen messen und solltest 
auch nicht zu oft messen. Aber fuer den Ladezustand einer Batterie 
sollte ja wohl 0.1 bis 1x pro Sekunde reichen.

Olaf

von Mayer K. (mayer_k)


Lesenswert?

Danke werde es testen, wenn meine Kondensatoren alle da sind

von Oldie (Gast)


Lesenswert?

Ein vollgeladener NiMH-Akku kann auch 1,4 V haben - bei 1 V
sollte man ihn nicht mehr belasten, sondern recht bald aufladen.

Um die 1,0...1,4 V mit der 1,1 Vref (real 1,0...1,2 V) sicher
zu messen, braucht man einen Spannungsteiler, der von 1,4 V
max. 1,0 V zum ADC führt

Vom Akku 150 k zum ADC-Input, von dort 330 k parallel zu 100 nF
nach Masse:
1,4 V -> 0,96 V
1,0 V -> 0,69 V
Der Innenwiderstand des Spannungsteilers ist etwa 100 kOhm.
Damit kann der µC keinen Schaden erleiden.
100 kOhm + 100 nF hat eine Zeitkonstante von 10 ms, also ist die
Spannung nach 100 ms schon viel genauer, (0,005%) als es der ADC
auflösen kann (etwa 0,1%).

Die Ladung des Kondensators 100 nF muss er sich im Sampletakt
mit dem Sample-Kondensator von < 100 pF im µC teilen.

Also sinkt dabei die Spannung um < 1/1000, was man nicht mal
speziell "rauskalibrieren" muss. Die 1,1 V - Referenz bringt einen
viel größeren Fehler von +/-9% und muss sowieso kalibriert werden.
Sonst ist der Akku schnell hinüber, wenn du ihn immer
z.B. bis 0,9 V entlädst.

Diese Batterieüberwachung, könnte 10 mal pro Sekunde sehr genau
messen, das ist aber Unsinn. Alle 1...10 s reicht völlig.

von Mayer K. (mayer_k)


Lesenswert?

Könnte ich für R1 und R2 auch einfach jeweils 150k nehmen?
Dann müsste ich doch bei 1,4V auf 0,7V am Eingang kommen und bei 1,0V 
auf 0.5V am Eingang. Oder wäre das schädlich für den Eingang wenn der 
Controller aus ist? Blicke noch nicht ganz durch, wie ich bestimmen 
kann, ob der Controller schaden nimmt oder nicht, wenn der Strom anliegt 
aber der Controller nicht angeschaltet ist.
Edit: Könnte ich nicht auch mit einem Transistor nur die Verbindung 
herstellen zwischen Batterie und meinem analogem Inputpin, wenn ich 
messen will?

: Bearbeitet durch User
von Sonja (Gast)


Lesenswert?

Du kannst auch je 150k nehmen.  Die Auflösung und die Genauigkeit wird 
halt etwas schlechter.  Ob Dir das dann noch reicht mußt Du entscheiden.

Der Strom, der in einen Pin hineinfließt, wenn man diesen über die 
Versorgungsspannung des ICs zieht, heißt "injected current".  Die 
Information, wieviel injected current ein IC aushält, gehört ins 
Datenblatt (siehe z.B. 
http://documentation.renesas.com/doc/DocumentServer/TPS-LE-IC-F0818-1.pdf). 
Atmel schweigt sich da aber wohl aus.

Also mußt Du entweder injected current vermeiden und Deinen 
Widerstandsteiler schaltbar machen, oder Du gehst ein gewisses Risiko 
und sagst "100uA/1mA/was_Du_willst wird er wohl aushalten".

Wenn Du Dich für die geschaltete Lösung entscheidest, solltest Du einen 
FET nehmen, ein bipolarer Transistor hat zuviel Sättigungsspannung.

von Dietrich L. (dietrichl)


Angehängte Dateien:

Lesenswert?

Sonja schrieb:
> Atmel schweigt sich da aber wohl aus.

Die einzige (?) Quelle ist eine Atmel-Applikation "AVR182: Zero Cross 
Detector" (siehe Anhang). Dort wird auf Seite 4 oben als Maximum 1mA 
genannt.

Gruß Dietrich

von Oldie (Gast)


Lesenswert?

Ich schrieb schon mal:

> Vom Akku 150 k zum ADC-Input, von dort 330 k parallel zu 100 nF
> nach Masse:
> 1,4 V -> 0,96 V
> 1,0 V -> 0,69 V
> Der Innenwiderstand des Spannungsteilers ist etwa 100 kOhm.
> Damit kann der µC keinen Schaden erleiden.

I = 1 V / 100 kOhm = 10 µA  Das ist der Maximalstrom.
Der geht durch die Schutzdiode, an der nochmal 0,5 V
abfallen.
I = 0,5 V / 100 kOhm = 5 µA.
Pmax = 0,5 V * 5 µA = 2,5 µW

Bei 2 x 150 kOhm bist du ungenauer, aber sonst ändert
sich wenig.

Mit 2,5 µW hab ich noch nix kaputt gekriegt...

von Mayer K. (mayer_k)


Lesenswert?

Dankeschön an euch
Mittlerweile wird alles etwas klarer, aber 2 Fragen hätte ich noch:
1) Was wäre ein passender FET? (Bezeichnung oder Werte)
2) Wozu dient der Kondensator zwischen meinem Analogin und Ground ?

von Dietrich L. (dietrichl)


Lesenswert?

Mayer K. schrieb:
> 1) Was wäre ein passender FET? (Bezeichnung oder Werte)

Ich halte die Lösung mit einem Transistor für völlig unnötig, zumindest, 
wenn der Längswiderstand nicht zu niederohmig ist.

> 2) Wozu dient der Kondensator zwischen meinem Analogin und Ground ?

Der A/D-Wandler hat eine Sample&Hold-Schaltung am Eingang:
1) Zu Beginn der Messung wird ein interner Kondensator aufgeladen auf 
die zu messende Eingangsspannung: "Sample"
2) Dann wird der Eingang abgeschaltet (und ist jetzt wieder hochohmig, 
wie er auch vor der Messung war): "Hold"
3) Der A/D-Wandler misst jetzt die Spannung am internen Kondensator 
(Änderungen der Eingangsspannung beeinflussen wegen 2) die Messung 
nicht).

Wenn die zu messende Spannungsquelle hochohmig ist (wegen eines großen 
Längswiderstandes) wird der Kondensator während der Sample-Zeit nicht 
vollständig auf die Eingangsspannung aufgeladen. Dadurch entsteht ein 
Messfehler.
Ein Kondensator am Eingang dient nun als Spannungspuffer, aus dem der 
interne Kondensator ohne nennenswerte Spannungsänderung geladen wird.

Einziger Nachteil: schnelle Spannungsänderungen können nicht erfasst 
werden, da Längswiderstand + Kondensator einen Tiefpass bilden.

Als Wert sind z.B. 10nF nicht schlecht. Nach Atmels Empfehlung ist ein 
Kondensator aber nicht nötig, wenn der Widerstand <= 10kOhm ist.

Gruß Dietrich

PS: Im Datenblatt (ich hoffe auch beim ATmega324) ist das ganz gut 
beschrieben mit Innenschaltung der Analogeingänge des µC.

von Mayer K. (mayer_k)


Lesenswert?

Irgendwie klappt es nicht so richtig
Habe zum testen mein µC über den USBasp mit Strom versorgt
Habe dann den Batteriepluspol über 150k Ohm an den AD Eingang gesetzt 
und ebenfalls 100nF parallel zu 300k Ohm auf Masse gesetzt
Dann setze ich den Batterieminuspol auf die Masse.
Sobald ich die 300k und 100nF auf Masse lege, liest mein Controller dann 
nur noch 75 am Eingang, egal ob die Batterie anliegt oder nicht. Ohne 
diesen Anschluss schwankt der Wert über den kompletten Bereich.
Habe ich einen Fehler gemacht?

von M. K. (sylaina)


Lesenswert?

Mayer K. schrieb:
> Zurzeit messe
> ich die VCC indem ich die interne Referenzspannung 1,1V benutze.

Nur mal so als Tipp: Die darf fei auch schwanken und zwar um gut 10%. 
Wenn du die zum relativ genauen Messen benutzen willst solltest du ihren 
genauen Wert messen (am AREF-Pin des Atmegas liegt immer die 
Referenzspannung an) ;)

von Stefan F. (Gast)


Lesenswert?

Wenn der Widerstand vor dem ADC so groß ist, darf man keine 
kontinuierliche Messung mehr machen, sondern muss "längere" Pausen 
dazwischen einlegen, damit der Kondensator sich wieder aufladen kann.

Hast du das berücksichtigt?

von Mayer K. (mayer_k)


Lesenswert?

Habe jede Sekunde eine Messung gemacht (dazwischen war der Controller im 
Power Down Modus)
Habe aber keinen Unterschied, ob mit oder ohne angeschlossener Batterie

von Mayer K. (mayer_k)


Lesenswert?

Edit: Schließe ich normal VCC an über den Widerstand inkl Kondensator 
etc scheint es zu klappen.
Kann ich keine externe Batterie (die nicht zur Versorgung dient) zum 
testen anschließen oder muss man da was beachten?

von Stefan F. (Gast)


Lesenswert?

> muss man da was beachten?

Der Minuspol der Batterie muss mit GND verbunden sein.

Sicher warst Du nicht so dumm, das falsch zu machen. Andererseits habe 
ich sonst keine klügere Erklärung für dein Problem.

Du könntest die Spannung am ADC Eingang messen, um zu sehen, ob das 
Problem in der Hardware liegt. Aber mit einem sehr hochohmigen 
Multimeter (>=10M Ohm).

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.