Forum: Mikrocontroller und Digitale Elektronik Probleme beim Auslesen eines EPROMs! HELP!


von Nisl (Gast)


Lesenswert?

Hallo ich habe folgendes Problem und komme nicht mehr weiter:

Ich habe einen TMS27C256-15 Chip den ich auslesen möchte (mittels 
Batronix BX32P). Wenn ich den Chip auslesen lasse, werden zwar Daten 
ausgelesen, jedoch nicht alle. Ich muss etwas in einer Adresszeile 
ändern, welche jedoch nicht ausgelesen wird... Wenn ich den Chip bewusst 
mit der Konfiguration TMS27C512 auslese, wird auch die dringend 
benötigte Zeile ausgelesen, jedoch kann ich den Chip dann nicht mehr 
"Brennen"...

Mein Gedankenmodell ist folgendes:
Ein 256er Chip hat den Speichplatz von 32kb. Scheinbar ließt die 
Hardware diese jedoch nicht komplett aus.
Mit einem 512er Chip bekomme ich alle Daten ausgelesen, kann diese 
jedoch nicht mehr auf den 256er Brennen...
Irgendwie muss ich dem Programm doch sagen können: Ließ nicht 100% 
sondern 200% aus...

Ich bin mit meinem Latein total am Ende...Bitte um Hilfe


Gruß Nisl

von Georg G. (df2au)


Lesenswert?

Lies mal das Handbuch zu deinem Programmer. Meist kann man angeben, was 
gelesen werden soll. In deinem Fall wäre das 0 bis 7fff.
Welche Zeile (an welcher Adresse) wird denn nicht gelesen?

von Nisl (Gast)


Lesenswert?

Hi.
ja ich stimme dir zu, eigentlich sollte der Speicherbereif bis 7FFF 
gehen, die auszulesene Zeile befindet sich aber bei: 9FF0 und die Daten 
sind definitiv auf dem Chip... aber ich schaffe es nicht den Bereich 
einzustellen/auszulesen mit der 27C256 Konfig. (Das Programm lässt nur 
bis 7FFF zu)

von hinz (Gast)


Lesenswert?

Nisl schrieb:
> die auszulesene Zeile befindet sich aber bei: 9FF0

Gibts nicht, schon mangels dem dazu nötigen Adressbit.

von holger (Gast)


Lesenswert?

>> die auszulesene Zeile befindet sich aber bei: 9FF0
>
>Gibts nicht, schon mangels dem dazu nötigen Adressbit.

Vieleicht ist das Eprom ja in die oberen 32kB gemappt.
Dann müsste man halt im Eprom selbst bei 4FF8 anfangen
zu suchen.

von hinz (Gast)


Lesenswert?

holger schrieb:
>>> die auszulesene Zeile befindet sich aber bei: 9FF0
>>
>>Gibts nicht, schon mangels dem dazu nötigen Adressbit.
>
> Vieleicht ist das Eprom ja in die oberen 32kB gemappt.
> Dann müsste man halt im Eprom selbst bei 4FF8 anfangen
> zu suchen.

Wenn, dann wohl bei 1FF0.

von holger (Gast)


Lesenswert?

>> Dann müsste man halt im Eprom selbst bei 4FF8 anfangen
>> zu suchen.
>
>Wenn, dann wohl bei 1FF0.

Ja, du hast recht. Wie bin ich nur darauf gekommen durch 2
zu teilen ;) 32kB abziehen ist logischerweise richtig.

von Route_66 H. (route_66)


Lesenswert?

holger schrieb:
> Vieleicht ist das Eprom ja in die oberen 32kB gemappt.

Oder ganz woanders hin? Oder er ist einer von zweien, die im 
Originalgerät einen 16 Bit Databus bilden. Oder, oder, oder...

von Stefan [Batronix] (Gast)


Lesenswert?

Hallo Nisl,
Wie ich sehe wurde dein Problem wahrscheinlich gelöst.
Wenn du aber weitere Fragen oder Probleme hast dann kannst du uns auch 
ohne Probleme an unsere Service Emailadresse anschreiben.
Wir versuchen dir dann so weit es uns möglich ist zu helfen.

von Andreas D. (rackandboneman)


Lesenswert?

IIRC gab es TI-Eproms die fieserweise eine subtil andere Pinbelegung 
hatten.. glaub aber nicht dass die das noch zu 27c256er Zeiten gemacht 
haben...

von Soul E. (Gast)


Lesenswert?

TMS2532 war pinkompatibel zum Masken-ROM 2332, TMS2732 zum Rest der 
Welt.

von Andreas D. (rackandboneman)


Lesenswert?

"Mit einem 512er Chip bekomme ich alle Daten ausgelesen"

So mancher 256er EPROM ist wohl ein 512er den man billiger verkauft hat 
weil irgendwo in der oberen Hälfte ein paar Bits in Mors sind ... Und 
wenn dann jemand clever war und 256er gekauft hat, als 512er gebrannt 
und beschaltet und einfach die weggeworfen hat bei denen defekte Bits an 
störenden Stellen sind?  Oder sogar einfach unkritische Daten 
(Bilder/Texte/Töne der Benutzerführung) in die obere Hälfte programmiert 
und ggf den einen oder anderen Fehler einfach in Kauf nahm?

von Georg G. (df2au)


Lesenswert?

Andy D. schrieb:
> 256er EPROM ist wohl ein 512er

Dann musst du aber beim Bonding das anpassen. Und ich glaube nicht, dass 
sich ein Hersteller die Mühe machte, da zu selektieren. Im Die Stadium 
ist das nämlich noch ein billigst Artikel.

von Soul E. (Gast)


Lesenswert?

