Forum: Mikrocontroller und Digitale Elektronik S29GL064N mit TL866A und Adapter auslesen


von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Moin,

ich habe hier das Problem das ich einen Spansion (nun Cypress) S29GL064N 
Flash auslesen und beschreiben möchte.
Dieser hat ein TSOP56 Gehäuse und kann nicht direkt in den Programmer 
eingesteckt werden (ZIF40 DIL Sockel). Interessanterweise kann man ihn 
aber in der Chipliste auswählen, jedoch nur als TSOP48.
Dafür ist von Autoelectric ein Adapter vorgesehen, welchen ich mir 
zugelegt habe (siehe Bild)

Der hat zusätzliche Lateches drauf. Auf die beiden Pfostenleisten wird 
dann ein passender Gehäuseadapter gesteckt. Die beiligenden sind für 
mich aber alle unbrauchbar. Es gibt zwar einen SOP56 aber da könnte ich 
meinen Chip nichtmal drauflöten, weil der TSOP56 viel breiter ist. 
Weiterhin kann das Pinout meiner Meinung nach nicht stimmen, weil auf 
dem SOP56 Adapter für die Funktion wesentliche Pins garnicht beschaltet 
sind. Ist vielleicht für andere Chips gedacht?!

Jedenfalls habe ich noch einen TSOP56 ZIF-Sockel mit Pfostenleisten und 
hätte die Idee gehabt die mit Dupont-Wires zum Adapter zu verbinden. Ich 
finde jedoch nirgends ein Pinout für den o.g. Latch-Adapter und seine 
beiden doppelreihigen Pfostenleisten. Damit wüsste ich auch nicht welche 
Pins des Flash ich mit welchen des Adapters verbinden müsste. Da der 
TL866 universell ist und seine Pins keine feste Funktion haben (sprich, 
sie richten sich nach dem gewählten Chip in der Software) müsste ich ja 
wissen welchen Pin die Software wie anspricht und wo dieser am Adapter 
zu finden ist.

Für mich aktuell ein großes Fragezeichen, da ich keinerlei Unterlagen 
finden kann.

von A. B. (Gast)


Lesenswert?

Das sieht schlecht aus :-(

Man könnte natürlich so etwas wie
https://www.aliexpress.com/item/ECU-TSOP56-Programming-Socket-Pitch-0-5mm-Chip-Size-14x18mm-Open-Top-IC-Test-Socket-Flash/32841581520.html
nehmen, da sind alle Pins auf Pfostenleisten und dann über 
Lochrasterplatine auf Pfostenbuchsen usw.

Mit etwas Pech wird es dann aber mit der Original-Software (vom TL866) 
trotzdem nicht funktionieren: Die TSOP48- gibt's scheinbar nur als 03, 
04, 06, 07, V6, V7, die TSOP56-Variante nur als 01, 02, V1, V2. 
"Freundlicherweise" haben die aber unterschiedliche IDs, wenn die 
Software also pingelig (nicht abwegig, da auf dem Adapter oben auch ein 
"Kopierschutz" drauf sitzt) ist ...

von Olli Z. (z80freak)


Lesenswert?

A. B. schrieb:
> Das sieht schlecht aus :-(
Nciht sehr erbauend...

> Man könnte natürlich so etwas wie
> 
https://www.aliexpress.com/item/ECU-TSOP56-Programming-Socket-Pitch-0-5mm-Chip-Size-14x18mm-Open-Top-IC-Test-Socket-Flash/32841581520.html
> nehmen, da sind alle Pins auf Pfostenleisten und dann über
> Lochrasterplatine auf Pfostenbuchsen usw.
Ja, die Teile dafür habe ich ja bereits und das war ja auch mein Plan 
:-)
Aber ohne Pinout vom Programmer, bzw. dem Adapter mit den zusätzlichen 
ICs drauf weiss ich ja nicht welche Leitungen wo hin müssen. Genau das 
ist ja mein Dillema!

Ich könnte bestenfalls einen 48-poligen Flash kaufen und schauen ob sich 
der mit dem Adapter problemlos lesen lässt. Wenn ja, dann könnte ich die 
Signale dieses Flash auf den Pfostenleisten des Adapters "durchklingeln" 
und dann auf meinen Chip transponieren.

> "Freundlicherweise" haben die aber unterschiedliche IDs, wenn die
Das ließe sich wohl noch übergehen, wenn man den ID-Check Haken bei der 
TL866-Programmiersoftware raus macht.

> Software also pingelig (nicht abwegig, da auf dem Adapter oben auch ein
> "Kopierschutz" drauf sitzt) ist ...
??? Gegen welches kopieren und wozu? Hey, das ist China-Ware, die halten 
sich doch nicht an Standards ;-)

