Hallo zusammen,
ich habe hier ein merkwürdiges Problem. Wir haben ein Gerätetyp, welcher
seit 2 Jahren ohne größere Probleme und Reklamationen verkauft wird. Vor
zwei Monaten wurden von diesem Gerät 8 Stück an einen Kunden geliefert.
Letzte Woche kamen von diesen 8 Geräten 3 Stück zur Reparatur zurück.
Alle das selbe Problem. In den EEPROMs der Geräte waren defekte, bzw.
ungültige Werte zu finden. Merkwürdig daran sind nun folgende Umstände:
-Das Problem ist bisher noch nie aufgetreten
-Die defekten Werte im EEPROM sind bei allen 3 Geräten an
unterschiedlichen Speicherstellen zu finden
-In zwei der Geräte waren Werte im EEPROM zu finden, welche niemals im
Programmablauf auftauchen
Es handelt sich um ein internes EEPROM im Mikrocontroller, sodass ein
Busproblem ausgeschlossen werden kann.
An der Firmware und der Elektronik wurde nichts geändert.
Hat von euch jemand eine Idee, wie solch ein Fehler zu Stande kommen
kann? Ich bin etwas ratlos.
Vielen Dank!
Peter
Das kenne ich auch - vor allem bei älteren ATMEL Controllern ist das
aufgetreten, wenn der Brown-Out nich sauber gekommen ist oder häufige
Power-Up Zyklen gefahren wurden. Da macht der ATMEL mal irgendwas, was
so nie konfiguriert war. Ich habe mir bei diesen Typen dann so geholfen,
dass ich am Anfang der Initialisierung ein Register mit einer bestimmten
Bitkombination programmiert habe und direkt in der Write-EEPROM Routine
diese Kombi wieder abgefragt habe. Seit dieser Zeit ist Ruhe.
Trotzdem sollte man die Ursache angehen bzw. erst mal analysieren.
Gruß
TK
Bei PICs habe ich das noch nicht erlebt, aber gut, auch hier kann das
Gleiche passieren. Wie sieht die Versorgungsspannung aus? Wie ist der
Brown-Out eingestellt? Was macht das Gerät / was macht der Kunde damit?
TK
Die Versorgungsspannung sieht gut aus. Auch in Langzeitmessungen konnten
hier keine Auffälligkeiten ermittelt werden. Und wie gesagt. Von den
Geräten sind schon hunderte raus, welche alle ohne Probleme laufen.
Seltsam ist jetzt nur, dass es bei einem Kunden so viele sind.
Brown-Out könnte ein guter Anhaltspunkt sein. Ich musste selbst im
Quelltext schauen, da das Gerät noch von meinem Vorgänger programmiert
wurde, aber Brown-Out ist definitiv ausgeschalten!
>Brown-Out könnte ein guter Anhaltspunkt sein. Ich musste selbst im
Quelltext schauen, da das Gerät noch von meinem Vorgänger programmiert
wurde, aber Brown-Out ist definitiv ausgeschalten!
Da haben wir doch schon das Problem! Gerät OHNE Brown-Out betreiben ->
bei Kundengeräten immer tötlich!
Da reicht doch schon das einfache ABSCHALTEN der Spannung und irgendwann
kommt dann eine von mehreren Schaltschwellen, an den das int. RAM nicht
mehr geht, die int. Peripherie bei einer anderen Schwelle nicht mehr
geht, der Oszillator bei einer weiteren Schwelle nicht mehr geht...
Und genau bei diesen Schwellen kann die int. Logik einfach mal irgendwas
machen!
Oder anders herum gesagt:
wenn der int. Brown-Out deaktiviert ist, dann muss ZWINGEND ein externer
Brown-Out vorhanden sein.
Gruß
TK
Dann mal vielen Dank für die Hilfe, ich denke (und hoffe) auch, dass es
an dem liegen könnte.
Es stellt sich mir aber noch die Frage, weshalb das Problem gerade bei
diesem Kunden gleich 3 Mal aufgetreten ist und ansonsten bisher noch nie
Probleme aufgetreten sind. Kann dies mit einer unsauberen Netzspannung
beim Kunden zusammen hängen?
Ja - und mit vielen anderen Dingen, die ein Kunde so treibt.
Also ich vermute - wie im ersten Beitrag geschrieben - einen häufigeren
Power-Zyklus als bei den anderen Kunden.
Gruß
TK
Peter Z. schrieb:> Dann mal vielen Dank für die Hilfe, ich denke (und hoffe) auch, dass es> an dem liegen könnte.> Es stellt sich mir aber noch die Frage, weshalb das Problem gerade bei> diesem Kunden gleich 3 Mal aufgetreten ist und ansonsten bisher noch nie> Probleme aufgetreten sind. Kann dies mit einer unsauberen Netzspannung> beim Kunden zusammen hängen?
Sind die EEPROMs dauerhaft beschädigt?
Ich könnte mir gut vorstellen, daß ein EEPROM auch bei ausgeschaltetem
Gerät, z.B. Lagerung, zerschossen werden kann, wenn jemand elektrisch
leitende Teile daran berührt. Wie sieht es bei dem Kunden mit ESD-Schutz
aus? Trägt da einer Schuhe mit Gummisohlen und einen Wollpullover? Das
erzeugt schon mal ziemlich hohe Energien.
Ein externes EEPROM (Exel XLS2816A) löschte ich sogar mal vollständig,
in dem irrtümlich kurz ein falscher Spannungsimpuls an einen Pin kam
(VCC negativer als GND). Das war nicht der Löschmodus! Der Strom reichte
nicht für eine Zerstörung, und der Baustein blieb heil, läßt sich bis
heute immer stets einwandfrei schreiben und lesen.
Aus diesem Grunde setzte ich EEPROM auch nie mehr als externes ROM in
µC-Schaltungen ein, sondern EPROM, wie es sich eigentlich gehörte. Die
sind in dieser Hinsicht robuster.
Auch ein interressanter Aspekt. Aber der Kunde hat ein fertiges Gerät
der Schutzklasse 1 vor sich und sollte sich nicht mehr um ESD kümmern
müssen. Und der ESD-Test wurde sogar eine Klasse höher als notwendig
durchgeführt und bestanden.
Nein, das EEPROM ist nicht dauerhaft beschädigt. Nachdem ich das Gerät
an unsere Servicestation gehängt und neu initialisiert und kalibriert
habe hat alles wieder funktioniert.
Seinerzeit hatte ich etwas für den KFZ-Bereich auf einem ATmega128
programmiert. Trotz BOD war sein EEPROM immer wieder vergesslich.
Letztlich hatte ich dann den EEPROM-Datensatz dreifach mit separater
Prüfsumme abgespeichert und beim Einschalten den ggf. abweichenden
Datensatz neu geschrieben.
Das war zwar 150%ig, dafür ist aber auch nie etwas zurückgekommen.
Wenn Du schon am Programm etwas änderst, vielleicht wäre ein mehrfaches
Abspeichern auch für Dich die hinreichende Absicherung.