In welcher Situation sollte ich die Brown-out-Erkennung auf einem Mikrocontroller ausgeschaltet lassen?

33

Wenn die Stromversorgung eines Mikrocontrollers unter einen bestimmten Schwellenwert fällt, tritt ein Spannungsabfall auf und der RAM-Speicher kann beschädigt werden. Vorausgesetzt, dass jede Ausschaltsequenz des Stromkreises einen möglichen Spannungsabfall zur Folge haben kann, aktiviere ich bei der Arbeit mit Mikrocontrollern immer den Mechanismus zum Zurücksetzen der Spannungsabfallerkennung.

Ich habe mich gefragt, ob es Situationen gibt, in denen es nicht empfehlenswert ist, die Brown-out Reset-Funktion zu aktivieren.

m.Alin
quelle
4
Brown-out-Detektoren können auch Strom verbrauchen, der für Mikropower-Anwendungen berücksichtigt werden sollte.
HL-SDK,
Berücksichtigen Sie in Anbetracht der vielfältigen Nachteile der BO-Erkennung, die in den Antworten angegeben sind, auch Folgendes: Können Sie in Ihrem speziellen Fall eine kundenspezifische Gewissheit vorweisen? In bestimmten Fällen können Sie zB eine ausreichende Versorgung oder einen vollständigen Stromausfall garantieren => Speichern Sie die Ressourcen für BSB
Mark

Antworten:

11

Wie bereits erwähnt, erhöht das Aktivieren der Brown-Out-Schaltung häufig den Stromverbrauch. Darüber hinaus möchten die Hersteller im Allgemeinen sicherstellen, dass der Brown-Out-Schaltkreis bei einer möglichen Spannung auslöst die niedrig genug ist, um andere Teile des Chips zum Funktionieren zu bringen, können viele Teile bei deaktivierter Brown-Out-Spannung mit einer niedrigeren Spannung betrieben werden . Beispielsweise kann eine Steuerung bei Raumtemperatur die meiste Zeit bis zu 1,5 Volt arbeiten, unter bestimmten stressigen Bedingungen (z. B. bei erhöhter Temperatur) kann es jedoch zu Fehlfunktionen bei 1,99 Volt kommen. Um sicherzustellen, dass das Gerät unter allen Umständen, in denen eine Fehlfunktion auftreten könnte, zurückgesetzt wird, ist der Brown-Out-Schaltkreis möglicherweise so ausgelegt, dass er bei 2,1 Volt +/- 100 mV auslöst.

Wenn ein Gerät mit einem solchen Controller mit zwei AA-Alkalibatterien betrieben wird, kann die Aktivierung des Brownout-Schaltkreises dazu führen, dass das Gerät bei einer Batteriespannung von 1,1 Volt pro Zelle unbrauchbar wird und wahrscheinlich den Betrieb zum Zeitpunkt des Erreichens der Spannung einstellt 1,05 Volt pro Zelle. Das Deaktivieren der Brownout-Schaltung würde wahrscheinlich den Betrieb auf mindestens 0,9 Volt pro Zelle und möglicherweise sogar 0,75 Volt pro Zelle verlängern. Wenn keine plausible Fehlfunktion, die bei niedriger Spannung auftreten könnte, einen Schaden jenseits eines erhöhten Verbrauchs von Altbatterien verursachen könnte, wäre die Deaktivierung des Brownout-Schaltkreises eine einfache Möglichkeit, die Batterielebensdauer zu verbessern, selbst wenn die Stromaufnahme aus den verwendbaren Batterien nicht verringert würde.

Superkatze
quelle
22

Alles hat Toleranzen, daher muss der Brown-Out-Reset-Pegel etwas eingestellt werden höher eingestellt werden dem Mindestpegel liegen, bei dem die ordnungsgemäße Funktion des Chips garantiert ist.

Daher kann der Brown-Out-Effekt auftreten, bevor der Chip ausfällt. So fragt man sich müssen, für diese Region, wo der Chip Macht welcher einwandfrei funktioniert, aber Sie können sich nicht sicher sein, ob Sie dies wünschen

  • Lassen Sie den Chip arbeiten und hoffen Sie, dass das Beste daraus wird (es könnte funktionieren!), oder
  • um den Chip durch die Brown-Out-Schaltung zurücksetzen zu lassen (und im Reset zu halten).