Möglichweise unterscheiden sich die Chips aber nicht nur im 
Package-Layout und der ID sondern auch im Protokoll?!

Meine einzige Alternative im Moment wäre noch ein Arduino Due. Der hat 
3.3V IO, was der S29GL064 wohl noch mitmacht und genügen Ports für 
Adress-, Daten- und Signalleitungen. Aber eigentlich wollte ich nicht 
alles selbst entwickeln...

von Falk B. (falk)


Lesenswert?

@ Olli Z. (z80freak)

>ich habe hier das Problem das ich einen Spansion (nun Cypress) S29GL064N
>Flash auslesen und beschreiben möchte.

Auslesen ist einfach, schreiben schon aufwändiger.

>Dieser hat ein TSOP56 Gehäuse und kann nicht direkt in den Programmer
>eingesteckt werden (ZIF40 DIL Sockel).

Was für ein Programmer?

> Interessanterweise kann man ihn
>aber in der Chipliste auswählen, jedoch nur als TSOP48.

Das sollte egal sein. Der IC ist ja identisch, bestenfalls sind ein paar 
Signale nicht herausgeführt.

>Dafür ist von Autoelectric ein Adapter vorgesehen, welchen ich mir
>zugelegt habe (siehe Bild)

Und wo kommt dort der Flash hin?

>Der hat zusätzliche Lateches drauf. Auf die beiden Pfostenleisten wird
>dann ein passender Gehäuseadapter gesteckt.

Aha.

>sind. Ist vielleicht für andere Chips gedacht?!

Sieht so aus.

>wissen welchen Pin die Software wie anspricht und wo dieser am Adapter
>zu finden ist.

In der Tat. Nimm doch einfach das Pinout von diesem IC im TSOP48 
Gehäuse, das sollte dann passen.

von A. B. (Gast)


Lesenswert?

Olli Z. schrieb:
> Ich könnte bestenfalls einen 48-poligen Flash kaufen und schauen ob sich
> der mit dem Adapter problemlos lesen lässt. Wenn ja, dann könnte ich die
> Signale dieses Flash auf den Pfostenleisten des Adapters "durchklingeln"
> und dann auf meinen Chip transponieren.

Wozu den Flash kaufen? War der TSOP48-Adapter nicht dabei? Wenn nicht, 
wäre das eher eine Investion in die Zukunft ;-) Das durchklingeln kann 
man doch damit machen.

> ??? Gegen welches kopieren und wozu? Hey, das ist China-Ware, die halten
> sich doch nicht an Standards ;-)

Der 8-Beiner ist vermutlich ein PIC oder AVR. Naja, den Adapter kann man 
so teuer verkaufen. Sonst könnte ja jeder mit 'nem ZIF-Sockel mal 
schnell ...

> Möglichweise unterscheiden sich die Chips aber nicht nur im
> Package-Layout und der ID sondern auch im Protokoll?!

Lt. Datenblatt unterscheiden sich die Varianten haupts. hinsichtlich der 
Sektorstruktur (Schreibschutz), das sollte erstmal egal sein.

Wenn das Deaktivieren des ID-Check tatsächlich klappt, kein Problem. Ich 
habe selbst nur die Linux-Variante, daher kann ich dazu nichts sagen.

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Ich komm einfach nur von einem Problem ins nächste. Ich habe nun 
erstmalig den XinGong TSOP48 Latch-Adapter zusammen mit dem TSOP48 
ZIF-Sockel getestet. Als Proband dient mir ein fabrikneuer 
S29GL064N90TFI04 Chip. Im Gegensatz zu dem Chip den ich auslesen möchte 
(ein S29GL064A90TFAR2), hat dieser nur 48 Pins und entspricht dem Model 
04 (V4). Mein anderer hat 56 Pins und Model 02 (V2). Die TSOP56 gibt es 
nur für Model 01 und 02. Bei den TSOP48 gibt es Model 03, 04 (da sind 
die Pins 1:1 kompatibel mit dem vom TSOP56) und Model 06, 07 (da sind 
die Pins etwas anders).

