Forum: Mikrocontroller und Digitale Elektronik brown out detection


von Carsten (Gast)


Lesenswert?

Hallo,

ich nutze einen AT90CAN32 mit einem Quarz von 16MHz. Im Datenblatt ist 
zu lesen das der Controller somit von 4,5V bis 5,5V in seinen Grenzen 
arbeitet. Da ich kleine einbrüche in der Versorungsspannung habe, runter 
bis 2V für 300mikrosec., will ich nun die brown out detection 
aktivieren. Laut Datenblat ist das höchste 4,1V.
Frage 1: Der Betrieb des Controllers ist bis 4,5V gewähleistet, die 
brown out detection greift erst bei 4,1V. Ist es gewähleistet das die 
brown out detection funktioniert?
Frage 2: Kann ich messtechnisch nachweisen das die brown out detection 
funktioniert? In Figure 7-5 (Seite 55) ist zu sehen das es nur eine 
Flanke am "INTERNAL RESTET" gibt, nicht aber am Reset Pin.
Ich würde mich auch zufrieden geben wenn ich etwas mit dem Register 
MCUSR anfangen könnte. Da gibt es das Bit BORF, welches gesetzt wird 
wenn ein BOD reset auftritt und wieder zurückgesetz wird wenn ein power 
on reset stattfindet. Habe ich die Möglichkeit dieses Bit abzufragen? 
Immerhin bin ich in einem Spannungsbereich in dem der Controller nicht 
mehr richtig arbeitet. Und ich nehme an das Rücksetzen des Bits geht 
sehr schnell nach dem power on?

mfg,

Carsten

von Florian (Gast)


Lesenswert?

Warum unternimmst Du nicht was gegen die Spannungseinbrüche? Ein 
Kondensator sollte doch schon helfen. Ansonsten kannst Du ja auch eine 
externe BOD aufbauen. Dann kannst Du die Resetleitung selber steuern und 
ggf. auch die Pegel definieren.

von Carsten (Gast)


Lesenswert?

Hallo nochmal,

ich habe leider keinen Einfluß auf die Spannungseinbrüche.
Ein Kondensator oder eine externe BOD bedeuten eine Hardwareänderung die 
aus Kostengründen nicht in Frage kommt (bzw. als allerletzte!!! 
Möglichkeit).
Ich dachte mir eventuell einen 8MHz Quarz mit gleichem footprint 
einzusetzen.

Aber kann jemand bitte noch auf Frage 1 und Frage 2 eingehen.

gruß,

Carsten

von Martin L. (melvin_the_moose)


Lesenswert?

zu 1.: Lt. Datenblatt ist der Bereich 4.1 .. 4.5 ein unsicherer Bereich, 
in dem weder die Funktion des uCs (bei 16MHz) gewährleistet, noch eine 
sichere Erkennung dieses Zustands möglich ist.

zu 2.: Wenn der Brown Out Reset zugeschlagen hat, zeigt das Flag "BORF" 
das an und kann (möglichst umgehend nach dem Reset) ausgelesen werden. 
Messtechnisch kann man den internen Reset lt. Datenblatt nicht 
nachweisen. Aber vielleicht kennt noch jemand einen Kniff? Das kenne ich 
z. B. vom Freescale S12 anders, dort kann man interne und externe Resets 
auch von außen unterscheiden, das hilft nur hier jetzt leider nicht 
weiter...

Gruß

Martin

von Carsten (Gast)


Lesenswert?

Hallo,

das würde ja bedeuten das man die brownout detection gar nicht benutzen 
kann wenn man den AT90CAN32 mit 16Mhz betreibt (Figure 27-2).

Und wieso sieht man im "Table 7-2" zwei Kombinationen für die 
Bodlevelbits für 2,6V und 2,5V? Nach "Figure 27-2" ist 2,7V die minimale 
Betriebsspannung bei minimaler Frequenz von 8MHz.
Demnach dürfte man die Schwelle für die BOD beim AT90CAN32 gar nicht auf 
2,5V oder 2,6V setzen.
Wieso stehen diese Grenzen aber im Datenblatt?

Hat jemand dafür eine Erklärung?

gruß,

Carsten

von Carsten (Gast)


Lesenswert?

Hallo,

in der Zwischenzeit habe ich die Frage bei http://support.atmel.no 
gepostet und habe immer noch keine befriedigende Antwort erhalten.
Hier die Reaktion von Atmel (zweideutig in meinen Augen):"

Dear customer,

VBOT may be below nominal minimum operating voltage for some devices. 
For devices where this is the case, the device is tested down to VCC = 
VBOT during the production test. This guarantees that a Brown-Out Reset 
will occur before VCC drops to a voltage where correct operation of the 
microcontroller is no longer guaranteed.

The AT90CAN32 is tested down t 4.1 V, so we guarantee that with BOD set 
(with fuse bits) at this 4.1 V limit, the operations of the 
microcontroller are guaranteed and that below this limit a Reset will 
occur."

