Merkwürdige ATMega ausfälle

Gast #4287452
Lesenswert?
• ▲
▼
Hallo,

ich stelle eine Hardware her, die als Baugruppe in bestehende Geräte 
eingebaut wird. Sie ersetzt einen bestehenden Prozessor.
Meine Hardware besteht hauptsächlich aus einem Mega16 wobei fast alle 
Pins zum Gerät hin verbunden sind, auch die Reset Leitung wird vom Gerät 
gesteuert.

Die Hardware wurde nun problemlos in ein Gerät vom typ A verbaut, ca. 
150 Stück jeweils ohne irgendwelche Ausfälle.

Bei einem anderen Gerät B fallen etwa 10% der Baugruppen aus und zwar 
auf folgende Weise:

Die Baugruppe funktioniert eine zeitlang, möglicherweise genau einmal. 
Dann nach dem nächsten Anschalten reagiert der Mega16 nicht mehr.
Ersetzte ich nun die Fehlerhafte Baugruppe nun mit einer neuen tritt der 
Fehler nicht mehr auf.

Ich habe natürlich auf versucht die defekten Baugruppen zu analysieren. 
Sie lassen sich weiterhin über SPI ansprechen. Auslesen kann ich das 
Flash nicht, da ich entsprechende Lockbits gesetzt habe. Die Baugruppen 
lassen sich jedoch neu programmieren und funktieren dann. Setzte ich sie 
jedoch in das Gerät laufen sie einmal und funktionieren dann nach dem 
nächsten Anschalten nicht mehr.

Mir läge sehr viel daran dieses Problem zu beheben, bin aber 
einigermaßen Ratlos. Hat jemand eine Idee, was hier das Problem sein 
könnte? Gibt es vielleicht äußere Einflüsse, die unter bestimmten 
Umständen zur korruption des Flashs führen können?

Danke !
#4287470
Lesenswert?
• ▲
▼
ben schrieb:
> Setzte ich sie
> jedoch in das Gerät laufen sie einmal und funktionieren dann nach dem
> nächsten Anschalten nicht mehr.

Das hört sich doch schon mal gut an, dass der Fehler reproduzierbar ist.
Ich kenne mich mit Atmel nicht aus, aber dies müsste dir doch
die Möglichkeit geben, die Lockbits für einen Test nicht zu aktivieren.
Dann Fehler reproduzieren, und Flash wieder auslesen/vergleichen.
Dann weißt du schon mal, ob es überhaupt am Flash liegt oder nicht.
Außerdem ob einzelne Bits, ganze Blöcke, alles gelöscht ist.
Vielleicht gibt dir der Ort des Fehlers einen Aufschluss?
Gast #4287487
Lesenswert?
• ▲
▼
Jim M. schrieb:
> Brownout Fuse eingeschaltet? Bei Unterspannung kann der Flash
> Speicher
> u.U. gelöscht oder überschrieben werden.

War bei den ersten 50 tatsächlich nicht aktiviert und habe ich dann 
aufgrund des gleichen Verdachtes aktiviert. Leider habe ich jetzt wieder 
eine Benachrichtigung über den Fehler bekommen.

Karl M. schrieb:
> was hast Du gegen EMV Einstrahlung und Einstreuung unternommen ?

Die Baugruppe sitzt wie gesagt in einem anderen Gerät. Dieses besitzt 
ein geerdetes Metallgehäuse.

Martin M. schrieb:
> Das hört sich doch schon mal gut an, dass der Fehler reproduzierbar ist.
> Ich kenne mich mit Atmel nicht aus, aber dies müsste dir doch
> die Möglichkeit geben, die Lockbits für einen Test nicht zu aktivieren.
> Dann Fehler reproduzieren, und Flash wieder auslesen/vergleichen.
> Dann weißt du schon mal, ob es überhaupt am Flash liegt oder nicht.
> Außerdem ob einzelne Bits, ganze Blöcke, alles gelöscht ist.
> Vielleicht gibt dir der Ort des Fehlers einen Aufschluss?

An sich ja, leider bin ich selbst nicht im Besitz eines Gerätes bei dem 
der Fehler auftritt. (Scheint nur bei bestimmten Gerät <-> Baugruppen 
Kombinationen zu passieren) Nur einmal hatte ich für einige Stunden 
Zugriff auf eines und konnte den Defekt analysieren, wobei ich hier 
leider die Fuse bits nicht getestet hatte. Die 'defekten' Baugruppen 
habe ich hier, kann mit diesen aber den Fehler nicht reproduzieren.
#4287544
Lesenswert?
• ▲
▼
ben schrieb:
> Die Hardware wurde nun problemlos in ein Gerät vom typ A verbaut, ca.
> 150 Stück jeweils ohne irgendwelche Ausfälle.
>
> Bei einem anderen Gerät B fallen etwa 10% der Baugruppen aus und zwar
> auf folgende Weise:

