Forum: Mikrocontroller und Digitale Elektronik Flash EEprom löschen


von Paul Baumann (Gast)


Lesenswert?

Hallo
Ich habe mir ein Programmiergerät für Eproms und Flash-Eproms gebaut.
Das funktioniert auch für für "normale" Eproms (2764 u.s.w.)
Ich kann Flash EEproms, die aus alten Mainboards stammen auch einlesen, 
aber ich kann sie nicht löschen.:-(
Nun habe ich festgestellt, daß die Kommandosequenzen zum Chip-Erase für 
fast alle Typen, die ich hier habe gleich sind. Als Beispiel habe ich
den 29F002 "eingespannt". Hier ist nur das Stück Code, was den Chip 
löschen soll:


Chiperase: 
'Löschroutine

'****Sector unprotect
Reset Ce
Reset Oe
Set We
Adresse = &H202
Daten = &H00
Gosub Writef


'****Unlock Kommando

Adresse = &H240
Daten = &H00
'Reset Ce
'Set Oe
'Reset We
Gosub Writef


'****Nochmal Unlock

Adresse = &H240
Daten = &H00
'Reset Ce
'Set Oe
'Reset We
Gosub Writef

'*****SET UP Kommando

Adresse = &H555
Daten = &HAA
Gosub Writef

Adresse = &H2AA
Daten = &H55
Gosub Writef

Adresse = &H555
Daten = &H80
Gosub Writef


'****Nochmal Unlock

Adresse = &H240
Daten = &H00
'Reset Ce
'Set Oe
'Reset We
Gosub Writef


'****Nochmal Unlock

Adresse = &H240
Daten = &H00
'Reset Ce
'Set Oe
'Reset We
Gosub Writef



'****Erase Kommando
Adresse = &H555
Daten = &HAA
Gosub Writef

Adresse = &H2AA
Daten = &H55
Gosub Writef

Adresse = &H555
Daten = &H80
Gosub Writef

Adresse = &H555
Daten = &HAA
Gosub Writef

Adresse = &H2AA
Daten = &H55
Gosub Writef

Adresse = &H555
Daten = &H10
Gosub Writef

For Adresse = 0 To 65535
Do
Gosub Readf
'Daten = 255   'Zum Simulieren von gelöschten Daten
Loop Until Daten = 255
Print Adresse ; Daten
Next

Return



Writef:
Gosub Setadress
Config Porta = Output
Waitus 10
Porta = Daten
Waitus 10
Set Oe
Reset We
Waitus 10
Set We
Waitus 10
Config Porta = Input
'Porta = &B11111111
Return

Obwohl ich mich nach dem Datenblatt gerichtet habe, scheint die Abfolge 
der
Befehle nicht zu stimmen. Ich bin leider des Englischen nicht mächtig 
und
habe wahrscheinlich etwas übersehen. :-o

Ratlos Paul

von Michael U. (Gast)


Lesenswert?

Hallo,

ich habe mal in den ASM-Code des Eprommers von
http://s-huehn.de/elektronik/epromprog/epromprog.htm
reingeschaut.

Er schickt für den 29F010 und 29F040:
Adresse - Daten
0x0555 - 0xAA
0x02AA - 0x55
0x0555 - 0x80
0x0555 - 0xAA
0x02AA - 0x55
0x0555 - 0x10

anschließend wartet er, bis der Flash sich fertig meldet.

Laut Datenblatt sieht es beim 29F002 eigentlich genauso aus?

Vielleicht hilft es Dir ja.

Gruß aus Berlin
Michael

von Peter D. (peda)


Lesenswert?

Stimmen denn die Spannungen laut Datenblatt ?

Ältere Flash brauchten noch 12V zum Proggen.


Peter

von Paul Baumann (Gast)


Lesenswert?

Ich habe den Programmer von Scott Falk Hühn nachgebaut und er 
funktioniert mit den dort angegebenen Typen tadellos.
Ich habe hier aber noch viele andere Flash´s, die ich aus alten 
Mainboards geerntet habe. Z.B.
49F002
39F20
29EE010
29EE011
29F002
29C51002
29C020
Die lassen sich alle nicht löschen, obwohl die Löschroutine die gleiche
wie beim 29F040 ist.
Da ich mit Assembler nicht so gut zurecht komme, habe ich ein 
Bascom-Programm für das Gerät von Scott geschrieben, was auch 
funktioniert.
Nun geht es mir darum, eine Sequenz zu haben, die vor dem eigentlichen
Chip-Erase Kommando gesendet werden muß, um die Dinger zu "entlocken".

Deshalb habe ich auch nur den Teil des Programmes gesandt, der die 
Löschprozedur enthält.

MfG Paul

von Peter D. (peda)


Lesenswert?

Paul Baumann wrote:

> 49F002
> 39F20
> 29EE010
> 29EE011
> 29F002
> 29C51002
> 29C020


Das sind alles nur halbe Bezeichnungen, damit kann keiner was anfangen.

Nimm die komplette Bezeichnung, lade Dir das Datenblatt runter und dann 
schau nach, wie die gelöscht werden bzw. ob sie dazu 12V brauchen.


Peter

von Paul Baumann (Gast)


Lesenswert?

@Peter
Geniale Idee. ;-)
Das habe ich schon längst getan, nur schrieb ich schon weiter oben, daß 
ich
mit dem Algorithmus für das "Entschützen" nicht klar komme. Ich habe es 
bei
den Typen, die 12 Volt vertragen auch schon damit versucht. Erfolg:dito.

