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
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.
@ 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.
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.