Forum: Mikrocontroller und Digitale Elektronik Atmel Tiny 13 GCC, Frage zur brown out detection


von Wolfi (Gast)


Lesenswert?

Hallo,
Ich habe ein kleines mikrocontroller Projekt das soweit gut 
funktioniert.
Standardmäßig habe ich die BOD deaktiviert um Standby Strom zu sparen.

Meine Frage ist nun:
Was passiert wenn die Spannung einbricht, ich also den Controller von 
seiner Versorgung trenne?
Bisher verhält er sich genau wie beim reset. Da wenn überhaupt die 
komplette Stromversorgung gekappt wird, also auch die der LEDs kann ja 
auch nichts passieren. Maximal ein winzig kleiner Moment der mich nicht 
stört.



Nachdem die Spannung wieder anliegt fängt der Controller doch wieder neu 
in der mainroutine an bei der sowieso erstmal alles initialisiert wird, 
oder?

Überall wo ich lese steht aber etwas von undefinierten Zuständen die 
entstehen können, wie groß ist diese Gefahr in meinem Fall?

von c-hater (Gast)


Lesenswert?

Wolfi schrieb:

> Was passiert wenn die Spannung einbricht, ich also den Controller von
> seiner Versorgung trenne?
> Bisher verhält er sich genau wie beim reset.

Dann hast du Glück gehabt.

> Nachdem die Spannung wieder anliegt fängt der Controller doch wieder neu
> in der mainroutine an bei der sowieso erstmal alles initialisiert wird,
> oder?

Wenn du Glück hast: ja.

> Überall wo ich lese steht aber etwas von undefinierten Zuständen die
> entstehen können, wie groß ist diese Gefahr in meinem Fall?

Das hängt im Wesentlichen von den Eigenschaften der verwendeten 
Stromversorgung ab. Prinzipiell ist es (wie so oft in der Elektronik) 
ein Kompromiß.

Einerseits erhöhen Siebmaßnahmen in der Versorgung die 
Wahrscheinlichkeit, daß BrownOut-Effekte auftreten, andererseits 
verringern sie aber auch die Wahrscheinlichkeit, daß EMV-Störungen im 
laufenden Betrieb auftreten.

Da es aber bei modernen µC möglich ist, die BrownOut-Funktionalität auch 
nur in den Schlafmodi abzuschalten, spricht eigentlich nichts dagegen, 
das einfach zu tun und so beide Vorteile zu haben, geringen 
Stromverbrauch im Schlafmodus und hohe Toleranz gegen 
Brownout-Effekte.

Leider ist der Tiny13 nicht dazu fähig, das zu tun. Da hilft dann nur, 
einen entsprechend hohen Aufwand beim Design der Stromversorgung zu 
betreiben.

von Wolfi (Gast)


Lesenswert?

Ich schreiben kein EEPROM oder so. Nur einem PWM Ausgang. ADC, Taster 
und LEDs.
Alles wird in der mainroutine initialisiert.

Was mich bisschen verwundert ist das"wenn du Glück Hast ja"
Wo startet der Controller nachdem die anlegen der Versorgungsspannung?

von (prx) A. K. (prx)


Lesenswert?

Wolfi schrieb:
> Standardmäßig habe ich die BOD deaktiviert um Standby Strom zu sparen.
> [...] Da wenn überhaupt die komplette Stromversorgung gekappt wird

Passt das zusammen? Der Stomverbrauch von BOD ist bei Netzteilen 
vernachlässigbar und Batterien/Akkus können in undefinierte 
Zwischenbereiche laufen.

von c-hater (Gast)


Lesenswert?

Wolfi schrieb:

> Was mich bisschen verwundert ist das"wenn du Glück Hast ja"
> Wo startet der Controller nachdem die anlegen der Versorgungsspannung?

Immer mit dem Resetvektor. Aber selbst bei dieser einfachen Aufgabe kann 
er schon scheitern, wenn beim Startup entweder der Takt oder die 
Spannung noch nicht hinreichend stabil (und im Falle der Spannung auch 
hoch genug) sind.

Viel schlimmer ist aber: BrownOut-Effekte können permanente Schäden am 
Flash-Inhalt bewirken. D.h.: es kann danach schlicht Müll im Controller 
stehen. Er ist also von da ab nichtmal mit einem Reset wieder zu einer 
sinnvollen Funktion zu bewegen.

Oder noch schlimmer: nur Teile des Flash sind korrumpiert. Dann startet 
er zwar vielleicht noch normal, macht aber dann Mist, wenn er Funktionen 
anspringt, die im korrumpierten Flash-Bereich liegen.

von Jürgen (Gast)


Lesenswert?

Ich benutze momentan noch USB als Stromversorgung, allerdings ist das 
Gerät gedacht für den Betrieb an einem Akku. Ich habe bisher immer BOD 
aktiviert und nie viel Wert gelegt auf die Sleep modi. Nun bin ich aber 
aus gegebenem Anlass drübergestolpert.

Standby Strom ist 16µA ohne BOD
und 44µA mit BOD auf 1.8V

gemessen mit nem billigen DMM und SSpannungsversorgung 5V vom USBASP, 
nachdem ich den tiny in den Power down versenkt habe...
----
Ich tue mich aber schwer damit das abzuwägen was sinnvoll ist daher die 
Frage nach Rat.

30µA mehr  30  24  30 * 12=259200 ->also 260mAh pro Jahr

von Standartenträger (Gast)


Lesenswert?

Wolfi schrieb:

> Standardmäßig habe ich die BOD deaktiviert

Welcher Standard soll das sein? Und warum ist der mäßig?

von Jürgen (Gast)


Lesenswert?

Die standardfuses sind nunmal FF und 6A....und wenn man nur die lfuse 
ändert um alles was man benötigt zu verwenden ist hfuse immer noch FF 
also BOD deaktiviert....

von innerand i. (innerand)


Lesenswert?

Wolfi schrieb:

> Überall wo ich lese steht aber etwas von undefinierten Zuständen die
> entstehen können, wie groß ist diese Gefahr in meinem Fall?

Wenn die Versorgungsspannung komplett weggenommen wird ist das noch eher 
unkritisch. Da macht er dann halt kurz mal irgendwas bis ihm der Saft 
endgültig ausgeht (kommt dann halt drauf an was man damit macht, ob man 
dieses kurzzeitige irgendwas akzeptieren kann).

Kritischer ist es, wenn die Versorgungsspannung nicht komplett weg fällt 
sondern nur kurz einbricht. Dann macht er auch kurz irgendwas fängt 
danach aber nicht unbedingt wieder von vorne an sondern macht dann mit 
irgendwas weiter. Und was da bei rauskommt das weiß dann keiner mehr. 
Dann ist man eben bei den undefinierten Zuständen.

von Wolfi (Gast)


Lesenswert?

Danke für die Erklärung das macht Sinn.

Ich bin immer noch skeptisch ob man einen Controller dauerhaft ruinieren 
kann wenn man ihm den Hahn abdreht...glaube ich eher nicht aber eher 
nicht.

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.