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.
Was genau haben Tonfrequenzen auf der Versorgungsleitung mit brown out
zu tun?
Brown out triggert bei VCC kleiner 2.7V. Bleibt VCC da drüber, triggert
der nicht.
Oliver
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.
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.
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.
Falk B. schrieb:> Dann sieh zu, daß das nicht passiert.
Das ist mir beim ESP schon klar. Die Frage war, ob ich beim AVR auch
Maßnahmen gegen Schwankungen oberhalb der Brown-Out Schwelle ergreifen
muss, oder ob er damit klar kommt.
Falk B. schrieb:> Das kommt auf die Taktfrequenz an
Ja klar, die muss natürlich dazu passen. Sagen wir mal 8 MHz.
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.
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.
Probiers halt einfach aus. Hochohmige Versorgung dran, alle IO-Ports mit
auf max. Strom ausgelegten Widerständen gegen Masse, und dann alle
gleichzeitig ein- und ausschalten, so schnell du willst.
Oliver
Oliver S. schrieb:> Probiers halt einfach aus.
Werde ich wohl machen. Es sei jemand weiß schon was dabei heraus kommen
wird und schreibt das hier.
Ich mach das aber erst, wenn ich wieder eine reale Anwendung mit einem
AVR habe. Momentan steht da nichts an.
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.
Soul E. schrieb:> Wirklich den Chip, oder ein Modul wo dieser Chip drauf ist?
Ein Modul.
> Den Chinaplatinchen fehlen regelmäßig vernünftig dimensionierte> Abblockkondensatoren.
Eben darauf bin ich anhand von Messungen und Langzeit-Kontrollen auch
gekommen.
Ich glaube, mit diesen Untersuchungen bist Du den Rest Deines Lebens
beschaeftigt.
Du kannst ja erst mal schauen was da andere gemacht haben. Stichworte
fuer die Suchmaschine: Glitches & Vcc & Microcontroller.
Ich mach mir das Leben einfach und sehe genug Kapazitaeten an VCC vor.
;-)
Andreas B. schrieb:> Ich glaube, mit diesen Untersuchungen bist Du den Rest Deines> Lebens beschaeftigt.> Ich mach mir das Leben einfach und sehe genug Kapazitaeten an VCC vor.
Ich war halt neugierig. hatte gehofft, das es schon jemand weiß.
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.
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.
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.
Hermann Kokoschka schrieb:> Der TO bewegt sich mit den 2.6V ja recht knapp an der Brownout-Schwelle,
Er fragt explizit nach dem Verhalten oberhalb der Brownout Schwelle.
Andreas B. schrieb:> Er fragt explizit nach dem Verhalten oberhalb der Brownout Schwelle.
Eben.
Und GENAU-deshalb ist es doch interessant zu wissen, wie exakt die
BrownOut-Schwelle definiert ist, bzw. sich in der Praxis verhält.
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.
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.
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.
Thomas O. schrieb:> Spendiere doch jedem IC nochmal 10-100µF vor seinem Kerko
Ich suche hier nicht nach Gegenmaßnahmen, sondern Erfahrungswerten, wie
AVR auf Schwankungen der Stromversorgung reagieren.
Wie oft habe ich das nun schon geschrieben?
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.
mit dem EEPROM schreiben scheint es Probleme zu geben wenn die Spannung
einbricht.
Es hört sich halt so an also ob die mit diesem Problem leben willst, es
wird dir aber niemand sagen können was alles schief gehen kann.
Stefan ⛄ F. schrieb:> Thomas O. schrieb:>> Es hört sich halt so an also ob die mit diesem Problem leben willst>> Ich erkläre jetzt noch nochmal, wie die Frage gemeint war.
Und alle anderen erklären dir, daß alles andere außer einer stabilen
Spannungsversorgung nicht zielführend ist.
Oliver
Oliver S. schrieb:> Und alle anderen erklären dir, daß alles andere außer einer stabilen> Spannungsversorgung nicht zielführend ist.
Das Ziel ist dem TO schon klar. Er ist lange genug hier um zu wissen (er
weiss es auch) dass man entsprechende Cs an Vcc verwendet.
Er moechte aber genauer wissen was da konkret passiert.
Andreas B. schrieb:> Er moechte aber genauer wissen was da konkret passiert.
Wenn man sie, die laut Datenblatt erforderlichen Kondensatoren, weg
lässt?
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
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.
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
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.
Stefan ⛄ F. schrieb:> STM32 bekommen vermutlich auch Probleme mit der PLL
Eher nicht so leicht. Die haben einen internen LDO für CPU und den
ganzen hochfrequenten Kram. Der erzeugt typischerweise 1.2V aus den
externen 3.3V und schnell muss er sowieso sein. Da sollte doch genug
Luft bleiben. "Nur" ADC, Opamps usw. werden direkt von draußen versorgt.
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 ;-)
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.
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).