Wenn die Kosten einer Fehlfunktion nicht viel höher sind als die Kosten einer Fehlfunktion, ist die erste Option vorzuziehen. Denken Sie an die Ping-Funktion in einer "Black Box" eines Flugzeugs. Lass es auf jeden Fall weitergehen, wenn die geringste Chance besteht, dass es einen Ping gibt!

Denken Sie auf der anderen Seite an das Auslösen einer Bombe oder eines Auto-Airbags. Wenn die geringste Wahrscheinlichkeit besteht, dass es aufgrund einer niedrigen Netzspannung versehentlich ausgelöst wird, sollte es sich besser selbst abschalten. Das setzt natürlich voraus, dass das Abschalten nicht zündet!

Es gibt Situationen, in denen keine gute Wahl zur Verfügung steht. Denken Sie an den berüchtigten ersten Raketenstart der Ariane V. Der oder die Richtungssteuerungscomputer haben eine Fehlfunktion (in diesem Fall nicht aufgrund geringer Leistung). Was soll es tun? Weiterzufahren bedeutet höchstwahrscheinlich, in die falsche Richtung zu lenken, zu beenden bedeutet jedoch, überhaupt nicht zu lenken, was dasselbe Ergebnis hat. Weder ist eine schöne Aussicht für die Leute im Kontrollbunker, in die die Rakete hineinwandern könnte :(


Wie Ross bemerkt, ist ein Backup natürlich eine gute Idee für ein missionskritisches System. Aber das verschiebt das Designproblem auf diese Sicherung. Was ist, wenn das fehlschlägt? (In der Praxis gibt es oft 3, die ständig mit Stimmenmehrheit aktiv sind.) Bei der Ariane 5 fielen sowohl der Primär- als auch der Backup-Computer aus (obwohl sie nicht selbst schuld waren, aber das ist eine andere Geschichte.) Was geschah als nächstes? war, dass ein anderes System (vielleicht war es sogar ein Mensch im Kontrollraum) feststellte, dass alles außer Kontrolle war und die Selbstzerstörung auslöste. Besser, die Rakete explodiert in der Luft und fällt in kleinen Stücken ins Meer, damit sie ihren Flug in zufälliger Richtung in einem Stück fortsetzt.

Wouter van Ooijen
quelle
Für die Raketensituation ist die beste Lösung, einen Backup-Computer zu haben, der für den Fall, dass der erste ausfällt, die Kontrolle übernimmt und den ersten herunterfährt, oder?
Ross Aiken
Text hinzugefügt
Wouter van Ooijen
Tatsächlich ist die Geschichte der Ariane 5 viel komplizierter, und die Fehlerbehandlung war einer der Gründe für das Scheitern. esamultimedia.esa.int/docs/esa-x-1819eng.pdf
starblue
1
Nein, Fehlerbehandlung war nicht die Ursache. Es handelte sich um die Verwendung eines bewährten Systems (das mit Ariane 4 geflogen war) mit Daten, die außerhalb der ursprünglichen Spezifikationen lagen ohne es mit den neuen Daten zu testen . (Solche Tests waren ursprünglich geplant, wurden aber später in einem Kostensenkungsprogramm gestrichen;)
Wouter van Ooijen,
10

Wenn Sie sich nicht für das Zurücksetzen interessieren (z. B. kann der Benutzer darauf vertrauen, dass er es aus- und wieder einschaltet, wenn die Dinge nicht einwandfrei funktionieren und kein Schaden möglich ist) und der Stromverbrauch wichtig ist, kann das Ausschalten einiges sparen Mikroampere. (oder wenn Sie sich darum kümmern, können Sie einen besseren externen Stromkreis als den eingebauten verwenden).

Wenn das interne BOR für die Aufgabe nicht geeignet ist (z. B. sind die Toleranzen möglicherweise nicht angemessen), können Sie es auch ausschalten und etwas Externes verwenden.

Eine interessante Anforderung für einige Zwecke ist, dass Sie die maximale Spannung kennen müssen, unter der Dinge wie EEPROMs garantiert nicht funktionieren, damit das BOR den Betrieb unterbinden und keine Beschädigung garantieren kann. Dies kann für einige integrierte BOR-Schaltungen etwas subtil sein.

Spehro Pefhany
quelle
10

Sie können das BOR deaktivieren, wenn ein Fehler vorliegt, bei dem das BOR nicht richtig funktioniert.

Modul: Spannungsregler

Das Gerät verlässt den BOR-Status möglicherweise nicht, wenn ein BOR-Ereignis auftritt.

Siehe Ausgabe 15 in der PIC32MX534 / 564/664/764-Produktfamilie zur Erläuterung von Silizium-Errata und Datenblättern .

mjcopple
quelle
8
Autsch. Zu welchem ​​Teil gehört diese schöne Errata?
Spehro Pefhany
1
Wie kommt so etwas in die Produktion?
Matt Young
1
Das ist komisch. Und mit komisch meine ich fast kriminell.
Ignacio Vazquez-Abrams
1
Das besondere Gerät war der PIC32MX664F und nur einige Silizium-Revisionen. In den meisten Fällen wurde BOR normalerweise nur einmal von 20 beendet, in den meisten Fällen jedoch nicht.
mjcopple
@Matt Young: Da die meisten dieser PIC-Mikrocontroller verwendet werden, wird BOR nur zum Herunterfahren verwendet, bevor das Silikon beim Ziehen des Steckers zufällige Anweisungen ausführt. Wenn Sie eine Wiederholungsroutine im ROM haben, ist es möglich, dass diese versucht, sich selbst mit Garbage zu flashen, wenn BOR nicht existiert.
Joshua
2

Es gibt Situationen, in denen Sie stattdessen eine externe, speziell angefertigte Brown-Out-Schaltung verwenden möchten.

Es gibt Mikrocontroller, bei denen die Auflösung von Brown-Ot-Pegeln recht gering ist.

Nehmen wir an, Sie arbeiten mit einem µc, bei dem die beiden höchsten Brownout-Pegel 4,3 V und 2,7 V betragen (üblich bei AVR). Sie haben festgestellt, dass bei den von Ihnen verwendeten Frequenzen 2,7 V nicht sicher sind. 4,3 V wären jedoch zu hoch, da dies die Laufzeit nach einem Stromausfall einschränken würde.

Ich muss oft mit Geräten arbeiten, die häufig die Verbindung zur externen Stromversorgung verlieren und dann mit Kondensatoren oder Batterien überleben müssen. Ein Spannungsabfall von 4,3 V würde dazu führen, dass sich das Gerät zu früh ausschaltet. 2.7 würde zu Datenkorruption führen. Wenn beispielsweise 3,5 V ein sicherer Spannungsabfallpegel sind, möchten Sie möglicherweise eine externe Spannungsabfallschaltung einrichten, die durch Ziehen der Rücksetzleitung Ihres Mikrocontrollers funktioniert. In diesem Fall ist die interne Brown-Out-Schaltung unbrauchbar und kann deaktiviert werden.

Wenn Sie mehrere Prozessoren im selben System haben, ist es sinnvoll, für alle einen einzigen externen Reset-Controller zu verwenden. In diesem Fall ist es, die einzelnen braun-out - Detektoren in den Prozessoren Deaktivieren nicht nur nützlich für den marginalen Vorteil einiger Energiespar, ist aber erforderlich , um die Situation zu vermeiden , in denen einige Prozessoren in zurückgesetzt und andere laufen noch.

vsz
quelle
1
Ich weiß, dass Sie nicht mit AVR arbeiten, aber ich muss unbedingt erwähnen, dass 1) verschiedene AVR-Leitungen unterschiedliche BOR-Schwellenwerte haben und 2) AVRs das Rücksetzsignal auf nRESET extern sichtbar machen. Wenn Sie also sehr vorsichtig sind, können Sie eine verwenden als Reset-Controller.
Ignacio Vazquez-Abrams
1

Wir mussten den VBOR während eines Teils des Startvorgangs aus- und wieder einschalten, da auf den von uns verwendeten Mikrocontrollern ein Fehler im Silizium aufgetreten war. Wenn Sie die Kappen der Spannungspumpe aufladen, wird das Gerät kurzzeitig knapp über den Mindestwerten entleert und der VBOR wird weiter ausgelöst. Also haben wir den VBOR beim Einschalten ausgeschaltet und ihn ca. 10ms später wieder eingeschaltet.

Joshua
quelle