AVR was passiert kurz vor der Brown-Out Erkennung?

Gast #7167489
Lesenswert?

Falls es eine Rolle spielt: Lasst uns einen ATmega328P als Beispiel 
nehmen.

Angenommen ich habe einen AVR dessen Brown-Out Detektor auf 2,7V 
eingestellt ist. Er wird mit 5V betrieben. Was passiert, wenn die 
Versorgungsspannung zwischen 5V und 2,7V schwankt? Läuft er damit stabil 
weiter?

Ich komme auf die Frage, weil ich meine ESP8266 Chips mit schnellen 
Schwankungen (im kHz Bereich) zwischen 3,3V und 2,8V zuverlässig zum 
abstürzen bringen kann. Mit langsam schwankender Spannung wie von einem 
Akku hat der ESP hingegen kein Problem.

Bei AVR fehlen mir entsprechende Erfahrungswerte, deswegen frage ich. 
STM32 würden mich auch interessieren.
Gast #7167513
Lesenswert?

Oliver S. schrieb:
> Was genau haben Tonfrequenzen auf der Versorgungsleitung mit brown out
> zu tun?

Der ESP erzeugt selbst solche Schwankungen während er über WLAN sendet, 
wenn der Innenwiderstand der Stromversorgung zu hoch ist.

Meine Frage ist, ob der AVR Schwankungen oberhalb der Brown-Out Schwelle 
"überlebt". Der ESP8266 tut es jedenfalls nicht, wenn die Frequenz hoch 
ist.
#7167517
Lesenswert?

Stefan ⛄ F. schrieb:
> Angenommen ich habe einen AVR dessen Brown-Out Detektor auf 2,7V
> eingestellt ist. Er wird mit 5V betrieben. Was passiert, wenn die
> Versorgungsspannung zwischen 5V und 2,7V schwankt? Läuft er damit stabil
> weiter?

Das kommt auf die Taktfrequenz an. Wenn die ausreichend niedrig ist, 
sodaß er auch mit knapp über 2,7V gemäß Spezifikation betrieben wird, 
dann geht das.

> Ich komme auf die Frage, weil ich meine ESP8266 Chips mit schnellen
> Schwankungen (im kHz Bereich) zwischen 3,3V und 2,8V zuverlässig zum
> abstürzen bringen kann. Mit langsam schwankender Spannung wie von einem
> Akku hat der ESP hingegen kein Problem.

>Der ESP erzeugt selbst solche Schwankungen während er über WLAN sendet,
>wenn der Innenwiderstand der Stromversorgung zu hoch ist.

Dann sieh zu, daß das nicht passiert.
Gast #7167520
Lesenswert?

Jeder IC hat Probleme mit einer instabilen Spannungsversorgung.
Wie heftig die Ausfallen, kriegt man oft nur durch Tests oder auf 
Nachfrage beim Hersteller heraus.

Nehmen wir mal deinen Atmega 328P als Beispiel und schauen in 
Datenblatt. Kapitel 28.4 - Speedgrades
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf

Da steht ab 4,5 V darf man den IC mit 16 MHz takten. Darunter gibt es 
ein Limit, dass man aus der Kurve interpolieren müsste. Stellt sich doch 
die Frage, was passiert, wenn man sich daran nicht hält, oder? In dem 
Fall gilt, da kann alles mögliche passieren. Der sichere Betrieb ist 
nicht mehr garantiert.

Genau aus dem Grund sind Seitenkanalangriffe auf die Schutzmaßnahmen im 
IC auch recht häufig erfolgreich über Spannugnsglitches. Durch das 
schnelle An- und Abschalten der Versorgung kommt der IC in Zustände, die 
es eigentlich nicht geben sollte.
#7167523
Lesenswert?

Stefan ⛄ F. schrieb:
> Oliver S. schrieb:
>
>> Was genau haben Tonfrequenzen auf der Versorgungsleitung mit brown out
>> zu tun?
>
> Der ESP erzeugt selbst solche Schwankungen während er über WLAN sendet,
> wenn der Innenwiderstand der Stromversorgung zu hoch ist.

