Hallo, ist es grundsätzlich möglich, einen 24CO2 EEPROM in einer Schaltung auszulesen und auch wieder zu programmieren? Zum Hintergrund: Ich habe ein kleines Funkgerät mit einem Serienfehler. Offenbar versagte bei sehr vielen Geräten das EEPROM bzw. wurde dessen Inhalt irgendwie ungewollt verändert. Laut eines Forums hat aber ein User eines der Geräte retten können. Es hat sich um das besagte EEPROM gehandelt. Wie genau das Problem behoben wurde, konnte ich leider nicht mehr in Erfahrung bringen. Vielleicht ist es aber einen Versuch wert, ein noch funktionierenden EEPROM auszulesen und den Code auf das defekte Gerät zu übertragen. Die Frage ist nur WIE man das anstellt. Nach etwas Recherche bin ich auf den WINGONEER EEPROM Routing USB Programmer CH341A Writer LCD Flash für 25 SPI Serie 24 I2C USB I2C Adapter gestoßen. Hat damit vielleicht schon jemand Erfahrungen gesammelt und würde so eine Hardware für mein Vorhaben funktionieren? Gruß Alex
Alex schrieb: > ist es grundsätzlich möglich, einen 24CO2 EEPROM in einer Schaltung > auszulesen und auch wieder zu programmieren? Ja, der 24C02 hat keinen Leseschutz. Den alten Chip neu zu programmieren lohnt aber bei einem potentiell defekten Chip nicht, sondern man wird ein frisches Exemplar nehmen. Kostet nicht viel. Dieser Chip wurde früher sogar bei den Teststäbchen von Bluzuckermeßgeräten mitgeliefert und enthielt Kalibrierdaten. Im Prinzip könnte man den 24C02 sogar auf einem uralt Rechner unter DOS am Parallelport auslesen und programmieren, aber das ist eine etwa mühselige Methode. Am einfachsten lässt du das von jemandem machen, der ein geeignetes Programmiergerät hat, das werden nicht wenige sein. Unklar aber ist, wie du die fehlerhaft gespeicherten Daten korrigieren willst. Wie kommst du an gute Daten? Evtl gibts auch noch eine Prüfsumme um Veränderungen zu erkennen.
Du kannst versuchen, den Reset des mc, an dem das Eeprom hängt, zu aktivieren. Dann sollten alle Ports hochohmig sein und Du kannst mit einem anderen mc o.ä. das Eeprom auslesen. Der von Dir genannte Programmer sieht nicht wirklich nach inCircuit Verwendung aus. Gruß, Stefan
P.S.: Alex schrieb: > Offenbar versagte bei sehr vielen Geräten das EEPROM bzw. wurde dessen > Inhalt irgendwie ungewollt verändert. Ist es möglich, dass bei diesen Geräten der Chip ausgetauscht wurde? Es gibt bei diesem Typ subtile Unterschiede zwischen dem ursprünglichen 2402 von Exar und späteren Varianten wie 24C02 z.B. von ST. Ich habe selbst ein Meßgerät, bei dem in diesem Chip bestimmte Kalibrierfaktoren hinterlegt werden. Das klappt aber nur bei der uralten Version, die neueren Typen kann das Meßgerät nicht beschreiben. Das merkt es zwar nicht, aber am Schluß des Programmiervorgangs liest es eben doch nur wieder die alten Daten aus.
Hallo Nachtmix, die Methode mit dem Uralt Rechner hatte ich auch, allerdings habe ich leider keine so alte Kiste mit Parallelport mehr rumstehen, höchstens noch mit serieller Schnittstelle, weswegen ich mich mal nach I2C USB Adaptern umgesehen habe. "Unklar aber ist, wie du die fehlerhaft gespeicherten Daten korrigieren willst. Wie kommst du an gute Daten? Evtl gibts auch noch eine Prüfsumme um Veränderungen zu erkennen." Ich hatte vor einigen Jahren zwei dieser Geräte vom Ramschtisch für zusammen 5 EUR gerettet. Das eine Gerät arbeitet einwandfrei, das andere hat eben den Defekt. Ich würde die korrekten Daten vom "Spendergerät" auslesen. Ein frisches Exemplar würde ich im Moment nur sehr ungern verwenden, da die Platine sehr eng bestückt ist. Das würde ich erst dann machen, wenn die Neuprogrammierung durch einen Defekt im EEPROM nicht funktioniert. Mich würde aber auch einmal interessieren WIE es zum Datenverlust gekommen ist. Offenbar hatten ja einige User genau das gleiche Problem. Alex
@Nachtmix Nein, die Platine sieht jungfräulich aus. Selbst die Schrauben am Gerät hatten keinerlei Spuren. Puh, ich glaube mich zu erinnern, dass in dem Gerät ein EEPROM von ST verbaut ist. Gerät müsste vom Bj. so um 2000-2005 herum sein. @Stefan K. Danke! Sowas hatte ich auch gerade irgendwo gelesen. Was das incircuit angeht: Gibt es denn da einen Unterschied? Klar, der Adapter hat einen Sockel für IC`s, aber mit entsprechenden Microklemmen bzw. mit so einem "Klammer-Adapter" für SOIC müsste es doch eigentlich gehen. Passende Klemmen habe ich hier, nur eben nichts für I2C.
Zum Lesen/Programmieren mußt Du ihn ausbauen oder die CPU in der Schaltung dauerhaft in Reset halten. Sonst kämpft die CPU gegen Dein Programmiergerät und kann Schaden nehmen. Alex schrieb: > Mich würde aber auch einmal interessieren WIE es zum Datenverlust > gekommen ist. Das geht sehr leicht, wenn an der Resetschaltung gespart wurde. Wird nur ein billiges RC-Glied als Reset benutzt, dann kann die CPU bei nicht monotonem Anstieg der VCC oder Unterspannung wirre Dinge auf dem I2C-Bus machen.
@ Peter Dannegger Oder gegebenenfalls ein paar Leiterbahnen durchtrennen...Na mal sehen was ich da machen werden. Ich habe zwar schon einige Chips heil auf und von Platinen bekommen, aber in dem Fall sind die Platzverhältnisse wirklich sehr beengt. Wenn der Fehler wirklich auf ein schlechtes Design zurückzuführen ist, wäre vielleicht ein Durchtrennen der Leiterbahnen an geeigneten Stellen die bessere Wahl. Man muss dann ja womöglich mal wieder mit einem Fehler rechnen.
Incircuit heisst ja, dass Du das Bauteil in der Platine belassen musst. Wenn das Eeprom gesockelt ist, hast Du natürlich keine Probleme. Theoretisch geht incircuit auch mit dem von Dir beschriebenen Programmer. Du musst aber sicherstellen, dass die Betriebsspannung von Schaltung und Programmer übereinstimmen. Den VCC-Pin des Eeproms würde ich dabei nicht an den Programmer anschliessen. Allerdings ist die Voraussetzung, dass Du den Reset-Pin des mc (und ev dessen Beschaltung) herausfindest. Du kannst das Auslesen (und wiederbeschreiben) auch erstmal an einem nicht funktionierendem Gerät testen. Wahrscheinlich sind nur einige Bits im Eeprom gekippt. Der Atmega hatte z.B. in der Anfangszeit die Schwäche, dass das Eeprom-Byte an Adresse Null regelmässig korrumpiert wurde. Auch wenn der Brownout des mc nicht gesetzt ist, kann sowas öfter mal passieren. Sowas kann grundsätzlich auch mit externen Eeproms passieren: mc stürzt ab -> springt "aus Versehen" mit wirren Daten in die Eeprom Schreibroutine -> defekt. Viele Grüße, Stefan
@stefan64 Vielen Dank erst mal für die vielen nützlichen Infos. Habe zwar mal vor 2 Jahren etwas "oberflächlich" mit AVR`s und Bascom experimentiert (IR Fernbedienung für Kamera für Timelapse Aufnahmen) aber mich nicht wirklich um I2C und EEPROMS beschäftigt. Aber das ist jetzt mal eine gute Gelegenheit da mal wieder etwas einzusteigen. Das defekte Gerät selbst ist gebraucht keine 30 EURO mehr wert, eine Reparatur würde 80 EURO kosten. Also ein schönes Bastelprojekt für mich. Ich vermute, der Prozessor wird irgendwas proprietäres vom Hersteller selbst sein, aber mal sehen was ich an Unterlagen/Schaltplänen dazu finde. Zum halten im Reset: Ich erinnere mich noch etwas dunkel an den AVR und dessen Reset Pin. Dort konnte man ja den Pin auf Masse legen für einen Reset, also active Low wenn ich mich recht erinnern kann. Schau mer mal ob das alles funktioniert :-)
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.