Nungut, den Chip selbst konnte ich im MiniPro v6.70 auswählen, aber er 
meckerte direkt die Chip-ID an. Die war immer wieder anders. Dann habe 
ich den Chip "erased". Im Endeffekt sind jetzt alles Bytes auf 0xFF. 
Danach war die Chip-ID plötzlich auch 0x0001227E und der MiniPro war 
beim erneuten lesen zufrieden.

Hmmm, ist denn die Chip-ID vom Hersteller fest vorgegeben? Oder wird die 
beim programmieren auf einen beliebigen Wert gestellt? Bei letzterem 
würde es doch mit "Check ID" aktiviert gar keinen Sinn machen diesen 
Wert zu prüfen.

Naja, jedenfalls war ich wohl in der Lage den Flash zu lesen und zu 
beschreiben, was wohl bedeutet das der Adapter als solches funktioniert.

Dann habe ich die Pins vom oberen ZIF-Adapter durchgemessen und 
festgestellt das die so an den Pfostensteckern verbunden sind:
1
 1   2       48  47
2
 3   4       46  45
3
 5   6       44  43
4
 7   8       42  41
5
 9  10       40  39
6
11  12       38  37
7
13  14       36  35
8
15  16       34  33
9
17  18       32  31
10
19  20       30  29
11
21  22       28  27
12
23  24       26  25

Dann habe ich mittels Dupon-Wires die Pins von meinem TSOP56 Adapter zu 
den entsprechenden Pins auf dem Pfostenstecker des Latch-Adapter-Platine 
verbunden.

Der Einzige Pin der übrig blieb war "Vio". Diesen gibt es bei der TSOP48 
Variante nicht. Laut Datenblatt ist das ein Eingang und soll niedriger 
als die Betriebsspannung sein. Er treibt wohl die Buffer-Stufe der 
Daten. Ich habe diesen zusammen mit Vcc auf 3.3V gelegt.

Beim auslesen erhalte ich dann als ID immer nur 0xFFFF FFFF und auch 
sonst ist der Inhalt den ich lese eher Schmarrn (eine zufällige 
Aneinanderreihung von nur diesen Bytewerten: 0xFF, 0xFE, 0x7E)

: Bearbeitet durch User
von A. B. (Gast)


Lesenswert?

Die ID ist natürlich fest einprogrammiert. Wenn das Auslesen der ID 
schon nicht zuverlässig klappt, geht sonst wahrscheinlich auch nichts.

Fürs Auslesen der ID sind fast alle Adressleitungen irrelvant, also 
sollte man die paar restlichen Adressleitungen und CE, OE, WE noch mal 
sorgfältigst kontrollieren. Diese Jumper-Kabel sind ohnehin keine gute 
Idee. Wieviele von den 56(!!!) sind 100%-ig zuverlässig? Und unnötig 
lang sowieso.

Außerdem sind Abblock-Kondensatoren umittelbar am Chip dringendst nötig.
ZIF-Sockel, Adapterplatine, noch ein Adapter, Kabel, ... das alles 
zusammen
ist schon kritisch.

100nF und zusätzlich 10uF oder so mit kürzest möglichen Leitungen zum 
Chip,
auf der Unterseite des ZIF-Sockels. Die Stromaufnahme steigt beim 
Selektieren von ein paar uA auf ein paar Dutzend mA in ein paar ns. Das 
gibt mit Leitungsinduktivität ...
Gerade das "mal so, mal so" spricht für so ein Problem.

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Ich will und kann das nicht bestreiten was Du sagst, A.B. der Aufbau ist 
schon abenteuerlich :-) Aber wie will ich es sonst machen? Hab schon die 
kürzesten Duponts genommen die ich finden und handeln konnte.

Und natürlich hatte ich einen Fehler drin und zwar hab ich angenommen 
das der Flash-Reader den BYTE-Modus nutzt und nur die DQ0-DQ7 verbunden. 
Erst nachdem ich die DQ8-DQ15 noch aufgelegt hatte, klappte es dann 
auch. Keine Ahnung wie ich auf die Schnappsidee mit dem 8-Bit Interface 
gekommen bin...

Der Witz ist aber, das mit dem Adapter (rechts im Bild) das Ergebnis 
ebenso sprunghaft war und das nach einigen malen das Ergebnis dann 
stabil blieb.

Ich habe damit mal zwei runtergelötete TSOP56 Flashes ausgelesen und das 
Ergebnis sieht einigermaßen stimmig aus (siehe Screenshot). Ich habe 
einen Flash der anscheinend molo ist, denn ab einigen KB ändern sich bei 
jedem auslesen die Bytewerte. Ein anderer Flash zeigt dieses Verhalten 
nicht, da bleibt das ausgelesene Image konstant gleich, egal wie oft ich 
es wiederhole.