von Peter D. (peda)


Lesenswert?

Und wie soll Dir jemand helfen, wenn Du die Typen nicht nennst ?

Es kommt dabei wirklich auf jeden Buchstaben an und natürlich auf den 
richtigen Hersteller.

Von 12V vertragen war nie die Rede, sondern von 12V benötigen.


Peter

von Paul Baumann (Gast)


Lesenswert?

Also gut, hier noch einmal in voller Pracht:
W29C020-90    Winbond
W49F002U      Winbond
EN29F002NT    EON
PH29EE010     SST
39SF020       MPF
W29EE011      Winbond
AE29F1008     ASD
MX28F1000PPC  Maxim?
V29C51002T    ?

Die Datenblätter stammen alle von:
http://www.alldatasheet.com/

Es gibt hierbei welche, die mit 12 Volt programmiert werden können,
aber nicht müssen. Wenn sie mit 12 Volt (kommen so wie ich miche 
erinnere
an Adressanschluß A6 und A9) programmiert wurden, lassen sie sich auch 
nur mit Hochspannung "entschützen". Wurden sie als neue Chips nur mit 
TTL-Pegel
bearbeitet, so lassen sie sich auch damit wieder löschen.

von Sigma N. (Gast)


Lesenswert?

Da hat der große Meister nun alle Angaben und kann auch nicht helfen.
LACH
@Paul
Ich habe irgendwo gelesen, daß jemand im laufenden Betrieb den BIOS-Chip
seines PC herausgezogen und gegen den leeren Chip getauscht hat. Dann 
konnte er das mit dem Bios-Flashprogramm neu bespielen.

Sigma N.

von Peter D. (peda)


Lesenswert?

Sigma N. wrote:
> Da hat der große Meister nun alle Angaben und kann auch nicht helfen.
> *LACH*

Es ging mir nur darum, das ja vielleicht jemand die Chips schon benutzt 
hat und dazu muß man schon wissen, um welche es überhaupt geht.


Ich habe z.B. den AT29C020 benutzt, aber hier geht es ja um den W29C020.

Der AT29C020 kann jedenfalls den Bootlock nicht rücksetzen und auch ein 
Full-Erase geht nicht mehr. Nur die anderen Blöcke lassen sich einzeln 
löschen und beschreiben.

Wie das nun beim W29C020 ist, weiß ich natürlich nicht.


Peter

P.S.:
Ein Bootlock wäre ja auch relativ sinnfrei, wenn er sich rücksetzen 
ließe.

von Sigma N. (Gast)


Lesenswert?

@Peter
Im Datenblatt des AT29C020 sehe ich auf Seite 10 rechts den Ablaufplan 
für
das Löschen des Bootblocks.....
Der W29C020 hat bei allen Aktionen die gleichen Befehlsfolgen wie der 
AT29C020.

@Paul
Wo nimmst Du Deine Unlock-Befehlsfolgen her? Die stimmen so nicht.

Sigma N.

von Paul Baujmann (Gast)


Lesenswert?

@Sigma
Der Code oben ist für einen 29F002. Da ist es wieder anders. Ich habe 
jetzt
mal die Sequenz aus dem Datenblatt des AT29C020 auf eben diesem 
getestet.
--->funktioniert nur bei fabrikneuen :-(
Ich werfe den Mist in die Tonne und nehme werksneue, die gehen prima zu 
beschreiben und auch wieder zu löschen.

MfG Paul

von Sebastian Heyn (Gast)


Lesenswert?

Der code kommt mir irgendwie bekannt vor. Komisch

kannst du mit einem neuen COntroller mal testen, ob das schreiben 
überhaupt funktioniert? Es brauch nur eine adressleitung zu fehlen zb 
und schon funzt das nicht mehr

von Sebastian Heyn (Gast)


Lesenswert?

BTW das löschen mit meiner check-routine dauert ca 20sekunden bei mir 
(f040)

von Sebastian Heyn (Gast)


Lesenswert?

achso hattest du ja schon geschrieben duck und weg

von Paul Baumann (Gast)


Lesenswert?

@Sebastian
Ja, ich habe einen großen Teil Deines Codes verwandt und ihn auf die 
Schaltung von S.Hühn angepaßt. (Bitte nicht hauen :-))
Das funktioniert auch mit werksneuen Schaltkreisen. Aber eben mit 
solchen
nicht, die den Bootblock "festgeklemmt" haben.
Jetzt versuche ich verzweifelt, den Bootblock zu "entlocken", um diese
alten BIOS EEproms zu leeren und neu zu bespielen.

MfG Paul

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.