Das liegt vermutlich an der PLL, die für die WLAN Taktversorgung sorgt. 
Schnell Spannungschwankungen bringt diese zum Verlust der 
Synchronisation.
Gast #7167539
Lesenswert?

Solche Schwankungen können ja auch beim Wechsel von alternativen 
Stromversorgungen kommen. Zum Beispiel beim Arduino Nano:

5V bei Speisung über Vin und dem 7805 Regler
ca. 4,5V bei Speisung via USB, wegen einer Diode

Bei Speisung über USB entstehen darüber hinaus Schwankungen bei 
Lastwechseln, wegen dem Leitungswiderstand.
Gast #7167733
Lesenswert?

Stefan ⛄ F. schrieb:

> Angenommen ich habe einen AVR dessen Brown-Out Detektor auf 2,7V
> eingestellt ist. Er wird mit 5V betrieben. Was passiert, wenn die
> Versorgungsspannung zwischen 5V und 2,7V schwankt? Läuft er damit stabil
> weiter?

Da Du Dich im spezifizierten Betriebsspannungsbereich aufhältst, hat er 
ordnungsgemäß zu funktionieren. ADC-Skalierung lasse ich mal außen vor. 
Deine Aufgabe ist es, dafür zu sorgen, dass er auch zu diesem 
Spannungsbereich passend betrieben wird. Also Taktfrequenz entsprechend 
wählen.

Und dafür sorgen, dass es keine sehr kurzen tieferen Einbrüche der 
Versorgungsspannung gibt. Wenn beim Wechsel von 5,0 auf 2,7 V die 
Spannung als Überschwinger für ein paar hundert ns auf 2,6 V fällt, dann 
können durchaus ungewollte Effekte auftreten. Das Zauberwort heisst hier 
Abblockung, such mal nach Abblockkondensator, und wofür die gut sind.



> Ich komme auf die Frage, weil ich meine ESP8266 Chips mit schnellen
> Schwankungen (im kHz Bereich) zwischen 3,3V und 2,8V zuverlässig zum
> abstürzen bringen kann. Mit langsam schwankender Spannung wie von einem
> Akku hat der ESP hingegen kein Problem.

Wirklich den Chip, oder ein Modul wo dieser Chip drauf ist? Den 
Chinaplatinchen fehlen regelmäßig vernünftig dimensionierte 
Abblockkondensatoren, da ist nur das Allernotwendigste bestückt. Pack da 
mal 4,7 µF keramisch direkt an den Chip, dann sieht es wahrscheinlich 
schon  besser aus.

Spannungsgradienten kann man auch durch Tiefpässe beeinflussen. 10 Ohm 
in Reihe und 470 µF Elko nach Masse können die Versorgungsspannung 
deutlich beruhigen.
#7167858
Lesenswert?

Stefan ⛄ F. schrieb:
> Ich war halt neugierig. hatte gehofft, das es schon jemand weiß.

Wissen tu ich nur dass das unzaehlige Nebeneffekte hat, die alle 
vermutlich durch induktionsfeffekte auf den Chip zustandekommen. 
Dadurch, dass kein Hersteller (zumindest habe ich das bis jetzt nicht 
gesehen), irgendeine max. Steilheit von glitches auf Vcc angibt, zeigt, 
das dieses Problem offensichtlich nicht trivial ist.
Google doch mal nach den o.a. Begriffen. Da gibt es einiges lesenswertes 
zum Thema.
(Firma: matzetronics) #7167887
Lesenswert?

Das wird sich beim ESP einfach deswegen viel mehr auswirken als beim 
simplen AVR, weil der PLLs und Teilerchips hat, die von einer stabilen 
Versorgung leben. Wenn du bei einer PLL die Betriebsspannung mit kHz 
modulierst, ist die so schnell aus dem Takt, das es die wahre Freude 
ist.
Sowas ist beim AVR gar kein Thema.
Gast #7168000
Lesenswert?

Nochmal ergänzend aus Interesse:

