Hallo zusammen,
ich habe das Problem, dass mir häufig einzelne Pins der Mikrocontroller
(meistens ATmega32) "kaputt" gehen. Es kommt dann beim Ansteuern eines
Pins als Ausgang nicht mehr das erwartete Signal heraus.
Zur Demonstration habe ich mit einem nicht mehr einwandfreien ATmega32
einen kleinen Test mit folgendem Code gemacht:
1
DDRD=0xff;
2
while(1)
3
{
4
PORTD^=0xff;
5
_delay_us(20);
6
}
Es sollte nun an allen Pins vom Port D ein Rechtecksignal anliegen. An
einigen Pins tut es das auch, allerdings haben zwei Pins eine sehr
flache (unbrauchbare) fallende Flanke und das Signal eines Pins ist noch
unbrauchbarer, er ist eigentlich ständig auf high (siehe angehängte
Screenshots des Oszis). Mit einem anderen µC funktionieren alle
Portpins, sodass ich einen Fehler in der Software oder Schaltung
ausschließen kann.
Dieses Problem hatte ich nun schon bei vielen µCs. Das letzte Mal ist es
aufgetreten, nachdem ich zum Testen einer Software mehrfach die Taster
auf meinem Pollin Evaluation-Board gedrückt habe.
Wie auf der Diskussionsseite des Pollin-Boards
(http://www.mikrocontroller.net/articles/Diskussion:Pollin_ATMEL_Evaluations-Board)
beschrieben, hatte ich wohl auch Probleme durch die Hardware-Entprellung
der Taster. Beim Drücken der Taster kam es teilweise zu Fehlfunktionen
oder Controller-Abstürzen. Diese habe ich nun behoben, indem ich die
drei Kondensatoren ausgelötet habe (die Entprellung mache ich sowieso
immer per Software).
Ist es möglich, dass mir diese merkwürdige Entprellung (bevor ich sie
ausgebaut habe) meine AVRs kaputt gemacht hat? (Beim Drücken der Taster
bekommt der µC ja dann zunächst Unterspannung da der Kondensator
aufgeladen wird. Könnte er auch Überspannung bekommen, wenn der
Spannungsregler bei voll geladenem Elko oder bei nur sehr kurzem Drücken
des Tasters nicht schnell genug nachregelt?)
Das Problem mit der Hardware-Entprellung besteht jetzt zwar nicht mehr,
aber mich interessiert, ob es zwischen der Entprellung und meinen
kaputten AVRs einen Zusammenhang gibt, denn ich möchte mir mein neuen
Controller ja nicht auch kaputt machen, falls es doch nichts mit der
Entprellung zu tun hat.
Schon mal vielen Dank für eure Antworten!
Viele Grüße und ein schönes Restwochenende,
Tobi
Es passiert eventuell dadurch, daß Du einen PIN als Ausgang programmiert
hast und dort "Null-Pegel" ausgibst. Dann nicht dran gedacht, daß das
ein Ausgang ist und einen Taster gedrückt....
Dann drischst Du (bei der Originalbeschaltung) 5V auf einen Ausgang, der
aber gerne 0 ausgeben möchte: WUMM!
Da muß man vorsichtig sein -so wie sich die Igel vermehren: Ganz, ganz
vorsichtig!
;-)
MfG Paul
Das es mit der eigenwilligen Tastenentprellung zu tun hat, kann ich mir
schwer vorstellen. Obwohl, unmöglich ist nichts.
Etwas plausibler wäre die Möglichkeit das der Pin auf Ausgang Low
gestellt war, und dann wurde die Taste gedrückt. Der Kurzschlußstrom
zerstört dann den internen FET der nach GND schaltet.
Paul Baumann schrieb:> Da muß man vorsichtig sein -so wie sich die Igel vermehren: Ganz, ganz> vorsichtig!
Vertan, sprach der Igel, und stieg von der Bürste.
Hi
Rein theoretisch, wenn du die mit den Tastern beschalteten Pins als
Ausgang schaltest, den Jumper gesteckt hat und den Ausgang schnell
umsteuerst. Dann wirkt der Kondensator wie ein Kurzschluss.
Gruß oldmax
Hallo zusammen,
Paul Baumann schrieb:> Es passiert eventuell dadurch, daß Du einen PIN als Ausgang programmiert> hast und dort "Null-Pegel" ausgibst. Dann nicht dran gedacht, daß das> ein Ausgang ist und einen Taster gedrückt....>> Dann drischst Du (bei der Originalbeschaltung) 5V auf einen Ausgang, der> aber gerne 0 ausgeben möchte: WUMM!Hubert G. schrieb:> Etwas plausibler wäre die Möglichkeit das der Pin auf Ausgang Low> gestellt war, und dann wurde die Taste gedrückt. Der Kurzschlußstrom> zerstört dann den internen FET der nach GND schaltet.
also für die Messung habe ich die Jumper gezogen, sodass die Taster
nicht mehr mit dem Controller verbunden sind. Ansonsten kann ich nicht
ausschließen, den einen oder anderen Fehler gemacht zu haben, der einen
Kurzschluss zur Folge hatte. Aber das müssten die AVRs doch eigentlich
aushalten, oder? Falls ich wirklich mit einem Kurzschluss einen FET
zerstöre, dann müsste der Pin aber doch ganz kaputt sein und nicht ein
Signal mit einer komischen, flachen Flanke (die man mit einem
Pull-Down-Widerstand steiler machen kann) raus kommen, oder?
Wenn das Kurzschließen von Pins wirklich schädlich ist und solche
Probleme mit kaputten Flanken verursachen kann, muss ich zukünftig wohl
wirklich mehr aufpassen.
Nur wenn für meine Probleme eine andere Ursache bekannt ist, sollte ich
diese beheben bevor ich neue Controller einsetze und mir diese evtl.
auch kaputt mache.
Mike schrieb:> Schaltungsschema?
Also das Schaltungsschema ist eigentlich zweitrangig, es ging eher um
die grundsätzliche Frage, warum bei mir so viele AVRs (die in
unterschiedlichen Schaltungen eingesetzt werden) kaputt gehen.
Den Schaltplan des Pollin-Boards mit der komischen Taster-Entprellung,
mit dem ich den Test gemacht habe und das auch sonst häufig zum Einsatz
kommt, findet ihr hier:
http://www.mikrocontroller.net/attachment/126417/Atmel_Evaluations-Board_Version_2.0.1_D810038B.gifPaul Baumann schrieb:> Rabarber schrob:>>Vertan, sprach der Igel, und stieg von der Bürste.>> Das passiert mal im Gedränge auf dem Damenklo....
Was immer ihr mir hiermit sagen wollt...
Viele Grüße,
Tobi
Tobias G. schrieb:> Wenn das Kurzschließen von Pins wirklich schädlich ist und solche> Probleme mit kaputten Flanken verursachen kann, muss ich zukünftig wohl> wirklich mehr aufpassen.
Jup ;-)
Edit:
Tobias G. schrieb:> Falls ich wirklich mit einem Kurzschluss einen FET> zerstöre, dann müsste der Pin aber doch ganz kaputt sein und nicht ein> Signal mit einer komischen, flachen Flanke (die man mit einem> Pull-Down-Widerstand steiler machen kann) raus kommen, oder?
Das kann man so nicht sagen. Leistungsbauelemente sind meist
durchlegiert, aber die Ausgangstreiber von so einem µC sind ziemlich
feine Strukturen. Vermutlich hast du den so brutal gemordet dass er bzw
seine Anbindung zum Substrat verdampft ist.
Tobias G. schrieb:> Diese habe ich nun behoben, indem ich die> drei Kondensatoren ausgelötet habe
Dann einfach mal weiter beobachten, ob die AVRs nun heile bleiben.
Es ist schwer zu sagen, was die falsch angeschlossenen Kondensatoren
bewirken, vielleicht zündet ein parasitärer Thyristor.
Wurde der AVR warm?
Allgemein sind die Ausgänge sehr robust, ich hab schon öfter
Kurzschlüsse gehabt, ohne das sie kaputt gehen.
Ich hab einen AVR-Pin nur einmal kaputt gekriegt, weil ich versehentlich
12V drauf gelegt habe.
Hallo zusammen,
Gerhard W. schrieb:> Das kann man so nicht sagen. Leistungsbauelemente sind meist> durchlegiert, aber die Ausgangstreiber von so einem µC sind ziemlich> feine Strukturen. Vermutlich hast du den so brutal gemordet dass er bzw> seine Anbindung zum Substrat verdampft ist.Peter Dannegger schrieb:> Es ist schwer zu sagen, was die falsch angeschlossenen Kondensatoren> bewirken, vielleicht zündet ein parasitärer Thyristor.
Das hört sich ja recht komplex an. ;-)
Dann werde ich mal beobachten, ob meine AVRs nun ganz bleiben, und
aufpassen, dass ich nichts kurzschließe - was aber leichter gesagt als
getan ist.
Peter Dannegger schrieb:> Wurde der AVR warm?
Wenn dann nur ganz leicht. Wobei ich auch mal einen AVR hatte, der
deutlich mehr Strom brauchte und spürbar wärmer wurde als andere.
Ich hatte auch schon mal zwei AVRs, die ich ebenfalls durch Überspannung
völlig zerstört habe. Diese werden heiß und funktionieren überhaupt
nicht mehr - was aber bei Überspannung irgendwie verständlich ist.
Dann danke ich für eure Antworten und hoffe, dass meine Controller
zukünftig ganz bleiben, damit ich nicht gleich eine ganze Palette
bestellen muss. ;-)
Viele Grüße,
Tobi
ich habe mal den AVR als Masseanschluss über einen PORT-Pin verwendet.
Ich habe also meine gesamte Schaltung drumrum (GPS,GSM,LEDs, AVR) usw.
über einen Portpin versorgt. Plus war drann, Minus war ab. ABER an einem
Eingang war eine Codierbrücke im Anschlussstecker nach Masse! Darüber
hat sich das Teil dann "selbst versorgt". Der Strom floß über die
internen Schutzdioden.
Ging auch eine Zeitlang ganz gut. Hat niemand bemerkt. Erst, als der
Stecker gezogen wurde, die Brücke also nicht mehr da sein sollte,
"bliebse" es aber ;)
Die Diode in Sperrichtung vom PortPin nach Masse war hin und über,
hinüber quasi. Ich habe dann im Feld beim ( technisch interssierten
Kunden ) 100 Ohm vom Portpin nach VCC gelötet, um überhaupt wieder
Betrieb machen zu können.
Ströme können also auch dann fliessen, wenn man nicht daran denkt und es
nicht für möglich hält.
Axelr.
> Der Kurzschlußstrom zerstört dann den internen FET der nach GND schaltet.
Das bezweifle ich sehr. Die Ausgänge liefern einen begrenzten Strom, der
weit unter dem Grenzwert liegt. Da müsste man schon viele Pins auf
einmal (z.B. 10 Stück) kurzschließen, um den AVR zu killen.
Die Schutzdioden sind allerdings nur gering belastbar. Atmel farantiert
deren Schutzwirkung nur bis maximal 2mA. Bei mehr Strom gehen die Dioden
in der Regel zwar nicht kaputt, aber sie schützen den Eingang/Ausgang
nicht mehr vor Fremdspannung und dann wird der parasitäre Thyristor
getriggert, der zu einem internen Kurzschluss mir richtig hohem Strom
führt.
Stefan schrieb:> Der Kurzschlußstrom zerstört dann den internen FET der nach GND> schaltet.
Die Oszillogramme am Anfang lassen aber doch auf so einen Fehler
schließen. Wie kann man sich sonst erklären das der Ausgang nicht mehr
auf GND schaltet.
Auf einen Kurzschluss durch einen parasitären Thyristor lassen die
Oszillogramme nicht schließen. Der Pegel würde dann kaum noch auf High
gehen.
Ich habe auch so ein Board, aber noch keinen Pin getötet. Vielleicht
auch nur Glück gehabt. Werde da in Zukunft ein besonderes Augenmerk
drauf legen.
Stefan schrieb:> Die Oszillogramme zeigen ja auch nicht den Moment, wo die Ausgänge> kaputt gegangen sind. Sie sind da schon kaputt.
Das über den Kurzschluß mit den Tasten die Schutzdioden zerstört wurden,
daraufhin der parasitäre Thyristor gezündet hat und dieser den FET nach
GND zerstört hat, halte ich aber doch für etwas weit hergeholt.
Naja, vielleicht Step by Step, nichts ist unmöglich.
Paul Baumann schrieb:> Dann drischst Du (bei der Originalbeschaltung) 5V auf einen Ausgang, der> aber gerne 0 ausgeben möchte: WUMM!
Nein, eigentlich nicht. Alle µC sollten (eigentlich) soweit selbstsicher
sein, daß sie den Strom durch einen Portpin auf einen sinnvollen Wert
begrenzen. Und bei den meisten anderen µC, die ich so kenne, ist das
auch der Fall und die gehen durch einen high-aktiven Taster definitiv
NICHT kaputt. Schließlich muß man damit rechnen, daß gelegentlich auch
mal zwei Ausgänge (µC gegen anderen Chip) gegeneinander kämpfen - z.B.
im Fehlerfalle, Softreset, Watchdog usw. OHNE daß dabei gleich der µC
kaputt geht.
Ich schließe aus der Diskussion, daß die ATmegas wohl anfälliger sind
als andere µC.... ODER (was wohl ebenso wahrscheinlich ist) daß die
werten ATmega-Bastler zu viel in ihren Schaltungen herummessen und
dadurch gelegentlich ein Bauteil töten. Beliebte Kandidaten sind ältere
Stecker-Schaltnetzteile, wo sich die Sekundärseite gern mal auf höhere
Spannungen (100 Volt und so) auflädt. Ist sehr hochohmig, so daß man per
Anfassen nix merkt, aber mit ein paar Metern Kabelkapazität reicht es
aus, ne Sperrschicht im Chip durchschlagen zu lassen.
W.S.
W.S. schrieb:
>Alle µC sollten (eigentlich) soweit selbstsicher>sein, daß sie den Strom durch einen Portpin auf einen sinnvollen Wert>begrenzen.
Probier es doch einfach mal aus, dann weißt Du, ob sie es nur "sollten"
oder tatsächlich tun.
;-)
MfG Paul
W.S. schrieb:> Paul Baumann schrieb:>> Dann drischst Du (bei der Originalbeschaltung) 5V auf einen Ausgang, der>> aber gerne 0 ausgeben möchte: WUMM!>> Nein, eigentlich nicht. Alle µC sollten (eigentlich) soweit selbstsicher> sein, daß sie den Strom durch einen Portpin auf einen sinnvollen Wert> begrenzen. Und bei den meisten anderen µC, die ich so kenne, ist das> auch der Fall und die gehen durch einen high-aktiven Taster definitiv> NICHT kaputt.
Woher hast du denn das jetzt? Das halte ich für eine sehr sehr grobe
Pauschalisierung. Wenn der durch den Ausgangstransistor fließende Strom
so hoch ist, dass der FET überhitzt, dann ist er eben kaputt. Das kann
bei niedrigem Strom halt auch länger dauern. Von diesem zeitlichen
Aspekt ist in deiner Aussage gar keine Rede.
> Schließlich muß man damit rechnen, daß gelegentlich auch> mal zwei Ausgänge (µC gegen anderen Chip) gegeneinander kämpfen - z.B.> im Fehlerfalle, Softreset, Watchdog usw. OHNE daß dabei gleich der µC> kaputt geht.
Muss man das? Nein, im Gegenteil, das darf nie vorkommen. Wenn es Gefahr
gibt, dass es doch vorkommen kann, muss der Schaltungsentwickler
natürlich Vorkehrungen treffen(!).
> Ich schließe aus der Diskussion, daß die ATmegas wohl anfälliger sind> als andere µC.... ODER (was wohl ebenso wahrscheinlich ist) daß die> werten ATmega-Bastler zu viel in ihren Schaltungen herummessen und> dadurch gelegentlich ein Bauteil töten.
Ja, genau. Entwickler, die "ATmega" einsetzen messen zu viel und
zerstören dadurch ihre Schaltungen. Haste noch mehr davon? ;-)
> Beliebte Kandidaten sind ältere> Stecker-Schaltnetzteile, wo sich die Sekundärseite gern mal auf höhere> Spannungen (100 Volt und so) auflädt. Ist sehr hochohmig, so daß man per> Anfassen nix merkt, aber mit ein paar Metern Kabelkapazität reicht es> aus, ne Sperrschicht im Chip durchschlagen zu lassen.
Das musste mal erklären. Welche Kabelkapazität?
ESD Schutz ist übrigens üblicherweise auch dem Schaltungsentwickler
überlassen...
Paul Baumann schrieb:> W.S. schrieb:>>Alle µC sollten (eigentlich) soweit selbstsicher>>sein, daß sie den Strom durch einen Portpin auf einen sinnvollen Wert>>begrenzen.>> Probier es doch einfach mal aus, dann weißt Du, ob sie es nur "sollten"> oder tatsächlich tun.> ;-)> MfG Paul
Aber bitte probiere es auch bei allen Mikrocontrollern aus!
Paul Baumann schrieb:> Probier es doch einfach mal aus, dann weißt Du, ob sie es nur "sollten"> oder tatsächlich tun.
Hab ich. Schon schier unzählige Male. Zumeist läuft das so:
- LP-Serie kommt vom Bestücker
- LP werden in der Fertigung eingerichtet (diverse Chips programmiert
usw.)
- Ein Haufen LP landen in der Ausschußkiste (da geht dies nicht oder das
nicht..)
- Unsereiner wird angerufen (Die Serie ist aber mal wieder Sch...)
Und ich suche den Lunker oder haarfeinen Zinnspratzer oder den
abgelösten Leiterzug (nach Murphy immer unter einem Chip!!) und finde
ihn natürlich. Sinn der Sache: entweder Bestücker oder dem LP-Hersteller
auf die Füße trampeln zwecks Regress.
Am Ende hat so eine LP eine stattliche Anzahl von Minuten unter Strom
mit nem Kurzschluß gestanden und nach dessen Behebung geht sie wieder.
OHNE DASS EIN PORTPIN DAVON KAPUTT IST. Allerdings setze ich keine
Produkte von Atmel ein.
Ich hatte auch schon mal nen anderen putzigen Fall: Ein Schaltwandler
(von TI), bei dem die Drossel um 90 Grad verkehrt herum aufgelötet war.
Statt der Drossel wirkte nur die Leitungsinduktivität. Das Ding hat
funktioniert! Allerdings barbarische Störungen erzeugt... Nach Umlöten
der Drosseln war die Welt wieder in Ordnung und nix ist kaputt gegangen.
Simon K. schrieb:> Ja, genau. Entwickler, die "ATmega" einsetzen messen zu viel und> zerstören dadurch ihre Schaltungen. Haste noch mehr davon? ;-)
Na klar doch:
Ingenieure im Prüffeld sind genau solche Leute. Die wollen unbedingt die
divesen Spannungen auf dem Board messen, benutzen dazu ihre superedlen
VDE geprüften Multimeter mit Spitzen wie Besenstiele und schließen dabei
aus versehen nen FPGA-Pin mal eben mit +12V kurz. Dat Ding löppt ja
garnich, watt hatt der Entwickler da wieder für'n Mist jebout.. Aber
diese Besenstiel-Techniker strotzen vor Selbstbewußtsein, was selbst
dann nicht ins Wanken kommt, wenn man anreist und vor Ort ihnen ihren
Fehler en detail nachweist. Schließlich ist IHRE Meßtechnik ja
jeprööft und über jeden Zweifel erhaben - genauso wie diverse Beiträge
hier in diesem Forum..
W.S.
W.S. schrieb:> Simon K. schrieb:>> Ja, genau. Entwickler, die "ATmega" einsetzen messen zu viel und>> zerstören dadurch ihre Schaltungen. Haste noch mehr davon? ;-)>> Na klar doch:> Ingenieure im Prüffeld sind genau solche Leute. Die wollen unbedingt die> divesen Spannungen auf dem Board messen, benutzen dazu ihre superedlen> VDE geprüften Multimeter mit Spitzen wie Besenstiele und schließen dabei> aus versehen nen FPGA-Pin mal eben mit +12V kurz. Dat Ding löppt ja> garnich, watt hatt der Entwickler da wieder für'n Mist jebout.. Aber> diese Besenstiel-Techniker strotzen vor Selbstbewußtsein, was selbst> dann nicht ins Wanken kommt, wenn man anreist und vor Ort ihnen ihren> Fehler en detail nachweist. Schließlich ist IHRE Meßtechnik ja> jeprööft und über jeden Zweifel erhaben - genauso wie diverse Beiträge> hier in diesem Forum..
Yeah, auch eine nette Verschwörungstheorie! Wichtig ist, dass du selbst
dran glaubst. ;-) Übrigens trifft das nur auf "ATmega Bastler" zu - das
ist völlig klar.
Hi
>Allerdings setze ich keine Produkte von Atmel ein.
Dann bist du ja der perfekte Fachmann für AVRs.
Ich habe in 15 Jahren mit AVRs die Teile als recht robust erlebt. Aber
wie jedes elektronische Bauteil sind sie nicht unendlich leidensfähig.
MfG Spess
W.S. schrieb:> Ich schließe aus der Diskussion, daß die ATmegas wohl anfälliger sind> als andere µC
Nein, beim Pollin-Board liegt ein Designfehler vor.
Man müßte simulieren, wie sich die Leiterzüge verhalten, wenn der 330nF
Kondensator über die Taste mit VCC kurzgeschlossen wird. Es kann sich
durchaus ein Serienschwingkreis ergeben und die Pins mit negativer
Spannung beaufschlagen, sowas mag kein MC.
Anekdoten was ein Bauteil ausgehalten hat und was nicht helfen ohne
präzise Beschreibung des Fehlers nicht weiter, weil zu viele Größen in
die tatsächliche Belastung des Bauteiles eingehen. Zum Beispiel reicht
ja ein Kurzschluss zwischen einem Ausgang und einem Eingang locker dass
seltsame Fehler auftreten, aber wenn die äußere Beschaltung des
Einganges ausreichend hochohmig ist merkt das Bauteil selbst das nicht
einmal. Genauso sind kurzgeschlossene Ausgänge für den IC nicht weiter
schlimm, wenn der klein genug gewählte Spannungsregler den Strom auf
eine ungefährliche Stärke begrenzt und nicht allzu große Kondensatoren
an der Versorgungsspannung sind. Trotzdem verursacht das Setzen des
Ausganges dann einen Absturz oder Reset, und damit die Beobachtung,
"nichts geht mehr".
Das Pollin Board hat einen 7805 und Elkos, wenn noch ein halbwegs
leistungsfähiges Netzteil dran ist hat man 2A, die vermutlich ausreichen
um so gut wie jeden µC und jede Logik zu zerstören wenn man es falsch
genug angeht.
Davon abgesehen wüsste ich nicht wieso es sinnvoll sein sollte einen
Logikausgang auf dauerhafte Kurzschlussfestigkeit auszulegen. Einerseits
ist es im Serienprodukt irrelevant ob der Portpin draufgeht weil beim
Kurzschluss die Funktion so oder so ausfällt, und andererseits steht
eine derartige Auslegung dem Optimierungsziel einer geringen Verzögerung
und hohen Anstiegsrate entgegen. Wer einen kurzschlussfesten µC will
soll sich eine Platine mit Serienwiderständen und eventuell sogar
Clampdioden machen.
@Gerhard
Das ist ja richtig, was Du sagst -nur hier geht es um ein Experimentier-
board. Da kann es schon mal passieren, daß man die Belegung eines
Portpins im Programm ändert, weil man vielleicht auf der Leiter-
platte mit weniger oder keinen Brücken/Durchkontaktierungen auskommt.
Dann drückt man quietschvergnügt auf einen Taster, der ja vorher
schon Stunden lang an einem Eingang saß -oh Sch......ade!
:-(
Ich habe hier eine eigene Test-Platine, bei der ich Serienwiderstände
in den Leitungen zu den Pins drin habe. So kann es nur passieren, daß
nichts geht, aber es geht wenigstens auch nichts kaputt.
Wer ohne Fehler ist, der werfe den ersten Trafo!
;-)
MfG Paul