hed.chip
programmiert EPROMs von 8 kByte bis 512 kByte sowie EEPROMs und
FLASH-PEROM von 0.5kByte bis 512kByte.

hed.chip benutzt
das Programm HEXBIN.COM zur Umwandlung einer HEX-Datei in eine
Binärdatei. Die Angabe eines Offsets wird nicht unterstützt. Wenn
zum Beispiel ein EPROM programmiert werden soll, das später von einem
Prozessor ab Adresse 08000h gesehen wird, dann muß die Umwandlung
Intel-HEX --> Binär vom Anwender selbst durchgeführt werden, oder
es muß mit geeigneten Assembleranweisungen dafür gesorgt werden,
daß die HEX-Datei keinen Offset enthält. Andernfalls würde eine
Binärdatei erzeugt, die zunächst bis zur Adresse 08000h den Wert
0FFh enthält und erst danach die eigentlich zu programmierenden
Daten. Die aktuelle Version des Programms HEXBIN.COM unterstützt
keine segmentierte Adressierung. In diesem Fall muß die Konvertierung
HEX à
Binär vom Anwender mit geeigneten Werkzeugen selbst durchgeführt
werden.
Die Hersteller von EPROMs weisen ausdrücklich
darauf hin, daß die genaue Einhaltung der Spezifikationen für eine
optimale Programmierbarkeit und den langfristigen Erhalt der Daten
unbedingt notwendig ist. Obwohl sich die Programmieralgorithmen
gleichen, hat doch jeder Hersteller eigene Vorstellungen, wie EPROMs
programmiert werden sollten. Der erste Schritt vor der Programmierung
sollte also immer ein Blick in die Bausteinliste sein, um das jeweils
richtige Bausteinmnemonic zu ermitteln.Dann wird hed.chip
die Programmierung genau gemäß den Spezifikationen des Herstellers
durchführen.
Es wurden von allen aufgeführten Herstellern die
neuesten Algorithmen verwendet. Dabei fiel auf, daß sich in einigen
Fällen die Typbezeichnung in den letzten 10 Jahren nicht geändert
hat, obwohl alte Datenbücher andere Algorithmen mit meist längeren
Pulszeiten verwenden. Den damals üblichen Algorithmen entsprechen am
ehesten die Algorithmen für die Bausteine M2764A, M27128A und M27256
von SGS Thomson. Die zugehörigen Bausteinmnemonics sind: s2764,
s27128 und s27256. Diese Mnemonics sollten verwendet werden, wenn sehr
alte Bausteine programmiert werden sollen.
Mit dem Adapter PLCC32 können einige, aber nicht
alle EPROMs in der Bauform PLCC32 programmiert werden. Welche Typen in
der Bauform PLCC32 programmiert werden können, ist der Bausteinliste
zu entnehmen.
Für diesen Typ wird der Adapter DIPMEM benötigt. Für
Selbstbauer: Es müssen folgende Pins getauscht werden: 1 und 5, 9 und
10, 12 und 29, sowie 13 und 28. Alle anderen Pins werden 1:1
durchverbunden. Der Adapter kann aber auch preisgünstig von Höpping
Elektronik Design und allen Distributoren des Programmiergerät hed.chip
komplett fertig bezogen werden.
Diese Typen werden von dem Programmiergerät
hed.chip nicht unterstützt. Für die Programmierung werden Spannungen
über 20V und teils mehrere, unterschiedliche Versorgungsspannungen
benötigt. Als Ersatz für 2716 und 2732 können in den meisten
Fällen die CMOS-Versionen 27C16 und 27C32 eingesetzt werden. Die
Pinbelegung muß im Einzelfall an Hand der Hersteller Datenblätter
überprüft werden. Vom Standard abweichend war z.B. der Typ TMS2716
von Texas Instruments.
EEPROMs sind grundsätzlich byteweise
programmierbar. Die größeren Typen gestatten meist auch die
Programmierung mehrerer Bytes einer Seite in einem Schreibvorgang.
Soweit vorhanden wird diese Möglichkeit der seitenweisen
Programmierung zur Steigerung der Geschwindigkeit benutzt. Außerdem
programmiert hed.chip
- soweit vorhanden - den Schreibschutz dieser Bausteine, wenn in der
Kommandozeile bei der Programmierung der Parameter /s1 zusätzlich
angegeben wird.
Bei der seitenweisen Programmierung und zur
Aktivierung des Schreibschutzes muß das jeweils folgende Byte in
einer bestimmten max. Zeitspanne geschrieben werden. In einer DOS-Task
eines Multitasking Systems wie z.B. Windows 95 oder Windows NT 4.0 ist
das in der Regel möglich, kann aber nicht unter allen Umständen
gewährleistet werden. Die DOS-Task sollte dazu im Vollbild Modus
ausgeführt werden. Alle Einstellmöglichkeiten sind auf maximale
Geschwindigkeit hin zu optimieren. Druckertreiber, die den gleichen
Druckerport bedienen, sollten entfernt werden. Die Programmierung
sollte unbedingt mit der Option /v verifiziert werden. Falls dabei
wiederholt Fehler festgestellt werden, muß zur Programmierung dieser
Bausteine der Rechner mit DOS gebootet werden.
Beispiel: Ein AT28C256 soll programmiert,
verifiziert und der Schreibschutz aktiviert werden:
hedchip lpt2 /g28c256 /p /v /s1 myapp.hex ; 28C256
in DIP28
Der Schreibschutz dieser Bausteine ist eine
sinnvolle Eigenschaft. In der Anwenderschaltung schützt er
zuverlässig vor unbeabsichtigten Schreibvorgängen. Solche
Schreibvorgänge können zum Beispiel während des Einschaltens der
Versorgungsspannung entstehen.
Normalerweise ist es nicht nötig, ein EEPROM vor
der Programmierung zu löschen. Der Schreibschutz aber wird nur
aufgehoben, wenn der Baustein gelöscht wird:
hedchip /g28c256 /e
Nicht-flüchtiger RAM-Speicher
Hierbei handelt es sich um RAM in einem Modul mit Stützbatterie. Der Vorteil solcher Bausteine ist, dass der Speicher unbegrenzt
oft wiederbeschreibbar ist. Es gibt diese Baustein mit und ohne eingebauter
Uhr.
- Bei Bausteinen mit eingebauter Uhr sollte unbedingt Folgendes beachtet werden:
- Diese Bausteine sollte nicht gelöscht werden. Das ist bei diesen Bausteinen für eine Wiederprogrammierung ohnehin nicht
erforderlich
Der Speicherbereich mit den Registern für die Uhr sollte nicht überschrieben werden. Bei einem SGS Thomson M48T18 sollte die Quelldatei
also nicht größer als 01FF8h Bytes sein.
Die Register, die vom Baustein für die Uhr benutzt werden, können mit
hed.chip wie normale Speicherzellen beschrieben werden. Dabei wird allerdings keine Rücksicht
genommen, welche Auswirkungen das auf die Uhr hat.
Diese mit 5V programmierbaren FLASH sind EEPROMs
sehr ähnlich. Der Unterschied besteht darin, daß immer alle Bytes
einer Seite geschrieben werden müssen. Nicht beschriebene Bytes einer
Seite werden beim internen Schreibvorgang des Bausteins gelöscht.
Eine Seite besteht bei den meisten Typen aus 128 Bytes.
hed.chip
programmiert diese Bausteine von einer Reihe von Herstellern. Weitere
werden zur Zeit getestet bzw. in die Programmiersoftware
implementiert. hed.chip wertet
die Baustein-ID dieser Bausteine aus und stellt daraufhin automatisch
die Größe des Bausteins und die Programmierparameter ein. Nicht
bekannte Bausteine, oder wenn der Hersteller-Code nicht mit dem
angegebenen Mnemonic übereinstimmt, werden abgewiesen. Die Liste der
dem hed.chip
bekannten Bausteine wird laufend erweitert.
Der allgemeine Schreibschutz dieser Bausteine kann
durch Angabe des Parameters /s1 bei der Programmierung aktiviert
werden. Es gelten die gleichen Hinweise wie bei der seitenweisen
Programmierung von EEPROMs.
Beispiel: Programmierung Atmel AT29C010,
Schreibschutz aktivieren
hedchip /ga29cxxx /p /v /e /s1 myapp.bin
Dabei haben die zusätzlichen Parameter folgende
Wirkung:
/v Die Programmierung und der Löschvorgang werden
verifiziert.
/e Der Baustein wird gegebenenfalls vor der
Programmierung gelöscht. Ohne diese Angabe könnte ein Baustein mit
aktiviertem Schreibschutz nicht programmiert werden.
/s1 Der Schreibschutz des Bausteins wird nach der
Programmierung aktiviert.
FLASH-Rom mit Bootblock
Schreibschutz
Betrifft zur Zeit: Atmel AT29C020, AT29C040, Winbond
W29C020
Durch Angabe des Parameters /sn bei der
Programmierung können bei diesen Bausteinen je ein Speicherbereich am
Speicheranfang und am Speicherende gegen weitere Programmierung
geschützt werden. Dies ist sinnvoll, wenn der Baustein später im
System neu programmiert werden kann und sichergestellt werden soll,
daß ein Boot Block mit unverzichtbaren Routinen auf jeden Fall
erhalten bleibt.
Über den Parameter /s kann jede Kombination von
Softwareschutz (SDP) und Boot Block Lock eingestellt werden:
- /s1 SDP (allgemeiner, reversibler Schreibschutz
für den ganzen Baustein)
- /s2 Lower Address Boot Block Lock (LABBL)
- /s3 SDP + LABBL
- /s4 Higher Address Boot Block Lock (HABBL)
- /s5 SDP + HABBL
- /s6 LABBL + HABBL
- /s7 SDP + LABBL + HABBL
Die Angabe der verschiedenen Schreibschutzmechnismen
kann auch einzeln erfolgen. Die beiden folgenden Befehlszeilen sind in
ihrer Wirkung identisch und aktivieren beide Boot Block Locks und den
reversiblen Schreibschutz SDP:
- hedchip /ga29cxxx /p /v /e /s7 myapp.bin
- hedchip /ga29cxxx /p /v /e /s1 /s2 /s4
myapp.bin
Der Schreibschutz der Boot Blöcke, LABBL und HABBL,
kann nicht wieder aufgehoben werden. Die weitere Programmierung eines
auf diese Weise geschützten Bausteins ist möglich, erfordert jedoch
einige Umstände:
- Wenn der Schreibschutz des ganzen Bausteins, SDP,
aktiviert ist, muß der Baustein mit dem Löschbefehl gelöscht
werden. Dabei wird nur der Schreibschutz SDP aufgehoben. Der
Baustein selbst kann nicht gelöscht werden.
- Falls das Lower Address Boot Block Lock (LABBL)
aktiviert ist, muß der Baustein zunächst gelesen werden. Bei der
anschließenden Programmierung muß der Speicherbereich des Lower
Address Boot Block mit den zuvor gelesenen Daten wieder
beschrieben werden.
Erklärung: hed.chip
kann Bausteine nur kontinuierlich beginnend ab Adresse 00000h
programmieren. Da der gesperrte Speicherbereich nicht verändert
werden kann, muß vermieden werden, daß hed.chip
bei dem Versuch feststellt, daß der Baustein in diesem Bereich nicht
mehr programmierbar ist.
FLASH, Serie 29F
Diese Bausteine können wie die zuvor beschriebenen
Bausteine der Serien 29C und 29EE ohne erhöhte Programmierspannung
programmiert werden. Sie müssen jedoch vor jeder Programmierung
gelöscht werden. Der Sektor-Schreibschutz dieser Bausteine kann mit hed.chip
weder aktiviert noch deaktiviert werden.
hed.chip wertet
die Baustein-ID dieser Bausteine aus und stellt automatisch die
Größe des Bausteins ein und benutzt die richtigen Parameter zur
Programmierung.
Zur Programmierung aller Bausteine dieser Serie wird
das Bausteinmnemonic 29fxxx benutzt:
- hedchip /g29fxxx /p/v/e your_app.bin ; löscht,
programmiert und verifiziert 29F-FLASH
-
FLASH 28F-Serie
Diese FLASH benötigen zur Programmierung eine
Programmierspannung von 12V. Sie müssen vor der Programmierung
gelöscht werden. Das Bausteinmnemonic 28fxxx wird für alle Bausteine
dieser Serie verwendet. hed.chip
wertet die Baustein-ID des Bausteins aus und stellt automatisch die
Größe des Bausteins ein und wählt den richtigen
Programmieralgorithmus. Beispiel:
- hedchip /g28fxxx /p/v/e your_app.bin ; löscht,
programmiert und verifiziert 28F-FLASH
-
FLASH Intel 28F001B
Dieser Baustein hat einen durch Hardware
geschützten 8kByte BootBlock. Beim 28F001BX-T liegt dieser Block an
der Adresse 01E000h, beim 28F001BX-B an der Adresse 0.
Hinweis für hed.chip,
Hardware-Version 1: Der BootBlock kann nur beschrieben bzw.
gelöscht werden, wenn an RP# (Pin 30) 12V anliegt. Dazu muß
folgendes gemacht werden: Mit einer Drahtbrücke muß Pin 1 des
Bausteins mit Pin 30 verbunden werden. Leertest und Verify sollten
ohne diese Drahtbrücke durchgeführt werden.
Hinweis für hed.chip,
Hardware-Version 2 (alle Geräte seit 11/99): Dieser
Baustein ganz ganz normal mit hed.chip programmiert werden.
Speicherbausteine in der
Bauform PLCC32
Grundsätzlich wird dafür ein Adapter 1:1 von
DIP32 auf PLCC32 verwendet. Die Software des hed.chip
wurde so ausgelegt, daß damit die PLCC32-Versionen von 24, 28
und 32poligen DIP-Bausteinen programmiert werden können. Eine
Ausnahme gibt es allerdings: Für EPROM 27C512 in PLCC32 wird
der Adapter PLCC32_28 benötigt.
Die Bausteinliste gibt detaillierte Auskunft,
welche Bausteine in der Bauform PLCC32 unterstützt werden. Für
die Programmierung dieser Bausteine sind je nach Typ andere
Mnemonics als für die DIP-Versionen notwendig.
|
 |
Beispiel für den Baustein 28C256
Ein 28C256 in der Bauform PLCC32 soll gelöscht,
programmiert, verfiziert und anschließend schreibgeschützt werden.
Weil die Pinbelegung der 32poligen PLCC-Bauform von der der 28poligen
DIP-Bauform abweicht, muß das Bausteinmnemonic /g28c256plcc verwendet
werden.
hedchip /g28c256plcc /p/v/e/s1 myapp.hex ; nicht:
/g28c256
Low Voltage
hed.chip ist
auch in der Lage Low Voltage Bausteine zu programmieren. Low Voltage
Bausteine, die auch mit 5V betrieben werden können, sind bereits in
der Bausteinliste aufgeführt. Bausteine, die nur bei 3.3V betrieben
werden können, werden nach und nach implementiert und in die
Bausteinliste aufgenommen. Kundenwünsche nach der Programmierung
bestimmter Bausteine werden bevorzugt behandelt.
|