Der TO bewegt sich mit den 2.6V ja recht knapp an der Brownout-Schwelle,
WIE GENAU ist diese Schwelle (hier 2.7V) eigentlich definiert, welche 
Bauteiltoleranzen sind da zu erwarten?

Habe das DB jetzt nicht aktuell durchforstet,
vielleicht weiss es jemand aus Erfahrung.
#7168083
Lesenswert?

Wobei es hier ja weniger um das Brownout Verhalten geht, sondern 
vielmehr um das undefinierte Verhalten eines uC wenn Vcc mit Transienten 
beaufschlagt wird. Das Verhalten tritt ja bei langsamen Aenderungen der 
Vcc nicht auf.
Ob der Brownout jetzt bei 2.6 oder 2.7V zuschlaegt ist ja egal. In 
diesem Fall wird ja ein sauberer Reset ausgefuehrt.
Gast #7168095
Lesenswert?

Hermann Kokoschka schrieb:
> Der TO bewegt sich mit den 2.6V ja recht knapp an der Brownout-Schwelle

Mir ging es nur um Schwankungen, die den Brown-Out Detektor ganz sicher 
noch nicht auslösen, weil sie weit genug von seiner Schwelle entfernt 
sind.

Die Frage war, wie der Rest des AVR auf die Schwankungen reagiert, wo 
der Brown-Out noch nicht getriggert wird.
#7168122
Lesenswert?

Spendiere doch jedem IC nochmal 10-100µF vor seinem Kerko. Oder wie 
schon gesagt wurde noch nen kleinen Widerstand so das nicht zu arg an 
der Versorgung gezerrt werden kann, ich verwende da aber anstatt einen 
Widerstandes gleich ne kleine Drossel.

Überprüfe auch deine Resetbeschaltung, ich verwende hier immer 10kOhm 
und 100nF. Der interne Reset Pullup ist etwas hochohmig.
Gast #7168157
Lesenswert?

Stefan ⛄ F. schrieb:
> sondern Erfahrungswerten

Nimm doch mal das DB zur Hand und schaue, welche Eigenschaften alle von 
der Versorgung abhängen. Das sind gar nicht so wenige.
Da liegt der Hase im Pfeffer.

Das fängt bei OSCCAL an, und geht über das ADC Gedönse weiter, zu den 
Schmitt Triggern der Eingänge. Von angeschlossener Peripherie gar nicht 
reden wollend.

Ansonsten sind die AVRs kleine robuste Kerlchen, die jeden Dreck 
wegstecken.
#7168337
Lesenswert?

Ach Mensch Stefan!

Du bist doch auch nicht erst seit gestern hier. Du kannst hier doch 
nicht so eine ketzerische Frage stellen. Du darfst nicht hinterfragen, 
wenn etwas im Datenblatt steht. (Auch dann nicht, wenn das DaBla falsch 
ist!)
Das steht im Datenblatt und mehr muss man nicht wissen. Also stell nicht 
solche Fragen, die kann Dir keiner beantworten. Denn es steht nicht im 
Datenblatt, man!
Das ist in der Welt nicht vorgesehen, dass diese Frage gestellt werden 
könnte. Und wenn doch, wird sein zu nicht-sein, weiß wird schwarz, oben 
zu unten, etc. Nötigenfalls mit Anwalt.
Die Hersteller haben extra kleine schwarze Kistchen daraus gemacht, 
damit man da nicht rein gucken kann. Also wage es nicht auf die Idee zu 
kommen und zu fragen, was darin eigentlich passiert wenn [hier 
beliebigen "unzulässigen" Betriebszustand einfügen].

Die Bibel musst Du auch akzeptieren wie sie ist und darfst sie auf 
keinen Fall hinterfragen oder anzweifeln. Steht ja in der Bibel.

Solange Du solche Dinge hinterfragst, wirst Du nie ein guter Christ.
Ich auch nicht. :-D

