www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash EEprom löschen


Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmen denn die Spannungen laut Datenblatt ?

Ältere Flash brauchten noch 12V zum Proggen.


Peter

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sigma N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sigma N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Paul Baujmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Heyn (Gast)
Datum:

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

Autor: Sebastian Heyn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso hattest du ja schon geschrieben duck und weg

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.