Hallo zusammen! Ich habe hier ein Gerät mit einem Motorola 68HC11F1 µC. Bei dem Gerät hat der ursprüngliche Programmierer jede Menge Parameter, die hauptsächlich über ein paar Tasten eingestellt werden können, zur Speicherung ins EEPROM des Controllers gepackt. Unter anderem auch zwei Parameter, die stündlich ausgelesen, neu berechnet und dann wieder neu beschrieben werden. Einer dieser beiden Parameter sind die Betriebsstunden und der andere ist ein Parameter zur Steuerung des Geräts. Da nach etwa 1,5 Jahren Betriebszeit an diesen Gerät nun immer wieder merkwürdige Fehler auftreten, bin ich genau an dieser Stelle jetzt nach des Rätsels Lösung am suchen, da ich bei einem fehlerhaften Gerät an dem zweiten genannten Parameter einen Wert ausgelesen habe, der da eigentlich gar nicht drin stehen kann. Ich bin daher auf die Idee gekommen, einmal die Anzahl der Schreibvorgänge zu berechnen und siehe da bei stündlichem Schreibvorgang und 24/7-Betrieb komme ich nach diesem Zeitraum auf knapp 13000 Schreibvorgänge, was damit wohl die im Datenblatt angegebenen 10000 Zyklen leicht überschreitet! Soweit so gut! Jetzt kommen mit dieser Erkenntnis nur zwei Probleme und damit auch zwei Fragen auf. 1. Die Speicherung der Betriebsstunden, die ja ebenfalls stündlich erfolgt, verläuft aber bis dahin immer Reibungslos. Es ist immer der andere Parameter der mit sinnlosen Werten im EEPROM steht. Die Betriebsstunden werden immer einwandfrei ausgelesen. Kann es sein, dass dies etwas mit der Speicherposition zu tun hat (Betriebsstunden 0x0E72 und 0x0E73 und der zweite Parameter steht ganz vorne im EEPROM auf 0x0E002)? 2. Da der falsch eingelesene Wert aber die auftretenden Fehler immer noch nicht ganz erklärt wäre hier die Frage ob die evtl. zerstörte Speicherzelle im EEPROM vielleicht Auswirkungen auf Nachbarzellen hat? Ich danke Euch schon im Voraus für Eure Antworten! Gruß Andreas
:
Bearbeitet durch User
Passiert das bei EINEM Mikocontroller oder bei einer ganzen Kiste voll und es ist immer nur der weiter vorne stehende Parameter betroffen? Wenn nur einer, dann ist es wohl Zufall dass die vordere Zelle zuerst ausleiert. Nutzt ihr den ganzen EEPROM Speicher oder nur ein paar Byte davon. Wenn viel EEROM ungenutzt ist, könnte man die Schreibzugriffe auf mehr Zellen verteilen. Gäbe es auch die Möglichkeit, die Daten im RAM zu halten und nur bei Netzausfall, bevor die Siebelkos leer werden, zu schreiben. Der 68HC11 ist alt und 10000 Schreibzugriffe war damals ein sehr guter Wert, heute hält mancher Chip mehr aus.
Nein, das ist nicht nur bei einem einzelnen Controller der Fall, sondern tritt bei der ganzen Produktionsreihe von uns auf. Das interne EEPROM des HC6811 ist recht gut belegt, da neben den beiden genannten Parametern noch eine Vielzahl an anderer Einstellparametern in diesem abgespeichert werden. Den betroffenen Parameter hab ich jetzt als globale Variable angelegt. Damit ist die Funktion bis auf eine kleine Einschränkung, die aber nicht wirklich bedeutend ist, auch gegeben. Jedoch ist es mir immer noch ein Rätsel, warum nur die Speicherposition 0x0E02 betroffen ist und die andere genau so fluktuierte Speicherzelle ohne Probleme arbeitet. Ich werde wohl morgen mal an einer Anlage schauen, ob im Moment des Abspeicherns durch die von der Änderung des Parameters ausgelösten Schaltvorgänge irgendwelche Spannungsspitzen oder Einbrüche entstehen, die dafür sorgen könnten, dass genau diese Zelle immer das zeitliche segnet! Gruß Andreas
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.