menuhedchip
Elektronik von hed

 

Universalprogrammiergerät hed.chip, Version 3.24 hed-chip

Adapter für PLCC, SOIC, TSOP, TQFP

Adapter

Bedienungsanleitung zum Programmiergerät

Anleitung

Beratung - direkt vom Entwickler !

Beratung

Liste der programmierbaren Bausteine

Devicelist

Download Software zum Programmiergerät

Download

Kauf ohne Risiko !

Garantie

Interessante Links

Links

Beschreibung Software zum hed.chip

Software

Technische Daten zum hed.chip

Spezifikation

Lohnt sich ein Update? Sehen Sie nach, was es Neues gibt !

Upd. Info

Zubehör zum Programmiergerät

Zubehör
Preisliste Preise
Bestellformular Bestellen
Fragen, Wünsche? Nehmen Sie mit uns Kontakt auf ! Kontakt
Suchen:

 

  

vorheriges Kapitel   Inhaltsverzeichnis   nächstes Kapitel

MCS51 Microcontroller

hed.chip programmiert fast alle CMOS-MCS51-Varianten der Hersteller Atmel, Dallas, Intel, Philips, Siemens, SST und Temic. Für Controller in den Bauformen PLCC44 und SOIC20 sind Adapter verfügbar.

Wenn ein solcher Controller programmiert oder ausgelesen werden soll, muß zunächst in der Befehlszeile das richtige Mnemonic angegeben werden. hed.chip vergleicht das Mnemonic mit der Hersteller-ID und der Baustein-ID und wählt dann automatisch den richtigen Programmieralgorithmus.

Wenn eine Anwendung z.B. für einen Philips 87C52 entwickelt werden soll, muß mit Hilfe eines Crossassemblers bzw. Crosscompilers eine Intel-Hex-Datei oder eine Binärdatei erzeugt werden. Diese kann hed.chip dann in den Controller programmieren:

hedchip /gp87c5x /p/v myapp.hex
 

Es ist notwendig, daß in dem obigen Beispiel das Mnemonic p87c5x und nicht etwa i87c5x für Intel Controller verwendet wird. Wenn die Hersteller-ID nicht mit dem Mnemonic übereinstimmt, wird hed.chip jede Aktion mit dem Baustein ablehnen. Das gleiche gilt für den Fall, daß die Baustein-ID hed.chip nicht bekannt ist. Wir werden uns bemühen, für neue Bausteine so schnell wie möglich Updates der hed.chip-Software zu erstellen.

Achtung: Es wird keine Fehlermeldung und auch keine Warnung erzeugt, wenn die Quelldatei für den Speicher des Controllers zu groß ist.

Lockbits

MCS51 Controller haben zwei oder drei sogenannte Lockbits, die den Baustein schützen:

Parameter Lockbits Funktion
S1 1 schützt gegen weitere Programmierung
S3 1 + 2 schützt gegen Auslesen des Programmspeichers. Da nach wie vor externe Programme ablaufen können, ist der Schutz nicht sehr sicher. S3 beinhaltet automatisch S1.
S7 1 + 2 + 3 verhindert, daß externe Programme ablaufen. Der Zustand des PINs EA/ ist bei gesetztem 3. Lockbit ohne Bedeutung. S7 beinhaltet automatisch S3 und S1. Nicht alle Bausteine verfügen über dieses Lockbit.

Mit S2 oder höher geschützte Bausteine werden vom Programmer entweder nicht erkannt, weil auch die Hersteller-ID nicht ausgelesen werden kann, oder sie werden als leer verkannt. Der Versuch, einen solchen, vermeintlich leeren Baustein zu programmieren, führt zu der Fehlermeldung ‘Baustein nicht programmierbar’.

Falls ein Baustein also von hed.chip nicht akzeptiert wird oder nicht programmiert werden kann, sollte dieser Baustein zunächst gelöscht werden. Zur Programmierung der Lockbits muß in der Kommandozeile zusätzlich zu /p der Parameter /s1, /s3 oder /s7 angegeben werden. Die höheren Lockbits schließen automatisch die niedrigeren mit ein; /s7 programmiert also alle Lockbits bei jedem beliebigen MCS51 Controller:

hedchip /gp87c5x /p /v /s7 myapp.hex
 

Außerdem verfügen einige MCS51 Controller über ein ‘Encryption Array’. Die Programmierung dieser ‘Schutzmaßnahme’ wird von hed.chip nicht unterstützt, da uns dafür keine sinnvolle Anwendung bekannt ist.

Atmel Controller der Serie AT89C**

