PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Chip-ID bei 29EExxx-Chips auslesen



robert-kaiser
12.07.2004, 12:01
Hallo allerseits,

habe über ebay einen Batronix-Eprommer V3.3 erstanden, leider ohne Software.
Ich nehme mal das zum Anlaß, (noch) ein Linux-Programm dafür zu schreiben.

Das Programm klappt mit den gängigen 27cxxx-EPROMs schon ganz gut, auch ein
28F1000 hab ich schon programmieren können, aber bei einem 29EE011 bzw. 29EE010
kann ich noch nicht mal die Chip-ID auslesen. Dabei ist lt. Datenblatt die
Vorgehensweise ganz einfach: man bringt das Ding in einen speziellen Modus
indem man eine bestimmte Folge von Schreibzugriffen macht, und kann dann
Manufacturer ID und Chip ID von den Adressen 0 und 1 lesen. Der Vorgang sollte
völlig Zeit-unkritisch sein: man legt Adressen und Daten an, erzeugt einen Puls
auf /WE wobei die fallende Flanke die Adresse latchen soll und die steigende
Flanke die Daten. Für die Pulsdauer gibt das Datenblatt eine Minimal- aber
keine Maximalzeit an.

Seltsamerweise klappt das mit dem Modus-umschalten aber zum zerplatzen nicht.
Ich habe mein Programm schon unter einem Debugger durchgesteppt und dabei die
Signale auf Daten/Adreßleitungen sowie /OE und /WE mitgemessen, sieht alles OK
aus, trotzdem bleibt der Chip immer im normalen Lese-Modus, d.h. anstatt der
Manufacturer/Chip-ID lese ich immer die ersten beiden Bytes des Speichers.

Was ich schon versucht habe:

Der Vpp-Pin ist bei diesem Chip "not-connected", trotzdem habe ich
(paranoiderweise) schon mal versucht, Vpp während des Vorgangs auf 0, bzw. 5V
zu setzen. Außerdem ist mir aufgefallen, daß /OE im High-zustand gerade mal
3.3Volt hat (liegt vielleicht an meinem Druckerport), sollte aber *eigentlich*
reichen. Trotzdem habe ich mal versuchsweise den Jumper so gesetzt, daß der
/OE-pin mit Vpp verbunden ist und habe dann das /OE Signal über Vpp gesteuert.
Damit war der High-pegel dann auf immerhin 4.5 Volt. Hat aber auch nichts
gebracht.

Langsam gehen mir die Ideen aus, hat vielleicht noch jemand eine für mich?


Vielen Dank für jeden Hinweis!

Rob

robert-kaiser
14.07.2004, 10:20
[Antworte selbst auf meine Frage....]

Habe eben nochmal das Datenblatt konsultiert, und bei genauerem Lesen festgestellt, daß die Schreibzugriffe zum Umschalten des Chips in den ID-Lese-Modus wohl *doch* zeitkritisch sind: beim W29EE011 zum Beispiel dürfen von einem Schreibzugriff zum Nächsten maximal 200 Mikrosekunden vergehen. Und die Adressen, auf die man schreiben muß, sind nacheinander 5555h, 2aaah, 5555h. Mit dem Adreßzähler des 3.3er Prommers ist das nicht zu schaffen. :mad:


Auf der Batronix Prommer Website wird das Problem auch schon beschrieben, allerdings ist da von 29Fxxx Chips die Rede. Die 29EExxx Chips gehören demnach wohl auch in diese Kathegorie.

Komisch nur, daß Progstudio (das ich mangels Key nur im Demo Mode benutzen kann) den 29EE010 zu unterstützen scheint. :confused:

Rob

André Bauer
14.07.2004, 10:39
Hallo!


Komisch nur, daß Progstudio (das ich mangels Key nur im Demo Mode benutzen kann) den 29EE010 zu unterstützen scheint.
Die 29EE010 sind anders zu programmieren als die 29EE011...

Wo hast Du denn das Gerät ohne Software her? Wir verkaufen nur mit der Prog-Studio Software auf CD und einer Registrierung...

Grüße
André

robert-kaiser
14.07.2004, 11:08
Hallo!


Die 29EE010 sind anders zu programmieren als die 29EE011...


Aha, dann muß ich mir das Datenblatt nochmal genauer ansehen...

Danke für den Hinweis.



Wo hast Du denn das Gerät ohne Software her? Wir verkaufen nur mit der Prog-Studio Software auf CD und einer Registrierung...


Wie gesagt, von ebay. Die CD/Registrierung hat der Verkäufer offenbar verschlampt :mad:

Aber eigentlich sehe ich das Ganze als Hobby-Fingerübung in C++-Programierung unter Linux. Das Gerät ist ja (im Gegensatz zu vielen anderen) gut genug dokumentiert, daß man selbst Software dafür schreiben kann. Wenn was brauchbares dabei raus kommt, will ich es public Domain machen.

Rob

robert-kaiser
14.07.2004, 20:33
Aha, dann muß ich mir das Datenblatt nochmal genauer ansehen...


Hmmm, laut Datenblatt ist es beim SST29EE010 noch schlimmer, da beträgt die "Byte load cycle time" nur 100us (beim W29EE011 waren's 200us). Läßt sich dieser Chip wirklich mit dem 3.3er Eprommer programmieren? Wenn ja, wie???

Rob

André Bauer
15.07.2004, 15:34
Der einfache Eprom Brenner unterstützt nur die 29EE011... Der USB Chip Programmer unterstützt beide...

robert-kaiser
16.07.2004, 14:55
Der einfache Eprom Brenner unterstützt nur die 29EE011

Aber wie :confused:

Laut Datenblatt beträgt beim 29EE011 (genauer: Winbond W29EE011) die maximal zulässige "Byte load cycle time" (Tblc) auch nur 200 µs. Wie kann der einfache Brenner in dieser kurzen Zeit nacheinander die Adressen 5555, 2AAA, 5555 anlegen? Er müßte dazu zwischen zwei Schreibzugriffen dem Adreßzähler jeweils 21845 Zählimpulse geben, was, wenn ich mal grob 1µs pro Puls veranschlage, 20ms dauern würde.

Rob