Andy D. schrieb:

> So mancher 256er EPROM ist wohl ein 512er den man billiger verkauft hat
> weil irgendwo in der oberen Hälfte ein paar Bits in Mors sind ...

Das mag durchaus der Fall sein, trotzdem ist die defekte Hälfte für den 
Anwender unerreichbar. Die Adressleitung A15 ist nicht herausgeführt, da 
auf Pin 1 VPP liegt. Sie wird dann intern fest auf High oder Low gelegt.

Der Chip muss bereits im Design für dieses Downgrading vorgesehen sein, 
da er in der Lage sein muss, VPP entweder auf einem separaten Pad oder 
auf dem /OE-Eingang entgegenzunehmen.

von Route_66 H. (route_66)


Lesenswert?

Georg G. schrieb:
> Andy D. schrieb:
>> 256er EPROM ist wohl ein 512er

Da hat der Andy aus Unkenntnis einfach nur mal geraten. Technologisch 
wäre das Blödsinn, und kostet viel mehr als es nutzt.
Bei D-RAMs hat man das mal gemacht, und im Sinclair ZX-Spectrum 32K 
Typen verbaut die defekte 64er waren. Das waren aber andere Zeiten als 
bei 512er EPROMs

von Axel S. (a-za-z0-9)


Lesenswert?

So langsam steige ich dahinter, was dem TE hier passiert. Auf dem System 
in dem der EPROM sitzt, liegen seine gesuchten Daten bei 0x9FF0. Das 
EPROM selber geht als 32KB Typ aber nur bis 0x7FFF. Anscheinend ist es 
bei einer Startadresse != 0x0000 eingebunden, vermutlich bei 0x8000. 
Dann würden die gesuchten Daten an der EPROM-Adresse 0x9FF0 - 0x8000 = 
0x1FF0 liegen.

Das hat er aber nicht begriffen.

Statt dessen hat er dem EPROMMER gesagt, das wäre ein 27512. Der 
klappert nun auch brav 64KB durch. Der einzige Unterschied im Pinout von 
27256 und 27512 besteht darin, daß Pin 1 für den 27256 V_pp ist und für 
den 27512 ist es A15. Zum Lesen des 27256 muß V_pp=H sein. Der 27256 
liefert zwischen 0x0000 und 0x7FFF gar nix (Ausgänge floaten). Ab 0x8000 
ist A15 = V_pp = H und jetzt liefert er seine Daten auch anstandslos 
aus. Nur eben scheinbar um 0x8000 verschoben. Daß das überhaupt klappt, 
ist pures Glück.


XL

von Nisl (Gast)


Lesenswert?

Hallo Axel,
ok den Unterschied zwischen beiden Chips kannte ich noch nicht (könntest 
du das mit den V_pp=H vll noch einmal etwas "leichter" erklären :) ).

Nach deiner Logik, müsste der BX aus dem 27C256 Eprom (Eingestellt ist 
aber ein 27C512 Eprom) zwischen 0 und 7FF0 nichts liefern (Wert: FF), 
dies ist jedoch nicht der Fall (die Daten stimmen auch bis 7FF0 mit 
denen Daten der richtigen Einstellung des 27C256er Eprom mit 
27C256-Einstellung). Ab 8000 liefert er dann jedoch noch die weiteren 
Daten.

Ich hoffe ihr könnt damit etwas anfangen...

von holger (Gast)


Lesenswert?

>Ab 8000 liefert er dann jedoch noch die weiteren
>Daten.

Die dann eine Kopie der Daten von 0x0000 bis 0x7FFF sind.

Einen 27C512 zum auslesen eines 27C256 einzustellen
ist SCHWACHSINNIGER DUMPFBACKENKRAM. Du weisst nicht
was du tust. Das ist dein Problem.

von Axel S. (a-za-z0-9)


Lesenswert?

Nisl schrieb:
> Hallo Axel,
> ok den Unterschied zwischen beiden Chips kannte ich noch nicht (könntest
> du das mit den V_pp=H vll noch einmal etwas "leichter" erklären :) ).

Such dir einfach im Web ein Datenblatt für den 27x256 und eins für den 
27x512 (Hersteller egal, "x" egal). Schau dir die Pinbelegung an. Auf 
Pin 1 hat der 27512 A15. V_pp (Programmierspannung, zum Auslesen nicht 
benötigt) hat der 27512 zusammen mit /OE auf Pin 22. Bei 27256 ist Pin1 
= V_pp. Die restlichen Pins sind identisch belegt.

> Nach deiner Logik, müsste der BX aus dem 27C256 Eprom (Eingestellt ist
> aber ein 27C512 Eprom) zwischen 0 und 7FF0 nichts liefern (Wert: FF),
> dies ist jedoch nicht der Fall (die Daten stimmen auch bis 7FF0 mit
> denen Daten der richtigen Einstellung des 27C256er Eprom mit
> 27C256-Einstellung).

Tatsächlich sagen die mir zugänglichen Datenblätter für 27(C)256 nichts 
darüber aus, was passiert wenn V_pp=L. Sie sagen nur übereinstimmend, 
daß man für Lesezugriffe V_pp=H setzen soll. Möglicherweise wird V_pp ja 
komplett ignoriert, solange es nicht zum Programmieren auf 12V gesetzt 
ist.

> Ab 8000 liefert er dann jedoch noch die weiteren Daten.

Nicht "weitere". Einfach die gleichen Daten wie zwischen 0x0000 und 
0x7FFF noch ein weiteres Mal. Schau einfach mal nach. An 0x9FF0 und 
0x1FF0 sollten die gleichen Daten stehen.


XL

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
Noch kein Account? Hier anmelden.