Eine weiter Frage zur Device-ID (Chip-ID). Diese wird im MiniPro als 
"4746 414D" ausgegeben. Laut Jedec-Standard und Datenblatt ist die aber 
doch nur 2 Byte...

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Nur versuchsweise habe ich mal den Extra-Pin "Vio" entfernt und es macht 
keinen Unterschied. Wozu auch immer der dienen mag, anscheinend gibt es 
einen internen Bypass oder er wird nur genutzt, wenn auch ein 
Spannungspegel angelegt wird.

von Olli Z. (z80freak)


Lesenswert?

Leider habe ich die falschen Ersatz-Flash-Chips bestellt. Anstelle 
S29GL064A90TFAR1 (Model 01, TSOP56) habe ich S29GL64N90TFIR4 (Model 04, 
TSOP48) bekommen.

Grundsätzlich müsste das aber doch egal sein, weil von den 8 
zusätzlichen Pins ist nur der Vio beschaltet und den hat das TFI04 
(Model 04) einfach nicht. Von der internen Organisation und dem CFI 
sollte das doch gleich sein?!

Habe auch schonmal versucht den Chip zu beschreiben, was aber leider in 
einer Fehlermeldung endete. So das erste Drittel (bis fast zu Hälfte) 
schreibt er problemlos und dann gibt es immer einen Fehler. Sind 
Pfuschneue Flashes. Vor dem programmieren macht er ein ERASE (alles mit 
0xFF beschreiben). Diesen hab ich auch mal alleine gemacht und 
zurückgelesen, das klappt scheinbar. Nur das programmieren mit echten 
Daten geht in die Hose.

Grrrr...

Meine Idee war den TSOP48 Chip mit den Daten des funktionierenden TSOP56 
zu beschreiben und auf das Board zu löten auf dem ich den defekten Chip 
gefunden hab.

von Stephan (Gast)


Lesenswert?

naja mit FF zu testen ist natürlich etwas ungeschickt. Offene Leitungen 
sind ja auch FF. Wenn dann würde ich mit Bitmustern testen. 01 02 03.... 
11 22 33 etc. Damit wird am schnellsten klar ob ein Bit oder sonst was 
klemmt. Das er mitten drin abbricht kommt mir vor wie falsche Größe, 
Pufferfehler , Softwaremacke oder Adressleitung nicht i.O. Du musst 
systematisch testen.

von Stephan (Gast)


Lesenswert?

Die Vio ist die Vcc für die Buffer am Ein/ Ausgang. Damit läßt sich die 
Spannung zur MCU in Grenzen anpassen. Wie ein Pegelwandler. Die wird 
gebraucht !

von Olli Z. (z80freak)


Lesenswert?

Stephan schrieb:
> Die Vio ist die Vcc für die Buffer am Ein/ Ausgang. Damit läßt sich die
> Spannung zur MCU in Grenzen anpassen. Wie ein Pegelwandler. Die wird
> gebraucht !

Ich würde Dir zustimmen. Interessanterweise funktioniert es ohne genauso 
gut :-) Laut Datenblatt soll die hier angelegte Spannung niedriger als 
Vcc sein. Auf dem Board von dem ich es runtergelötet hab ist der Pin 
aber direkt mit Vcc verbunden.

von Olli Z. (z80freak)


Lesenswert?

Stephan schrieb:
> naja mit FF zu testen ist natürlich etwas ungeschickt. Offene Leitungen
> sind ja auch FF. Wenn dann würde ich mit Bitmustern testen. 01 02 03....
> 11 22 33 etc. Damit wird am schnellsten klar ob ein Bit oder sonst was
> klemmt. Das er mitten drin abbricht kommt mir vor wie falsche Größe,
> Pufferfehler , Softwaremacke oder Adressleitung nicht i.O. Du musst
> systematisch testen.

Hab jetzt mal mein "Kabelkonstrukt" wieder vom Latch-Adapter entfernt 
und den TSOP48-Sockel direkt aufgesteckt. Und siehe da, der 48-Pin 
S29GL064 lässt sich auf anhieb und ohne Probleme flashen. Es liegt also 
scheinbar wirklich an den langen Leitungen oder Steckverbindern. Ich 
werde mir also wohl oder übel ein PCB für den TSOP56-ZIF-Sockel 
erstellen müssen :-/
Dabei würde ich gleich noch Kondensatoren zum blocken und puffern 
vorsehen.