Und nein, ich kann es Dir auch nicht erklären was genau passiert, denn 
auch ich kann nicht sehen, was dabei in dem Chip passiert. Aber es 
werden unvorhergesehene Zustände eintreten, vermutlich sogar ehr 
zufällig als vorhersagbar, die mit sehr hoher Wahrscheinlichkeit dazu 
führen, dass nicht mehr das gemacht wird, was das Programm vorsieht.

Klar ist, dass der Stromverbrauch bei digitalen Gattern im 
Umschaltzeitpunkt massiv ansteigt und ohne Kapazität durch die 
Leitungsinduktivität die Spannung am Chip zusammenbricht. Wenn der BOD 
nicht schnell genug für diese spikes ist, muss der Prozessor mit diesen 
spikes Leben und verrennt sich dann. Geht dann Blümchen pflücken - oder 
schaukeln.

Gruß
Jobst
Gast #7168431
Lesenswert?

Aufgrund von Lastschwankungen (sagen wir mal ein Funkmodul) könnte die 
Versorgungsspannung oberhalb der Brown-Out Schwelle schwanken.

Ich habe beschrieben, dass ich mir entsprechende Schwankungen der 
Stromversorgung bei USB Kabeln und beim Wechsel alternativer QUellen 
mittels Dioden vorstellen kann.

Ich kann mir das außerdem ganz gut bei Betrieb an Akkus vorstellen. Voll 
geladen hat der Akku vielleicht 4,8 Volt, geht im laufe der Zeit dann 
auf 3,6 Volt runter. Dazu würde ich den Brown-Out Detektor auf 2,7 Volt 
stellen, damit er im Normalfall nie triggert. Zu hoch eingestellt würde 
er den µC im Reset halten und dadurch die sonst niedrige 
Ruhestromaufnahme versauen, was wiederum dem Akku nicht gut tut.

Mir ist klar, dass man die Versorgung entsprechend großzügig abblocken 
kann. Die Frage war, was wohl passieren würde, wenn ich das nicht tue. 
Es geht nicht um gutes oder schlechtes Schaltungsdesign, sondern um die 
Befriedigung meiner Neugier.

Aktueller Stand ist:
ESP8266 hängen sich auf (getestet), möglicherweise wegen der PLL
STM32 bekommen vermutlich auch Probleme mit der PLL
AVR haben keine PLL und sind auch sonst recht robust.
Bei nächster Gelegenheit werde ich es an einem AVR ausprobieren.

Nochmal erkläre ich die Frage nicht. Wer jetzt immer noch mit "Halte 
dich and Datenblatt" oder "Lege die Schaltung gefälligst ordentlich aus" 
kommt wird von mir ignoriert.
#7168461
Lesenswert?

Stefan ⛄ F. schrieb:
> Die Frage war, was wohl passieren würde, wenn ich das nicht tue.

Oh mann. Selbst dieses Bastelforum hier Forum ist voll mit Beiträgen der 
Art von "Mein AVR stürzt jedes mal ab, wenn das Relais schaltet" bis zu 
"völlig unerklärliche Resets nach Zeitraum X, auf dem Labortisch hat 
aber alles funktioniert", usw.
Fakt ist, auch ein AVR verträgt keinen beliebigen Störungen auf VCC.

Wenn du das genauer wissen willst, fahr eine Versuchsreihe mit 
verschiedenen Frequenzen, Amplituden, Signalformen, Innenwiderständen, 
was auch immer. Wenn das dann zu irgend einem Ergebnis führt, weisst du 
immer noch nicht, ob der nächste Prozessor aus der gleichen Tüte oder 
der selbe in einer anderen Schaltung nicht ganz anders reagiert.

Oliver
Beitrag #7168534 wurde von einem Moderator gelöscht.
#7168688
Lesenswert?

Der BOD bestimmt nur, wann ein BOD-Reset ausgelöst wird. Dabei gibt es 
eine Hysterese, d.h. die VCC muß unter die Schwelle sinken und danach 
wieder um die Hysterese ansteigen.

Funktionieren müssen die meisten AVRs bis herab zu 1,8V (max Takt 
beachten).
D.h. bis runter zu 1,8V darf nichts abstürzen.
Ein Reset ist kein Absturz und setzt entsprechend der Quelle das MCUSR.

