Forum: Mikrocontroller und Digitale Elektronik µC Versorungsspannung ausgeben mit Brown out


von Chris K. (chkome01)


Lesenswert?

Hallo Zusammen!

Ich habe ein Board, dass ich mit Batterien versorge. Nun will ich, dass 
bei zu geringer Vbat ein Ereignis aufgeführt wird. Bisher hab ich es mit 
ADC gemacht.

Meine Frage(prinzipiell):

Da der µC ohnehin eine Brown out detection hat, weiß er ja, wie hoch die 
angelegte Spannung ist. Gibt es eine Möglichkeit, diesen Wert im 
Programm zu nutzen, bzw. steht der Wert in irgendeinem Register?

Oder hab ich da etwas grundsätzlich falsch verstanden?
Die BOD ist im Datasheet auf S.44, Internal Voltage Reference auf S.50. 
Gebracht hat mir aber beides leider nix.

Meine Umgebung:

ATmega128l
AVR Studio4.18
GCC

Schaltung ist aufgelegt auf 4.0V
Event bei ca. 3.0 V war geplant.


Besten Dank schonmal!

Grüße Chris

von Karl H. (kbuchegg)


Lesenswert?

Ich denke nicht, dass Brown Out über einen ADC abgewickelt wird.
Das ist einfach nur ein Komperator-Schaltkreis, der die aktuelle 
Spannung mit einer von mehreren fixen Vergleichsspannungen vergleicht.

Quasi ein Op-Amp als Komperator verschaltet.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

@ Chris

Geht IMHO nicht, weil der AVR beim Event (Brownout) unmittelbar in den 
Reset geht und du diese Reaktion nicht abfangen kannst. bzw. erst nach 
Wiederanlaufen die Resetursache auswerten kannst.

Statt des ADCs kannst du auch den internen AC (Analog Comparator) 
verwenden. Oder einen externen AC, der einen generellen Digital- bzw. 
einen Interrupt-Eingang versorgt.

von (prx) A. K. (prx)


Lesenswert?

Chris K. schrieb:

> Ich habe ein Board, dass ich mit Batterien versorge. Nun will ich, dass
> bei zu geringer Vbat ein Ereignis aufgeführt wird. Bisher hab ich es mit
> ADC gemacht.

Mir scheint, der Analog Comparator sei dafür wie geschaffen.

> angelegte Spannung ist. Gibt es eine Möglichkeit, diesen Wert im
> Programm zu nutzen, bzw. steht der Wert in irgendeinem Register?

Da gibt es keinen Wert.

Es gibt Mikrocontroller, bei denen die Möglichkeit besteht, auf wählbare 
Spannungsunter/überschreitung zu per Software reagieren, aber AVRs 
gehören nicht dazu, deren Brownout-Detector lässt sich nicht 
programmgesteuert nutzen.

von Chris K. (chkome01)


Lesenswert?

Vielen Dank für die schnellen und guten Antoworten!


@ Karl heinz Buchegger

Hab mir die Sache etwas anders vorgestellt, aber wenn es ein Komperator 
ist, dann ists mir klar. Wird quasi nicht softwaremäßig >überwacht<, 
sondern wirklich elektronisch >geschalten<. Erklärt auch,dass ich mit 
den Fuses nur zwei fixe Werte nehmen kann.

Meine Vorstellung war, dass ich mit den Fuses ein Register beschreibe 
und dieses mit der digitalisierten Versorungsspannung verglichen wird. 
Jaja.. die naiven Studies :-)

Vielen Dank an alle nochmal!

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Chris K. schrieb:

> ist, dann ists mir klar. Wird quasi nicht softwaremäßig >überwacht<,
> sondern wirklich elektronisch >geschalten<. Erklärt auch,dass ich mit
> den Fuses nur zwei fixe Werte nehmen kann.

Na ja.
Wenn man sich mal überlegt, welche Aufgabe er beim AVR hat, nämlich den 
Prozessor zu resetten, wenn die Spannung für einen gesicherten 
Programmablauf nicht mehr ausreicht, dann ist das auch nicht sehr 
sinnvoll.

Bei anderen Prozessoren ist das anders, aber beim AVR ist das so.

von avion23 (Gast)


Lesenswert?

Mit dem ADC geht das:
Vref auf die Versorgungsspannung stellen.
Channel auf die interne bandgab, also 1,1V oder 2,56V stellen.

Vom ADC Wert aus zurueckrechnen. Wenn du das nicht kannst die Suche hier 
benutzen.

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.