von Olli Z. (z80freak)


Lesenswert?

Habe ein 24pol Flachbandkabel mit zwei aufgequetschten Pfostensteckern 
inzwei geschnitten, die enden abisoliert und an einen 
TSOP56-Adapter-Platine direkt angelötet. Die Leitungen sind jetzt ca. 
5cm lang. Klappt einwandfrei. Hab zigmal gelesen und geschrieben und 
nachher verglichen, passte immer!

Nachdem ich nun TSOP48 und TSOP56 lesen und schreiben kann habe ich 
versucht einen der falsch bestellten TSOP48 Chips, mit dem Inhalt des 
Original-Flash bestückt auf das Grafikboard zu löten. Dabei habe ich 
einfach die NC-Pins weggelassen. Hat leider nicht geklappt, das Board 
startet nicht.

Der Original-Chip hat die Bezeichnung S29GL064A90TFAR2 (TSOP56) und der 
andere S29GL064N90TFI04 (TSOP48). Von den Pins her hat der TSOP56 noch 
ein Signal mehr an den äußeren Pins, nämlich Vio. Das wird beim Betrieb 
mit 3,3V versorgt. Diesen Pin hat das TSOP48 Gehäuse nicht, also werden 
die Buffer intern versorgt, oder mit Vcc.

Interessant finde ich, das Vcc über einen Widerstand vom Cyclone kommt 
und eine Messung vom Oszi zeigt reges Treiben. Hier hätte ich eher eine 
konstante Spannung erwartet. Es ist fast so, als würde das System den 
Flash "nur bei Bedarf" mit Strom versorgen. Das hierfür ein Cyclone-Pin 
über einen 33 Ohm Widerstand ausreicht... nunja. Hab zuerst an eine 
Verwechslung mit einer Adress/Datenleitung geglaubt, aber das stimmt 
alles.
Vio hingegen ist konstant.

Evtl. liegt es aber auch an den Unterschieden beim Flash selbst?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Olli Z. schrieb:
> Hab zuerst an eine
> Verwechslung mit einer Adress/Datenleitung geglaubt, aber das stimmt
> alles.
> Vio hingegen ist konstant.

An eine Verwechslung glaub' ich da aber doch sehr stark. Das klingt 
alles nach sehr unwahrscheinlichem Schaltungsdesign.

Gruss
WK

von Olli Z. (z80freak)



Lesenswert?

Hallo WK! :-)

habe hier mal ein paar Bilder beigefügt. Das erste zeigt das Board mit 
den noch eingelöteten TSOP56 Flash (der Cyclone ist schon runter). Gut 
zu erkennen, Pin 1, rechts unten.

Das zweite zeigt das Pinout des SG29GL064 (richtig gedreht, damit man 
gleich 1:1 zuordnen kann) und das dritte mein Reengineering-Bild auf dem 
ich die Leiterbahnen nachgezogen habe (rot) und die nicht sichtbaren als 
Verbindungen (blau).

Ich mach nochmal ein Bild vom Vio Pegel, dazu muss ich den Chip nur 
wieder einlöten. Ach das nervt die ewige hin- und herlöterei. Schade das 
es dafür keine passenden ZIF-Sockel gibt die man auch per Hand auf die 
Pads löten kann...

Das Problem beim auslesen des TSOP56 ist noch, das es GENAU diesen Chip 
im MiniPro nicht zu Auswahl gibt, selbst den im TSOP48 Gehäuse, also den 
S29GL064A90TFAR2 (das "2" ist wohl entscheident!? Und evtl. doch das 
Vio, was ich in meinem Adapter ja nicht beschalte). Ich habe nur die 
Modelle 3-x.

Keine Ahnung ob die von den CFI-Befehlen her auch unterschiedlich 
sind...

: Bearbeitet durch User
von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Hier noch die Bilder von meinem zweiten selbstbau TSOP56-Adapter. Einen 
Schönheitspreis bekomme ich dafür sicher nicht ;-) Dürfte aber schon ein 
vielfaches besser sein als die vorherige Lösung mit einzelnen 
Dupon-Wires.
Zudem habe ich den 100nF Abblock-Kondensator direkt auf der Unterseite 
des Adapterboards an Vss und Vcc gelötet. Den Puffer-Elko von 100uF oben 
zwischen Vss und Vio/Vcc. Vio habe ich nun einfach vom Vcc abgegriffen.

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.