können im hed.chip elektrisch gelöscht werden. Auch die kleinen Varianten im DIP20 Gehäuse können direkt in den Programmiersockel des hed.chip eingesetzt werden. Diese Bausteine können auch in einem Arbeitsgang gelöscht und neu programmiert werden:

hedchip /ga89c5x /p /v /e myapp.hex ; für AT89C51/2, LV51/2
hedchip /ga89cx051 /p /v /e myapp.hex ; für AT89C1051/2051

Lediglich wenn ein Baustein mit gesetzten Lockbits neu programmiert werden soll, muß zuvor ein separater Löschvorgang durchgeführt werden.

Für die AT89Cxx-Varianten mit 5V Programmierspannung wird das Mnemonic /ga89c5x-5 verwendet. Die Typen AT89LV** könnnen mit den gleichen Einstellungen programmiert werden.

AT89C51RC und AT89C55WD

Für diese Bausteine wird das Bausteinmnemonik /ga89c5x2 verwendet. Lesegeschützte Bau-steine können von leeren Bausteinen nicht unterschieden werden. Um programmierte und lese-geschützte Bausteine neu zu programmieren, muß der Baustein vorher in einem separaten Aufruf des Programmiergerätes gelöscht werden:

hedchip /ga89c5x2 /e ; Löschen (für geschützte Bausteine)
hedchip /ga89c5x2 /p /v /s7 myapp.hex ; Programmieren, Verifizieren, Leseschützen.

Atmel Controller der Serie AT89S**

können im hed.chip gelöscht und programmiert werden. hed.chip kann auch die SPI Security Fuse aktivieren und den EEPROM-Datenspeicher des AT89S8252 programmieren. Zum Programmieren des FLASH-Programmspeichers und des EEPROM-Datenspeichers werden zwei verschiedene Mnemonics benutzt. Die Schutzfunktionen können nur in Verbindung mit dem Mnemonic a89sxxxx benutzt werden. Der Löschvorgang wirkt sich immer auf den ganzen Baustein, also FLASH-Programmspeicher, EEPROM-Datenspeicher und alle Schutz-Funktionen aus.

hedchip /ga89sxxxx /p/v/e/s7 myapp.hex ; AT89S8252 oder AT89S53 FLASH löschen, pro; grammieren, verifizieren und schreib-/leseschützen
hedchip /ga89sxxxx /p/v/e/s15 myapp.hex ; dito, auch SPI Security Fuse setzen
hedchip /ga89sxxxx /p/v/e/s7/s8 myapp.hex ; dito, /s7/s8 entspricht /s15
hedchip /ga89seeprom /p/v myapp.hex ; AT89S8252 EEPROM programmieren und verifizieren.

Wenn Programm- und Datenspeicher programmiert und geschützt werden sollen, muß folgende Reihenfolge eingehalten werden: Baustein löschen, EEPROM-Datenspeicher programmieren, FLASH-Programmspeicher programmieren und schützen. Der Datenspeicher ist dann auch geschützt.

Die Typen AT89LS** können mit den gleichen Einstellungen programmiert werden.

Philips 87C7**-Controller

Für die Philips Controller 87C749 und 87C752 ist der Adapter DIP752 notwendig. Zu beachten ist, daß die Controller 87C748, ‘749, ‘751 und ‘752 mit dem Mnemonic /gp87c7xx programmiert werden, der 87C750 jedoch mit dem Mnemonic /gp87c750. Controller von Signetics werden wie Philips Bausteine behandelt.

Philips P89C5*-Controller

hed.chip unterstützt die Typen P89C51Uxxx, P89C52Uxxx, P89C54Uxxx, P89C58Uxxx, P89C51RC+, -RD+, P89C51RB2, -RC2, -RD2. Alle diese Typen haben die üblichen 3 Lockbits wie andere MCS51 Microcontroller auch.

P89C51RC+ und –RD+ verfügt zusätzlich über ein Status-Byte. Dieses kann programmiert wer-den, wenn bei der Programmierung /S8 zusätzlich angegeben wird.

P89C51RB2, -RC2, -RD2 arbeiten per Voreinstellung im 6x clock mode. In diesem Mode wird ein Maschinenzyklus in 6 Taktzyklen ausgeführt. Der Baustein arbeitet also mit doppelter Geschwin-digkeit im Vergleich zu anderen, normalen MCS51 Microcontrollern. Wenn die Option /s16 (= 12x clock mode) programmiert wird, arbeitet der Microcontroller mit der normalen Geschwindig-keit. Wenn diese Option einmal programmiert ist, dann ist es nicht möglich, den Microcontroller wieder in den 6x clock mode zu versetzen. Der 12x clock mode sollte programmiert werden, wenn man diese Controller als Ersatz für andere MCS51 Microcontroller einsetzen will und der Control-ler das gleiche Zeitverhalten wie der ursprünglich Controller haben soll.

