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
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
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
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
@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.
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
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.
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.
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.
@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.
@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
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
@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