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?
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.
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.
Tut mir leid, hätte erwähnen sollen, dass ich Laie bin. Könnte man das evtl noch etwas konkretisieren ?
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
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.
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.
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
Kann man R2 berechnen oder was wähle ich da nun aus, wenn ich noch zusätzlich das Display angeschlossen habe ?
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
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.
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
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.
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
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...
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 ?
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.
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?
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) ;)
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?
Habe jede Sekunde eine Messung gemacht (dazwischen war der Controller im Power Down Modus) Habe aber keinen Unterschied, ob mit oder ohne angeschlossener Batterie
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?
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.