Ist keine Quelle im MCUSR gesetzt, liegt typisch ein Softwarefehler vor 
(Stacküberlauf, wilder Pointer). Dann ist auch kein Reset erfolgt, 
sondern der PC läuft nur über bis 0x0000. Dieser Fall läßt sich schön 
über eines der GPIORn erkennen, es wurde nicht rückgesetzt auf 0x00.
Gast #7168734
Lesenswert?

Stefan ⛄ F. schrieb:
> Er wird mit 5V betrieben. Was passiert, wenn die
> Versorgungsspannung zwischen 5V und 2,7V schwankt? Läuft er damit stabil
> weiter?

Kannst Du ausschließen, dass Du alle anderen Randbedingungen dadurch 
nicht verletzt? Also z.B. dass Signale, die nicht größer VCC sein 
dürfen, immer drunter bleiben? Alle Signale-Timings für 5V UND 2,7V 
eingehalten? Max. Strompeaks eingehalten? interne Referenz-Signale?

Oder triviale Dinge in SW, wie high und low an einem Widerstand, wo high 
auf einmal < low wird?

Falls ja, kannst Du Dich bei Microchip beschweren, wenn er trotzdem 
abstürzt. Und bekommst dann vielleicht für genau Deine Beschaltung einen 
Workaround der die Spannungsschwankungen begrenzt ;-)
(Firma: @home) #7169583
Lesenswert?

Peter D. schrieb:
> Der BOD bestimmt nur, wann ein BOD-Reset ausgelöst wird. Dabei gibt es
> eine Hysterese, d.h. die VCC muß unter die Schwelle sinken und danach
> wieder um die Hysterese ansteigen.

Zu beachten wäre noch die hold time Zeitbedingung des BOD comparator und 
die ist nicht definiert.
Bei Transienten auf Vcc und Probleme kann garantiert die BOD Threshold 
unterschritten werden ABER wegen der zu kuzen Zeit dann vom comperator 
nicht erkannt.

Andere uC Schaltungsbereiche können darauf dann undefiniert reagieren.

Davon auszugehen, dass im definierten Bereiche von Vcc min-max bei 
schnellen oder langsamen Durchfahren Probleme auftreten erscheint 
unbegründet.

ABER das beim Durchfahren von Vcc min-max keine Transienten aufteten die 
Vcc min unterschreiten und vom BOD comparator nicht erkannt werden 
erschein mir gegeben.

Mit der Annahme erscheint dein Ansatz ohne entspr. Meßtechnik zum 
Transienten Nachweis zweifelhaft.
Wirksame Massnahmen gegen Transienten sind umfangreich und zentral ist 
das Layout einschließlich multilayer PCB.

Ich habe mehrer Geräte der Haushaltsbespassung, die in regelmässigen 
undefinierten Abständen den Speicherinhalt (Senderliste...) verlieren, 
der zuvor mühevoll reingehämmert wurde (oft sind die Daten im E2Prom 
oder gepufferten RAM abgelegt) oder die Kisten hängen sich auf ...

Ich behaupte, dass zu allererst das PCB (kein Multilayer) plus Layout 
grundgebend ist ... und dann obendrauf die vielen bekannten anderen 
Gründe.
#7169627
Lesenswert?

Apollo M. schrieb:
> Wirksame Massnahmen gegen Transienten sind umfangreich und zentral ist
> das Layout einschließlich multilayer PCB.

Das kann ich voll bestätigen. Sehr gute Erfahrungen habe ich mit 
GND-Inseln gemacht, die an definierter Stelle mit einen Net-Tie 
verbunden sind. Die ESD-Festigkeit erhöht sich dadurch deutlich.

Daß eine Plane überall das gleiche Potential hat, ist ein Märchen. Auch 
eine Plane hat einen Widerstand und eine Induktivität. Man darf z.B. 
keine Transienten oder hohe Ströme quer über eine Plane unter dem MC 
führen, sondern nur außen herum (elektrisch gesehen).

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