Sind Gerät A und B vollkommen unterschiedliche Apparate, oder 
unterscheiden sie sich elektrisch nur geringfügig?

Falls das so ist, dann kommt eigentlich nur der elektrische Unterschied 
zwischen den beiden Biestern in Frage.

MfG Paul
Gast #4287558
Lesenswert?
• ▲
▼
Paul B. schrieb:
> Sind Gerät A und B vollkommen unterschiedliche Apparate, oder
> unterscheiden sie sich elektrisch nur geringfügig?

A und B sind vollkommen unterschiedliche Geräte. Der Fehler tritt jedoch 
nur bei einem Teil von B auf und auch hier nur mit einem Teil der 
Baugruppen. Es scheinen hier also mehere Faktoren unvorteilhaft 
aufeinander zu treffen.

Generell würde ich gerne verstehen welche Äußeren Einflüsse, evtl. in 
Verbindung mit Prozesstreuungen des Mega16 zu einem Fehler wie dem oben 
beschriebenen führen können.
Hatte mir natürlich auch schon viele Gedanken hierzu gemacht bevor ich 
gepostet habe.

- Versorgungsspannung zu hoch, zu niedrig?
- Gerät B löst unter best. Umständen Programmiermodus des Megas aus und 
programmiert den Flash neu? (Reset Leitung wird wie gesagt auch vom 
Gerät gesteuert)
- ??

Und dann interessiert mich natürlich was ich dagegen tun könnte..
Gast #4287577
Lesenswert?
• ▲
▼
ben schrieb:
> Und dann interessiert mich natürlich was ich dagegen tun könnte..
Ein bekannt problematisches Gerät besorgen, Baugruppe einbauen und mit 
Oszi und Logicanalyzer anrücken?! In hartnückigen Fällen zusätzlich zum 
Debugger greifen.

Das nennt man üblicherweise systematische Fehlersuche!
Gast #4287585
Lesenswert?
• ▲
▼
Schreiber schrieb:
> Ein bekannt problematisches Gerät besorgen, Baugruppe einbauen und mit
> Oszi und Logicanalyzer anrücken?! In hartnückigen Fällen zusätzlich zum
> Debugger greifen.
>
> Das nennt man üblicherweise systematische Fehlersuche!

Debugger bei einem AVR um seltene Fehler aufzuspüren?
Logikanalysator für interne Fehler?
Vergiss es!

@ben
Kannst Du testweise (oder gleich ganz) auf einen neueren Typen 
umstellen? ATmega164 wäre dies.
Gast #4287628
Lesenswert?
• ▲
▼
Hallo,
einen solchen effekt hatte ich auch schon einmal, es war aber eine 
statische ESD Entladung am reset Pin oder am Programmierinterface. 
Danach war dann der Flash gelöscht. Pins mit Pullup/Pulldown und ESD 
Dioden array schützen.

Gruß Sascha
#4287640
Lesenswert?
• ▲
▼
Resetpin mit üblichen 10kOhm und 100nF beschaltet evtl? Bis 4,7kOhm 
runter gehen, je nachdem was der Programmer mit macht. Und das ganze 
auch erst nach der Drosselspulen aagreifen damit Reset auch gefiltert 
ist.

An den Eingangspins hilft meist schon ein RC Glied da der Kondensator 
die Impulse belastet und die Spannung am Widerstand schon ausreichend 
abfällt. ESD-Dioden sind nicht immer erforderlich.

Du solltest aber schon mal mit einem Speicheroszi an das Messobjekt in 
der Realanwendung um nach solchen Spikes zu suchen.

Was macht dieses Gerät das den Fehler verursacht, welche Verbraucher 
schaltet es? Natürlich sollte deine Schaltung dagegen unempfindlich 
sein. Aber diese Störquelle sollte man auch besänftigen.
Gast #4287682
Lesenswert?
• ▲
▼
Schreiber schrieb:
> Er soll schauen, ob da irgendwas an den Pins wackelt, das da nicht
> wackeln sollte. Etwa um den µC ungeplant in den Programmiermodus zu
> versetzen!

Auf Grund seiner Stückzahl gehe ich davon aus, daß er die 
gründsätzlichen Dinge wie das Wackeln von Pins schon selber kontrolliert 
hat. Ebenso wird er sicherlich den µC nicht mit internem Takt betreiben, 
sofern er die UART nutzt.

Die älteren AVRs waren empfindlicher gegen alles Mögliche als die 
neueren. Zwar muß die Fehlersuche im Kopf anfangen, aber wenn es nicht 
hilft, sollte man manchmal auch den Fehler nicht bei sich selbst suchen. 
Mit der Methode hatte ich die besten Erfolge ;-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.