µC Versorungsspannung ausgeben mit Brown out

OP #2026449
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
Persönliche Seite #2026468
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.
#2026470
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.
OP #2026542
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
#2026557
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.
Gast #2026642
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren