Vergessliches EPROM

Moin!

Ein Gerät, das vor einem Monat noch lief, hat nun plötzlich und ohne ersichtlichen Grund seinen Geist aufgegeben. Die CPU (PCB80C552) ohne eingebautes ROM zappelt zwar noch wild mit ein paar Leitungen, aber sonst scheint nicht mehr viel zu passieren, nichtmal das Display wird initialisiert. Nun könnte es sein, daß sich irgendwelche Peripherie nicht mehr meldet - aber vielleicht hat auch das EPROM (ST M27C512) mit dem Programm was vergessen und die CPU dreht deshalb sinnlose Runden.

Da ich mich noch daran erinnert hatte, daß sich vergessliche EPROMs unter Umständen bei niedrigerer Spannung noch korrekt auslesen lassen, hab ich mal eben einen Adapter gebastelt, um das EPROM im Programmier- gerät mit variabler Spannung zu versorgen:

Bei 2,5V kommen noch die gleichen Daten raus wie bei 5V. Bei 2,4V ist genau ein Bit eines Bytes gekippt. Bei 2,3V kippen dann mehr...

Ich hab mal ein frisches EPROM bestellt, da ich das Original nicht überschreiben möchte. Ich würde allerdings schon gerne wissen, wie die Chancen stehen...

Kann es sein, daß der Inhalt bei 2,4V korrekt, also genau ein Bit gekippt ist, oder hätte sich dann schon knapp unter 5V was tun müssen? Es kommt ja im Prinzip drauf an, ob die Referenzspannung, mit der der Ausgang der Speicherzelle verglichen wird, irgendwie stabilisiert ist (und erst dann sinkt, wenn die Betriebsspannung schon weit runter ist) oder ob da einfach nur ein Spannungsteiler sitzt (dann hätte sich schon knapp unter 5V was tun müssen, wenn der Inhalt vor nem Monat noch korrekt war).

Gruß, Michael.

Reply to
Michael Eggert
Loading thread data ...

Kann ich nichts zu sagen, aber hast Du mal einen harten Reset direkt am Reset Pin probiert? So hatte ich hier schon etliches wieder in Gang bekommen, dass nach einem Brown-Out selbst durch staendiges Klappern mit dem Netzschalter nicht mehr aus dem Dornroeschenschlaf kam.

Die Symptome waren aehnlich. Saubere VCC, also keine tauben Elkos oder so. Tastatur reagiert nicht, Display bis auf Backlight blank, alle Clocks da, sonst kein Piepser, die CPU sitzt einfach da und roedelt irgendeine Routine ab.

Der andere Trick ist, eine eventuell vorhandene CMOS Backupbatterie kurz abzuklemmen. Das hatte auch schon Wiederbelebungseffekt.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Michael Eggertschrieb: "

Also das Datenblatt ist da recht eindeutig mit: Vcc=5V +-5% or 5V +-10%

Darunter oder darüber kann alles oder nichts passieren. Jegliche Spekulation darüber ist recht müßig und kann man auch an die Hobby-Astrologen bei 9live stellen.

Ich würd jetzt meine Zeit nicht mit sowas verschwenden, zumal 2,5V auch recht weit von 5V weg ist.

  1. Betriebsspannung kontrollieren
  2. EPROM kontrollieren (hast du schon)
  3. Controller kontrollieren (Hard-/Soft-Reset, Pins weggezogen -> Vcc bricht kurz ein -> Reset)
  4. evtl. NOP-EPROM basteln
  5. Emulator/ Logik-Analyser verwenden
  6. Debug-Messages in den Code Bauen und mitloggen

-- unvollständig

Dirk

Reply to
Dirk Ruth

Moin!

Ich gehe doch mal davon aus, daß dort mindestens ein R/C dran hängt der das beim Einschalten selbst tut. Werde ich morgen aber mal prüfen...

Gibts nicht. Ein serielles EEPROM ist da, allerdings mit unbekanntem Inhalt, könnten durchaus auch Kalibrationsdaten drin sein. :-(

Gruß, Michael.

Reply to
Michael Eggert

Moin!

Nunja, da ich den Trick mit der verringerten Spannung wohl mal hier gelesen habe, könnte sich vielleicht jemand daran erinnern, bei welcher Spannung sein EPROM wieder zu seinen alten Daten gefunden hat...

Aber vielleicht sollte ich auch einfach mal das EPROM mit reduzierter Spannung im Gerät betreiben statt es nur auszulesen, dann weiß ichs auch... Warum bin ich da nicht gleich drauf gekommen?

Ist da.

Kommen Daten raus, ob sie stimmen weiß ich nicht.

Sollte beim Start passieren, versuche ich morgen nochmal.

Inwiefern würde mir das helfen?

Achja, einen neuen Controller hab ich vorsichtshalber gleich mitbestellt, auch wenn ich den am wenigsten im Verdacht hab. (P80C552EBA als Ersatz für den PCB80C552-5-16WP laut

formatting link
ich hoffe mal der ist wirklich kompatibel)

Tja, kein Quellcode, kein Schaltplan, Hersteller gibts nicht mehr. Das Gerät enthält neben CPU und EPROM noch einen FPGA, ein serielles EEPROM (hängt nicht am FPGA, das behält sein Programm selbst), Displaycontroller,... - da kann vieles hinüber sein und solange die Kiste nach dem Start komplett im Wald steht und überhaupt nichts sagt, fällt das reverse engineering schon schwer.

Gruß, Michael.

Reply to
Michael Eggert

Ich tippe auf letzteres. Beim Programmieren mit Quickpulse-Algorithmus wird ja die Versorgungsspannung auf 6.25V oder so angehoben, um mehr Reserve zu haben - wenn das intern stabilisiert wäre und erst bei 2.5V die Referenz absackt, würde das keinen Sinn ergeben.

cu Michael

Reply to
Michael Schwingen

Leider haben viele Chip Designer und Software-Schmiede den POR/BOR vergeigt. D.h. er funktioniert normalerweise ganz gut, aber wenn die Spannung nur teilweise und kurzzeitig absackt kommt es vor, dass eine Hardware oder eine Interrupt Handler Routine nur teilweise abroedelt und sich dann heftig verkeilt. Kuhlenkampff haette gesagt "Kann passieren, sollte aber nicht".

Oha. Hoffentlich hat es das nicht ...

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Moin!

Wird die Referenz denn auch zum Programmieren benutzt?

Gruß, Michael.

Reply to
Michael Eggert

Ach so. Ich dachte, du kennst den richtigen Inhalt. Ja das erste was ich immer so mache, wenn ich z.B. mal was bei Ebay oder so erwerbe. Kiste auf und kopieren, was sich irgendwie kopieren läßt.

Nein. Ich meine, wenn irgendwo ein Schluss nach GND oder Vcc (irgend was an Peripherie defekt) an den Portpins ist, dann hatte ich schon öfters, das durch den hohen Strom die Betriebsspannung kurz um einen minimalen Betrag zusammenbrach (z.B. 4,6V TL7705), bis der Reset-Generator (intern oder extern) durchstartet und alle Ports auf Tri-State schaltet (Schluss ist weg) und der Controller wieder neu loslief, bis zur gleichen Stelle. Der Einbruch von 0,4V war auf dem Scope kaum zu sehen. Wer triggert schon so kurz unter Vcc. War zum Glück eigener Code, sonst hätte ich das nie gefunden.

Damit sieht man, ob der Controller linear durch den Adressraum läuft, also alle Adress- und Datenpins richtig funktionieren. NOP macht ja nichts, so das der Controller den nächsten Befehl abarbeitet (NOP) usw. Die Adresspins sehen dann auf dem Scope aus, wie die Ausgänge eines Dualzählers.

Ok das hatte ich falsch verstanden. Ich vermute einfach, das bei deinem EPROM was gekippt ist. Man könnte noch versuchen, externe Interrupt-Pis zu kitzeln. Der Controller müßte dann immer an die gleiche Adresse springen, wenn der Interrupt aktiviert ist.

Natürlich könnte man auch mal den Code durch einen Disassembler laufen lassen, ob der irgendwas nicht disassemblieren kann.

Und dann kann man auch noch den Code ganz analysieren, wenn einem das Gerät wirklich lieb und teuer ist.

Dirk

Reply to
Dirk Ruth

[...]

Die 8051 (zumindest die Intel Ohrijinole) sind verkappte 4bit (wie der Z80 übrigens auch) Prozessoren, deren uCode man durch schlechten Reset ordentlich aus dem Tritt bringen kann. Er macht dann alles, bloss nix

8051 ähnliches mehr. Hat micht ca. 1980 schon viele Stunden gekostet. Die Reset Schaltung intern ist unter aller Sau! Wenn der einmal flasch spinnt, hilft nur noch ausschalten!

Den Z80 konnte man auch beleidigen...

WIMRE: Braucht man beim 8051 nicht, alles high = FF = MOV R7,A der klappert dann alle Adressen durch, da er überall den FF findet... Dann kann man einfach mit einem Logik-Stift gucken, ob alle ADR Leitungen klappern. Kannst auch eine Oszi dazu nehmen.

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
Wolfgang Allinger   Paraguay             reply Adresse gesetzt !
ca. 15h00..21h00 MEZ  SKYPE:wolfgang.allinger
Reply to
Wolfgang Allinger

Michael Eggert schrieb:

Das halte ich für ein Gerücht. Was ich jedoch öfters erlebt habe ist, daß matschige EPROMs sich noch *langsam* auslesen lassen. D.h. im CPU-Zugriff mit ein paar MHz kommen falsche Daten, im EPROMmer mit deutlich übertriebenen Setup- und Holdzeiten klappt's aber.

Das heißt für Dich, es kann sein, daß Dein EPROMmer die richtigen Daten ausliest. Nur die CPU bekommt was anders zu sehen. Daher würde ich als erstes eine 1:1-Kopie des normal ausgelesenen EPROMs probieren.

Patrick

Reply to
Patrick Schaefer

Dirk Ruth schrieb:

Hobby? Die bekommen dafür Geld!

Gruß Dieter

Reply to
Dieter Wiedmann

Dieter Wiedmann schrieb:

Von mir nicht :)