Dallas High Speed Controller DS87C520/530

Die Bausteine DS87C520 und ‘530 haben einen Watchdog Timer. Dieser kann im Falle eines Programmabsturzes ein RESET des Controllers auslösen. Der Watchdog Timer läuft immer, löst aber nur dann ein RESET aus, wenn die entsprechende Funktion aktiviert wurde. Damit der Watchdog von Anfang an im Falle eines Programmabsturzes ein RESET auslösen kann, müssen die Bausteine mit dem Mnemonic d87c5x0-w programmiert werden.

Siemens SAB-C513A

hed.chip unterstützt auch den Baustein Siemens SAB-C513A-H. Dieser Baustein ist von Siemens nur zum Zwecke der Entwicklung gedacht. Er verfügt über keine Lockbits und beim Einsatz sollte das Siemens Errata Sheet, Release 1.2 vom 20.09.1995 für Bausteine mit der Markierung „ES-BA", beachtet werden.

Siemens C505A-4E, C505CA-4E

Diese Microcontroller von Siemens verfügen über 32kByte OTP EPROM Speicher. (OTP = One Time Programmable = einmalig programmierbar). Der Controller steht nur in der Bauform PQFP44 zur Verfügung.

Das Pinout unterscheidet sich etwas von anderen MCS51 Microcontrollern in dieser Bauform. An Pins 38/39 liegt die Versorgung für den internen AD-Wandler, an Pin 17 liegt die digitale Versor-gung. Für die Programmierung wird nur die digitale Versorgung angeschlossen.

Wegen dieser Besonderheit muss zur Programmierung der Adapter PQFP44_C505 verwendet wer-den. Dieser Adapter wurde freundlicherweise von der Firma Kriwan entworfen und hergestellt.

SST89F5*

Die MCS51 Micocontroller von SST zeichnen sich durch eine Besonderheit aus. Sie haben zwei getrennte Blöcke FLASH Programmspeicher. Block 0 ist der primäre Speicher und hat eine Größe von 16 bzw. 32 kByte. Block 1 hat eine Größe von 4 kByte und liegt an Adresse 0xF000. Eine Besonderheit ist, daß diese Microcontroller den eigenen FLASH Programmspeicher beschreiben können. Im Datenblatt wird dieses Feature als "In-Application Programming" beschrieben.

Für die Programmierung des Block 0 wird das Bausteinmnemonic /gsst89f5x_0 verwendet.

Für die Programmierung des Block 1 wird das Bausteinmnemonic /gsst89f5x_1 verwendet. Bei Quelldateien im Intel Hex Format muß darauf geachtet werden, daß die Quelldatei keinen Offset enthält. Dazu muß im Assembler die Anweisung ".phase 0xf000" statt ".org 0xf000" benutzt werden.

Die Löschfunktion löscht immer beide Speicherblöcke.

Diese Microcontroller haben keine Lockbits. Statt dessen wird der Lese- und Schreibschutz des internen Speichers durch den Inhalt der letzten Speicherzelle im Block 1 bestimmt. Dieses Byte wird Security Byte genannt. Der Schreibschutz ist sinnvoll, damit der Programmspeicher nicht unbeabsichtigt verändert werden kann.

Parameter Sec. Byte Funktion
/S0 0xFF Kein Schutz.
/S85 0x55 Beide FLASH Speicherblöcke sind geschützt (hard lock)
/S245 0xF5 Nur der obere 4 kByte Block ist geschützt (hard lock)
/S5 0x05 Beide Speicherblöcke sind geschützt, können aber durch In-Application Programming programmiert werden. (soft lock).

Der Schutz kann entweder durch den Inhalt der Quelldatei für Block 1 oder durch Parameter in der Kommadozeile aktiviert werden. Parameter in der Kommandozeile haben Vorrang vor einen Wert für das Security Byte in der Quelldatei. Wenn beide Speicherblöcke programmiert werden sollen, darf der Schutz erst bei der Programmierung des zweiten Speicherblocks aktiviert werden.

Temic TSC87C51

Dieser Microcontroller hat keine Lockbits. Da hed.chip das Encryption-Array nicht programmieren kann, gibt es keinen Schutz gegen Auslesen. Das Encryption-Array ist als Schutz gegen Auslesen ohnehin fast wirkungslos.