Hallo zusammen,
ich hatte gestern ein etwas überraschendes Erlebnis:
Mein Projekt, eine Wortuhr zu bauen, ist mittlerweile auf einem ganz gut
funktionierenden Stand. Beim Testen/Optimieren habe ich versuchshalber
einen 1000µF Glättungs-Elko im Betrieb an die Versorgungsspannung
gesteckt, dabei ist mein ATmega8 kaputt gegangen.
Ich kann mir nicht recht erklären, warum der AVR Bei so einer Aktion
kaputtgehen kann. Meiner bescheidenen Meinung nach müsste eigentlich der
(beim Einstecken entladene) Kondensator die Versorgungsspannung
kurzzeitig runterziehen, bis er auf ein Niveau aufgeladen ist, bei der
der AVR wieder arbeitet. Ich kann mir nicht recht vorstellen, wie im AVR
Ströme entstehen, die ihn killen konnten. An den Pins habe ich keine
großen Lasten angehängt, es sind an allen Pins Widerstände von >=1kOhm
angebracht, über die dann mit Transistoren LEDs ein- und ausgeschaltet
werden. Als Versorgung habe ich noch ein Netzteil von einem zip-drive
(ja, ich weiß, das ist aus dem letzten Jahrtausend...), das 5V / 800mA
ausspuckt, das sollte theoretisch keine allzu großen Spannungsspitzen
ausspucken, das war ja auch mal für ein elektronisches Gerät hergestellt
worden.
Kann sich da jemand von euch nen Reim drauf machen?
Ich habe nen ATmega8 nachbestellt, ich will den nicht gleich wieder
kaputt machen...
Grüße und danke schon mal!
FoxAlpha
Zwei Möglichkeiten:
1. Die Betriebsspannung steigt jetzt zu langsam an um einen
Power-On-Reset auszulösen.
2. Das Netzteil kommt mit der großen kapazitiven Last nicht klar.
Frage: Was soll dieser Elko überhaupt an dieser Stelle?
3. Je nach Verdrahtung, Aufbau und Ort, an dem der Kondensator
angeschlossen wurde, können auf Grund von Widerstand und Induktivität
der Leitungen kurzzeitig erhebliche Spannungsunterschiede innerhalb der
Schaltung auftreten.
Wenn z.B. der GND des µC durch den Kondensator angehoben wird und ein
Eingang, der auch an GND liegt, etwas später, kann dies zur Zerstörung
führen.
Ähnliche Szenarien kann man sich genauso bei Vcc vorstellen.
Christian K. schrieb:> Wie hast Du ihn “angesteckt”? Entladen in die laufende Applikation> drangehalten. Oder alles ausgeschaltet, eingelötet und dann wieder> eingeschaltet?FoxAlpha schrieb:> 1000µF Glättungs-Elko im Betrieb an die Versorgungsspannung gesteckt
Christian K. schrieb:> Wie hast Du ihn “angesteckt”? Entladen in die laufende Applikation> drangehalten. Oder alles ausgeschaltet, eingelötet und dann wieder> eingeschaltet?FoxAlpha schrieb:> Beim Testen/Optimieren habe ich versuchshalber> einen 1000µF Glättungs-Elko im Betrieb an die Versorgungsspannung> gesteckt,
Wer weiß, welche Spannung der Elko hatte.
Die Ports waren nicht mit irgendwelchen Kapazitäten verbunden, die sich
durch den µC in den Elko entladen haben konnten (so er denn ganz leer
war)?
FoxAlpha schrieb:> Beim Testen/Optimieren habe ich versuchshalber> einen 1000µF Glättungs-Elko im Betrieb an die Versorgungsspannung> gesteckt, dabei ist mein ATmega8 kaputt gegangen.
Auf welche Spannung war der Elko vorher aufgeladen?
Wie hast Du festgestellt, daß der AVR kaputt ist?
Kannst Du mit HV-Programming die Signatur lesen und die Fuses ändern?
Oder schlägt erst das Verify fehl?
Detlev T. schrieb:
> 1. Die Betriebsspannung steigt jetzt zu langsam an um einen> Power-On-Reset auszulösen.
Der ATmega ist kaputt. Der Programmer kann nicht mehr mit ihm
kommunizieren, mit und auch ohne den Elko tut der µC einfach nichts
mehr.
> 2. Das Netzteil kommt mit der großen kapazitiven Last nicht klar.
Das Netzteil liefert weiterhin konstant 5,1V Gleichspannung (gemessen),
egal, ob mit oder ohne Elko.
> Frage: Was soll dieser Elko überhaupt an dieser Stelle?
Bei einer Messung des Lichteinfalls mit einer LED (siehe
[[https://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#LED]]
) bekomme ich pro Messung mehrere Interrupts am Analogkomparator, was
ich darauf zurückführe, dass vermutlich die Referenzspannung=Vcc eine
gewisse Welligkeit hat, was dazu führt, dass mehrere fallende Flanken am
AC entstehen. Deswegen wollte ich die Versorgungsspannung glätten.
Frage zurück: Warum sollte die Versorgungsspannung nicht mit einem Elko
geglättet werden?
Dietrich L. schrieb:
> 3. Je nach Verdrahtung, Aufbau und Ort, an dem der Kondensator> angeschlossen wurde, können auf Grund von Widerstand und Induktivität> der Leitungen kurzzeitig erhebliche Spannungsunterschiede innerhalb der> Schaltung auftreten.>> Wenn z.B. der GND des µC durch den Kondensator angehoben wird und ein> Eingang, der auch an GND liegt, etwas später, kann dies zur Zerstörung> führen.> Ähnliche Szenarien kann man sich genauso bei Vcc vorstellen.
Deine Erklärung kann ich nachvollziehen, wobei ich keine Induktivitäten
an der Schaltung habe. Die Potenziale sind auf meiner Schaltung recht
nah beieinander, daher wundert mich das trotzdem. Einzig das Netzteil
ist ein "gutes altes" Trafonetzteil, das in dem Fall vielleicht doch
nicht so gut ist...
Würde ich eine erneute Zerstörung dadurch verhindern, indem ich den Elko
vor Einschalten der Vcc angesteckt (oder eingelötet) habe? Oder wie kann
ich das erfolgreich verhindern?
FoxAlpha schrieb:> Würde ich eine erneute Zerstörung dadurch verhindern, indem ich den Elko> vor Einschalten der Vcc angesteckt (oder eingelötet) habe? Oder wie kann> ich das erfolgreich verhindern?
Indem du einen so vollkommen überdimensionierten Elko einfach weglässt.
Er macht bei den geringen Strömen, die dein uC benötigt, überhaupt
keinen Sinn, und er nervt das Netzteil.
1-10uF sind vollkommen ausreichend.
FoxAlpha schrieb:> wobei ich keine Induktivitäten> an der Schaltung habe.
Jedes Stück Draht hat eine Induktivität. Es ist also nur die Frage, ob
der Draht lang genug bzw. für dem Fall zu lang ist.
> Würde ich eine erneute Zerstörung dadurch verhindern, indem ich den Elko> vor Einschalten der Vcc angesteckt (oder eingelötet) habe? Oder wie kann> ich das erfolgreich verhindern?
Man kann pauschal sagen: in einer laufenden Schaltung Änderungen
vornehmen ist immer ein Risiko.
Die sichere Methode ist:
- ausschalten
- warten, bis alle Kondensatoren leer sind
- Änderungen vornehmen; dabei dafür sorgen, dass einzubauende
Kondensatoren entladen sind
- einschalten.
FoxAlpha schrieb:> Deine Erklärung kann ich nachvollziehen, wobei ich keine Induktivitäten> an der Schaltung habe.
Falsch. Du hast IMMER parasitäre
Induktivitäten/Kapazitäten/Widerstände.
Und so manch lange Zuleitung zu einer (nicht vernünftig abgesicherten)
Schaltung hat der Schaltung schon das Leben gekostet.
FoxAlpha schrieb:> was> ich darauf zurückführe, dass vermutlich die Referenzspannung=Vcc eine> gewisse Welligkeit hat, was dazu führt, dass mehrere fallende Flanken am> AC entstehen.
Wenn die Welligkeit schon SO groß ist, dann solltest du dir ohnehin mal
Gedanken machen.
Abgesehen davon, empfiehlt Atmel sehr, dass man den Vref-Pin über einen
Keramik-Kondensator nach Masse schaltet.
Kannst du nicht anderweitig ausschließen, dass der Eingang zu deinem
Komparator sauber ist?
Ein Bild des Aufbaus wäre wohl ganz hilfreich - meinentwegen auch mit
dem defekten uC, damit sehen wir wenigstens, wie es aufgebaut war, als
es zu dem Malheur kam.
FoxAlpha schrieb:> Einzig das Netzteil> ist ein "gutes altes" Trafonetzteil, das in dem Fall vielleicht doch> nicht so gut ist...
Alte Netzteile mit 50Hz Trafo und 7805-Regler sind so ziemlich das
beste, was es gibt.
FoxAlpha schrieb:> Der Programmer kann nicht mehr mit ihm> kommunizieren
Welcher denn?
Kannst Du ihn mal in einen HV-Programmer (z.B. STK500) einstecken?
Bist Du sicher, daß Du den Elko vorher auch entladen hast?
Vielleicht war er ja Tage vorher mal auf 24V aufgeladen worden.
Mit dem entladenen Kondensator hast Du für das speisende Netzteil erst
einen Kurzschluss erzeugt, dann evt. den Kontakt geprellt. Das passiert
eigentlich immer. Der hohe Stromfluß erzeugt dann Überspannungen und
zerstört deine digitalen Bauelemente. Wenn Du noch einen Atmel opfern
willst, kannst Du das mit einem Speicherskop auf single shot überprüfen.
Induktivitäten sind das IMO nicht, das könnte ein ganz normaler Latchup
sein. Auf dieselbe Weise habe ich früher gerne (bis ich es gerlent
hatte) mit mal eben schnell 100nF dazuschalten GALs gegrillt, die waren
da extrem empfindlich.
Latchup kann immer mit zuviel Strom an den IO-Pins passieren. Besonders
gerne an extern hängenden Eingangspins... Wenn keine bzw. zuwenig
Betriebsspannung da ist, sorgen Eingangspegel mit >Vcc dafür, dass da
zuerst die Schutzdioden das gegen Vcc ableiten müssen. Wenn das
strommässig nicht reicht, um den Pegel knapp über Vcc zu halten, zündet
ein parasitärer (=ungewollter) Tyristor im Chip und schliesst Vcc und
GND kurz. Wenn man (oder das Netzteil) das nicht ganz schnell merkt und
Versorgungspannung und(!) alle externen Eingänge trennt, verglüht der
Chip.
Früher waren CMOS-ICs generell sehr latchup-sensitiv, daher kommt die
Vorsichtmassnahme "nur im ausgeschalteten Zustand IO-Kabel anschliessen"
etc. Ist heute deutlich besser, aber immer noch existent.
FoxAlpha schrieb:> Bei einer Messung des Lichteinfalls mit einer LED (siehe> [[https://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#LED]]> ) bekomme ich pro Messung mehrere Interrupts am Analogkomparator, was> ich darauf zurückführe, dass vermutlich die Referenzspannung=Vcc eine> gewisse Welligkeit hat, was dazu führt, dass mehrere fallende Flanken am> AC entstehen.
Egal wie "glatt" du die Referenzspannung hinbügelst,
Mehrfachtriggerungen sind bei Komparatoren an der Schaltschwelle normal.
Das Licht hat ja auch schon "Rauschen", und die Diode sowieso.
Was hier hilft: Komparator mit Hysterese
Christian K. schrieb:> Wenn Du noch einen Atmel opfern willst,
Und wenn nicht dann nimm 'ne LED und 'n Vorwiderstand - 20mA entspräche
ja auch umgefähr dem Verbrauch eines µC.
Danke für all die Antworten.
Ich nehme für mich mit:
- Nicht an Schaltungen im Betrieb rumpfuschen
- ein wesentlich kleinerer Elko tut's auch
- Mehrfachtrigger können vorkommen. Stört mich nicht unbedingt, so genau
wird die Lichtstärke eh nicht gemessen... ;)
Antworten auf Fragen:
- Der Elko lag eher Jahre rum statt Tage, die Spannung war mit an
Sicherheit grenzender Wahrscheinlichkeit entladen.
- einen HV-Programmer habe ich nicht. Ich habe ein mySmartUSB light, der
kann nicht mal mehr die Signatur lesen. Ich erwarte nicht, dass der µC
nochmal zum Leben erweckt werden kann. Er macht schließlich auch keinen
Bruchteil vom vorher programmierten Programm...
- Der Vref-Pin wird nicht benutzt (werde trotzdem einen Kerko einbauen,
schadet sicher nicht). Mit Referenzspannung meinte ich die, die an AIN1
hängt, welche über einen Spannungsteiler mit 2x10kOhm erzeugt wird. An
AIN0 hängt die in Sperrrichtung geladene LED, die außer GND beim
Entladen über den Photoeffekt keinen anderen Bezug hat.
Auf ein Neues... wenn die Bestellung mit neuem ATmega8 ankommt :)
Die statische Spannung vom Netzteil zu messen, wird
kaum Aussagekräftig sein. Hier ist die Dynamik gefragt.
Mehrere Dinge können einen µC killen:
Eine kurzfristig zu hohe Versorgungsspannung oder eine
Eingangsversorgung bei fehlender Spannungsversorgung,
und andere unerlaubte Betriebszustände.
Den zweiten Fall würde ich hier mal ausschließen.
Der erste Fall scheint mir plausibel, denn das Netzteil ist ja
geregelt und eine kapazitive Last ist für gewöhnlich Gift
für die Regelung.
Das bringt die Regelung des Netzteils mitunter aus dem Tritt
und für einen Augenblick liegt am µC eine viel zu hohe Spannung an.
Die Netzteilschaltung schafft es halt nicht, sich da unschädlich
wieder einzuregeln bzw. einzuschwingen.
Kapazitäten, insbesondere die größeren Werte haben an geregelten
Spannungen nix verloren, aber das ist eigentlich ein alter Hut.
FoxAlpha schrieb:> Mit Referenzspannung meinte ich die, die an AIN1> hängt, welche über einen Spannungsteiler mit 2x10kOhm erzeugt wird.
dann häng doch einen Kondensator dorthin (wenn auch keine 1000uF) wenn
du die Referenzspannung glätten willst
FoxAlpha schrieb:> Beim Testen/Optimieren habe ich versuchshalber> einen 1000µF Glättungs-Elko im Betrieb an die Versorgungsspannung> gesteckt, dabei ist mein ATmega8 kaputt gegangen.
Unwahrscheinlich. Vermutlich ist er nur "deprogrammiert". Kurzzeitig
Quasi-Kurzschluss (also zu geringe Versorgungsspannung), gefolgt von
viel zu langsam steigender Versorgungsspannung. Da muss ein Controller
ja austicken.
Mit HV-Programming ist er sehr wahrscheinlich wiederzubeleben.
> Ich kann mir nicht recht erklären, warum der AVR Bei so einer Aktion> kaputtgehen kann.
Ist er ja sehr wahrscheinlich auch nicht. Näherungsweise überprüfen
kannst du das, indem du einfach mal seine Stromaufnahme misst.
Vermutlich nur einige µA, d.h.: er ist in Ordnung, ihm fehlt nur der
Takt, weil die Fuses einen mehr oder weniger zufälligen Zustand
angenommen haben.
Mit ein bissel Glück genügt es, einen Takt über XTAL1 einzuspeisen, um
ihn wieder über ISP ansprechen zu können. Ansonsten muss es halt
HV-Programming sein.
FoxAlpha schrieb:> Bei einer Messung des Lichteinfalls mit einer LED bekomme ich pro Messung> mehrere Interrupts am Analogkomparator, was ich darauf zurückführe,> dass vermutlich die Referenzspannung=Vcc eine gewisse Welligkeit hat,> was dazu führt, dass mehrere fallende Flanken am AC entstehen.> Deswegen wollte ich die Versorgungsspannung glätten.
Lass dir diese herfabulierte Kausalkette nochmal durch den Kopf gehen.
Und denk drüber nach, dass Licht selber auch Welligkeit haben kann. Z.B.
flackern Leuchtstoffröhren mit vorgeschalteter Drossel fröhlich mit 100
Hz vor sich hin. LED-Lampen können auch mit mehreren kHz vor sich
hinblinken usw...
> Oder wie kann ich das erfolgreich verhindern?
Die sicherste Vorgehensweise: weniger vermuten und das eigentliche
Problem beheben. Denn das mit dem Elko ist doch nur ein Herumbasteln an
irgendwelchen Symptomen.
> Bei einer Messung des Lichteinfalls mit einer LED (siehe> [[https://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#LED]]> ) bekomme ich pro Messung mehrere Interrupts am Analogkomparator
Ist doch prinzipiell egal. Nur der erste zählt. Danach kannst du den
Interrupt deaktivieren, denn du bist mit der Messung fertig. Oder hast
du das Messverfahren grundlegend anders als dort im Beispiel mit den 3
Schritten implementiert?
> Frage zurück: Warum sollte die Versorgungsspannung nicht mit einem Elko> geglättet werden?
Gegenfrage: warum nur 1mF?
Wenn schon, dann schließ den Kondensator nicht im Betrieb an. Je nach
deiner Verdrahtung kann es da hübsch britzeln. Und die Funken, die dabei
entstehen kommen nicht von 5V...
FoxAlpha schrieb:> Auf ein Neues... wenn die Bestellung mit neuem ATmega8 ankommt :)
Eher auf ein Veraltetes. Den veralteten Atmega8 sollte man bei einer
solchen Gelegenheit durch einen zeitgemäßen Atmega328 ersetzen.