Bernd

Reply to
Bernd Laengerich

Sicher - zumindest bei den EPROMs, wo Vpp gepulst wird, geht es ja nicht anders, das Rücklesen während des Programmierens sieht für das EPROM wie ein normaler Lesezugriff aus, und der Prommer brät solange Pulse rein, bis der rückgelesene Wert stimmt (+evtl. Reserve).

Ich denke nicht, daß die EPROMs, wo mit anliegendem Vpp verglichen wird, das anders machen.

Ansonsten wäre das Anheben von Vcc bei Quickpulse auch irgendwie sinnlos.

cu Michael

Reply to
Michael Schwingen

Michael Eggert schrieb:

Ich hab noch irgendwo einen Zwischensockel mit 1N4148 in der Vcc liegen, der mir mindestens einmal bei einem vergeßlichen EPROM gute Dienste geleistet hat.

Hanno

Reply to
Hanno Foest

Moin!

So wollte ich das auch erst machen, hab mich dann aber für einen Zwischensockel mit externer Versorgung (und Kondensator) entschieden.

Das spricht dann wohl leider auch dafür, daß sich nicht erst

Reply to
Michael Eggert

Moin!

Nein. Die CPU kommt erst garnicht so weit, auch nur einmal an dessen SCK-Pin zu wackeln.

Gruß, Michael.

Reply to
Michael Eggert

Mahlzeit!

So, an dem "verlorenen" Bit lag es offensichtlich nicht, und auch der bei 5V im Prommer ausgelesene Inhalt tuts nicht. Es ist mal wieder - wie könnte es anders sein - viel schlimmer.

Die ausgelesenen Daten sind nämlich durchgehend jedes 128. Byte (Adressen *7F und *FF) glatt FF. Kopierschutz :-)? Adressdecoder kaputt? Eine ganze Spalte tot?

Das wars dann wohl... Hat jemand eine Idee, wie sowas passieren kann?

Gruß, Michael.

Reply to
Michael Eggert

Wenn es nur das eine EPROM ist, dann ist vielleicht der Bond-Draht abgerissen oder abgegammelt. Muesste sich mit einer kurzen Kapazitaetsmessung in stromlosem Zustand rausfinden lassen, Vergleich dieses Adress-Pins mit einem anderen. Manchmal sieht man es auch im eingebauten Zustand mit einem Scope an den Signalen vom uC, wenn die Flanken auf diesem einen Adress-Pin steiler sind als an allen anderen.

Falls dem so ist und der Inhalt unbedingt ausgelesen werden muss, bleibt nur vorsichtiges Aufmeisseln oder so. Zumindest frueher gab es Laeden, die das profimaessig machten. Du koenntest auch versuchen, ob das EPROM durch Torsion oder anderen mechanischen Stress zu ueberzeugen ist, den Inhalt noch ein einziges Mal preiszugeben.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Moin!

Welcher? Es kommt FF raus, wenn A0 bis A6 _alle_ 1 sind. Also Adresse = ????????????1111111 binär.

Und damit bekomm ich den _internen_ Adressdecoder wieder dazu, Spalte

128 anzusteuern?

Gruß, Michael.

Reply to
Michael Eggert

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.