Es fängt schon mit dem "may be" an. Entweder die haben solche controller 
oder nicht! Und dann schreibt er das in diesen Fällen getestet wurde bis 
VCC = VBOT und das der Controller bis dahin einwandfrei funktioniert. 
Das würde aber bedeuten, dass das Bild 27-2 falsch ist.
(Diese Aussage erinnert mich etwas an meine Chinesischen Schnittstellen)

Ich will an dieser Stelle nochmal meine Frage formulieren:
Bei 16MHz hat der AT90CAN32 einen Betriebsspannungsbereich von 4,5V bis 
5,5V. Die max. BOD-Spannung beträgt 4,1V. Ist die BOD Funktion 
gewähleistet?
Wenn nicht, warum kann man die BOD Spannung laut table 7-2 auf 2,6V und 
2,5V einstellen, da die niedrigste Betriebsspannung 2,7V @ 8MHz beträgt?

gruß,

Carsten

von gast (Gast)


Lesenswert?

Bei manchen µC hat man die Auswahl von 2 BrownOut-Limits. Das erste gibt 
einem die Möglichkeit Daten zu retten. Das zweite für dann einen Reset 
aus.
Ich denke für die BrownOut-Detection sind deine 16MHz nicht von 
bedeutung, da 4.1V bzw. 2.x Volt nicht deine normale Betriebsspannung 
ist.

Mach doch einfach mal folgenden Test :

Pin Toggeln lassen und ohne BrownOut die Spannung herunterdrehen, dann 
wirst Du sehen, dass der µC bis ca. 1.5V noch irgendwelche Pulse 
herausgibt. Danach das ganze mit BrownOut, hier wird er dann gezielt 
abschalten.

Die BrownOut Detection soll eigendlich auch nur geziehlt den µC stoppen, 
damit er nicht die Möglichkeit hat wild im Programm herumzuspringen und 
u.U. Schaden anzurichten bzw. hängen zu bleiben. Daher sind 
meineserachtens deine Sorgen erstmal unbegründet. Ich würd das Limit auf 
4.1V legen sie wird dann auch funktionieren, dafür ist sie ja auch 
schließlich da.

von blog.coldtobi.de (Gast)


Lesenswert?

Carsten, das mit dem "may" ist eine Redewendung. Eher in der Art "Es mag 
schon vorkommen, das bei einigen Devices VBOT kleiner ist, aber dies 
gilt nicht für alle"

Jedoch is das irrelevant, da Atmel garantiert dass die BOD noch 
funktioniert.

BOD ist eine Funktion, die hat mit dem "Safe Operating" nichts zu tun. 
Anders ausgedrückt: BOD funktioniert bis 4.1 (== spezifiziert), jedoch 
solltest Du nicht grundsätzlich Deinen Controllerschaltung  nicht 
grundsätzlich so designen, dass der Controller immer unter 4.5 läuft. 
Das wäre ausserhalb der Spezifikation.

von Walter (Gast)


Lesenswert?

Die Mail von Atmel ist doch klar. Es gibt Controller, bei denen die 
Brown Out Schwelle unterhalb der nominellen Mindestspannung ist. In 
diesen Fällen werden die Bausteine bis runter zur Brown Out Spannung 
getestet.

dann hat er sogar noch explizit geschrieben:
"The AT90CAN32 is tested down t 4.1 V, so we guarantee that with BOD set
(with fuse bits) at this 4.1 V limit, the operations of the
microcontroller are guaranteed and that below this limit a Reset will
occur."

Der Baustein läuft also bis 4,1V, darunter gibt es ein Reset.

Was willst Du denn noch ?

Gruss
Axel

von Bensch (Gast)


Lesenswert?

Ich fasse mal zusammen:

- Ein miserables Design, dass nicht geändert werden kann aus 
Kostengründen- Geiz ist geil?
(Zitat: "Da ich kleine einbrüche in der Versorungsspannung habe, runter
bis 2V für 300mikrosec." - das dürfte doch wohl kein Aufwand sein)

- Klarstellung von Atmel, an der rumgemäkelt wird.

Was wir brauchen, ist der Name der Klitsche, die so einen Schrott 
produziert- nicht dass noch jemand versehentlich sowas kauft.....

von Strubi (Gast)


Lesenswert?

Herr Bensch:
Abgesehen davon, dass ich den Tonfall nicht gerade passend finde, ein 
weiterer Kommentar: Vermutlich duerften Sie hiermit nie wieder ein 
modernes Auto kaufen...

von 900ss (900ss)


Lesenswert?

Strubi wrote:
> Herr Bensch:
> Abgesehen davon, dass ich den Tonfall nicht gerade passend finde, ein

Dem schließe ich mich an. Schon dreist, was sich einige Leute immer 
wieder rausnehmen.

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.