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

Microchip PIC Microcontroller

Mit Hilfe des Adapters UNIPIC unterstützt hed.chip auch eine große Zahl von PIC Microcontrollern. hed.chip erfüllt alle Anforderungen, die Microchip für einen „production quality programmer“ spezifiziert hat. Für die verschiedenen Bauformen DIP8, DIP18, DIP28 und DIP40 hat der Adapter die jeweils passenden Testsockel bzw. einen Präzisionssockel für die Bauform DIP8. Der Adapter wird in zwei Versionen angeboten:

1.       UNIPIC18: bestückt mit Präzisionssockel DIP8 und Testsockel DIP18. Sockel DIP28 und DIP40 können gegebenenfalls selbst nachträglich bestückt werden.

2.       UNIPIC: komplett bestückt mit Präzisionssockel DIP8 und drei Testsockeln DIP18, DIP28 und DIP40.

PIC Microcontroller verfügen über EPROM- oder FLASH-Programmspeicher. Die Wortbreite des Speichers beträgt je nach Typ 12, 14 oder 16 Bits. Zusätzlich zu dem normalen Programmspeicher haben diese Bausteine 16 Bits Speicher für eine User-ID und ein Speicherwort zur Konfiguration des Prozessors (Microchip: „configuration word“). Die 16 Bits der User-ID verteilen sich auf 4 Speicherworte. Beim Auslesen werden User-ID und configuration word mit ausgelesen. Die Zieldatei ist daher immer 10 Byte größer als der Programmspeicher des Bausteins.

User-ID

PIC Microcontroller haben eine 16 Bit User-ID. Diese User-ID wird in einem besonderen Adressbereich in 4  Speicherstellen, die jeweils mit 4 Bit der User-ID programmiert werden können, abgelegt. hed.chip kann eine User-ID aus der Quelldatei in die dafür vorgesehenen Speicherstellen programmieren. Die User-ID wird in der Quelldatei hinter den Daten für den Programmspeicher erwartet. Dabei spielt die genaue Position keine Rolle. Wenn die Quelldatei mindestens 10 Bytes größer ist als der Programmspeicher des Bausteins, werden die letzten 10 Bytes der Quelldatei in die User-ID und das configuration word programmiert.

Beispiel für PIC16C84: Der Baustein hat 1024 Worte Programmspeicher. Das entspricht einer Größe der Quelldatei von 2048 Byte. Die nun folgenden 4 Wörter ( = 8 Bytes) werden als User-ID interpretiert. Von jedem Wort werden die unteren 4 Bits als User-ID in den Baustein programmiert. Um Fehlermeldungen beim Verify zu vermeiden, müssen die oberen 12 Bits des Worts 0 sein. Eine Quelldatei mit User-ID und configuration word hat beim PIC16C84 also eine Größe von 2058 Bytes.

 Configuration Word

PIC Microcontroller haben in einem besonderen Adressbereich eine Speicherstelle, mit deren Hilfe der Microcontroller konfiguriert werden kann. Die Bits des configuration word stellen den Taktgenerator auf bestimmte Taktquellen ein und beeinflussen das Verhalten des Timers und des Watchdog. Mit weiteren Bits kann der Prozessor gegen Auslesen des Programmspeichers geschützt werden. Nach dem Löschen des Bausteins sind alle Bits des configuration word auf 1 gesetzt. Bei der Programmierung können Bausteinoptionen angegeben werden, um eines oder mehrere Bits des configuration word auf 0 zu programmieren. Die folgende Tabelle gibt eine Übersicht über die Optionen und die zugehörigen Kommandozeilenparameter, die zur Programmierung angegeben werden können. Die graphische Benutzeroberfläche HC95 bietet bei der Programmierung die für den gewählten Baustein verfügbaren Bausteinoptionen zur Auswahl an. Es können beliebige Kombinationen der Optionen ausgewählt werden.

Parameter

Option

Funktion

/S1
/S2

FOSC0
FOSC1

Oscillator Selection Bit. In Verbindung mit dem Parameter FOSC1 können verschiedene Typen für den Taktgenerator des Microcontrollers einstellt werden.

RC Oscillator :    default, keine Optionsangabe. Controller
                          wird mit RC-Glied beschaltet.
HS Oscillator:      FOSC0 programmieren. Controller mit
                          Quarz beschaltet, hohe Taktfrequenz.
XT Oscillator:      FOSC1 programmieren. Controller mit
                          Quarz beschaltet, mittlere Taktfrequenz
LP Oscillator:      FOSC0 und FOSC1 programmieren.
                          Controller mit Quarz beschaltet, niedrige
                          Taktfrequenz.

/S4

WDTE

Watch Dog Timer Enable. Per Default ist der Watchdog Timer nach einem Reset aktiviert. Die Angabe der Option WDTE bei der Programmierung deaktiviert den Watchdog Timer.

/S8

PWRTE
PWRTE#

PWRTE: Power Up Timer Disable Bit. Bei einigen Bausteinen ist der Timer nach einem Reset per Default aktiviert und kann durch Angabe dieser Option deaktiviert werden.

PWRTE#: Power Up Timer Enable Bit. Bei einigen Bausteinen ist der Timer nach einem Reset per Default deaktiviert und kann durch Angabe dieser Option aktiviert werden.

Die Benutzeroberfläche bietet jeweils die zu dem Baustein passende Option zur Programmierung an.

/S16

BODEN

Brown Out Enable Bit. Bei Bausteinen mit dieser Option gibt es einen Schutz gegen langsamen Ausfall der Betriebsspannung.

/S16

FOSC2

Nur PIC12C67x: Oscillator Selection Bit. Diese Option darf nur in Verbindung mit FOSC0 und/oder FOSC1 angegeben werden.

/S32

CP
CP0

Leseschutz. Je nach Baustein wird der gesamte Speicher oder die obere Hälfte gegen Auslesen geschützt.

/S64

CP1

Leseschutz. Bei Bausteinen mit geteilt aktivierbarem Leseschutz schützt diese Option die untere Hälfte des Speichers gegen Auslesen.

/S64

DP

PIC16CR83/84: Data EEPROM Leseschutz

/S128

MCLRE

Master Clear pin Enable Bit. Wenn diese Option programmiert wird, wird der MCLR-Pin des Bausteins deaktiviert und MCLR im Controller mit Vdd verbunden. Nur bei PIC12C508/9

/S128

WRT

FLASH Memory Write Enable. Wenn diese Option programmiert wird, wird verhindert, dass der Microcontroller seinen eigenen FLASH-Speicher beschreiben kann.

Das configuration word kann auch aus der Quelldatei heraus programmiert werden. Dazu muß das configuration word in der Quelldatei unmittelbar hinter der User-ID liegen. Alternativ können didiese Informationen auch an den von Microchip vorgesehen stellen liegen. Sie: Kaptel „Entwicklungssystem MLABS“. Beim Auslesen werden User-ID und configuration word im Anschluß an den Inhalt des Programmspeichers in der Zieldatei abgelegt. Man kann also Bausteine inklusive User-ID und configuration word kopieren. Der genaue Aufbau des configuration word ist bei fast allen Typen unterschiedlich. Das gilt auch, wenn diese Typen über die gleichen Optionen verfügen.

Leseschutz bei UV-löschbaren PIC Microcontrollern

Microchip empfiehlt, daß Microcontroller im Keramik-Gehäuse mit Fenster nicht gegen Auslesen geschützt werden. Das heißt, die Bausteinoptionen /s32 und /s64 sollten bei der Programmierung dieser Typen nicht angegeben werden. Wir haben die Erfahrung gemacht, daß auch intensive UV-Bestrahlung diese Bausteine nicht mehr vollständig löschen kann, wenn die configuration bits CP0 (/s32) und/oder CP1 (/s64) programmiert wurden.

Der Leseschutz kann auch durch Programmierung mit einem entsprechende Wert für das configuration word in der Quelldatei aktiviert werden. Dabei wird aber eine Fehlermeldung erzeugt, daß der Baustein nicht programmierbar sei. Die Aktivierung des Leseschutzes kann auch unbeabsichtigt passieren, wenn der Baustein mit einer Datei programmiert wird, die nicht für diesen Typ geeignet ist.

Daten EEPROM

Einige Typen, z.B. PIC16F84, verfügen über EEPROM Datenspeicher. Dieser Speicher erscheint in der Bausteinliste je nach Größe als PICDATA64, PICDATA128, bzw. PICDATA256.

Um also die 128 Bytes EEPROM Datenspeicher eines PIC16F873 zu programmieren, wählen Sie aus der Bausteinliste den Baustein PICDATA128 aus. In der Kommandozeile verwenden Sie das Baustein-Mnemonik /gpicdata128.

Der EEPROM Datenspeicher hat eine Wortbreite von 8 Bits. Trotzdem werden die Daten wortweise (16 Bits) aus der Quelldatei gelesen. Von jedem 16 Bit Wort werden nur die unteren 8 Bits verwendet.

Der Datenspeicher muss vor der Programmierung des Programmspeichers programmiert werden. Folgende Reihenfolge ist einzuhalten:

  1. Den jeweiligen Baustein, z.B. PIC16F873, löschen. Dadurch wird auch das Daten EEPROM gelöscht.

  2. Daten EEPROM programmieren. Für PIC16F873 muss dazu aus der Bausteinliste PICDATA128 ausgewählt werden.

  3. EPROM oder FLASH Programmspeicher programmieren und gegebenenfalls gegen Auslesen schützen.

Entwicklungssystem MLABS

hed.chip unterstützt das Entwicklungssystem MLABS von Microchip.

Damit ist insbesondere gemeint, dass User-ID und Configuration-Word aus den mit MLABS erstellten Dateien an die richtigen Stellen im PIC Microcontroller programmiert werden.

Damit das funktioniert, werden die Dateiformate von dem Programm HEXBIN.EXE konvertiert. Der Aufruf von HEXBIN.EXE erfolgt automatisch. HEXBIN.EXE konvertiert die Formate MLABS-14Bit und MLABS-12Bit in das HEDCHIP-Format.

Dateiformate:

  1. HEDCHIP-Format
    HEDCHIP erwartet User-ID und Configuration-Word unmittelbar im Anschluss an den Programmspeicher des Controllers. Die genaue Adresse ist von der Speichergröße des Controllers abhängig. Beispiel für PIC16C84:
    Speichergröße: 400h Worte = 800h Bytes = 2kByte
    User-ID an Adresse: 0800h (Byte-Adresse)
    Config-Word an Adresse: 0808h (Byte-Adresse)
  2. MLABS-14Bit:
    User-ID an Adresse: 4000h (Byte-Adresse)
    Config-Word an Adresse: 400eh (Byte-Adresse)
    Im Falle eines PIC16C84 verschiebt HEXBIN.EXE die User-ID von Adresse 4000h nach Adresse 0800h und das Config-Word von Adresse 400eh nach Adresse 0808h.
  3. MLABS-12Bit:
    User-ID an Adresse: Unmittelbar im Anschluß an den Programmspeicher, z.B. bei PIC12C508 an Adresse 0400h (Byte-Adresse)
    Config-Word an Adresse: 1ffeh
    Im Falle eine PIC12C508 verschiebt HEXBIN.EXE das Config-Word von Adresse 1ffeh nach Adresse 0408h.

 

Empfohlene Arbeitsweise:

Geben Sie in MLABS alle Configurations-Optionen mit Ausnahme des Leseschutzes an. Wenn Sie mit UV-Löschbaren Controller, die eine Oscillator-Calibration brauchen, arbeiten, können Sie dafür einen geeigneten Wert in die Quelldatei schreiben. Der Oscillator-Calibration wert wird nur dann programmiert, wenn der Microcontroller an dieser Stelle noch keinen programmierten Wert enthält.

Mit der so entstandenen Quelldatei können Sie Bausteine programmieren. Während der Entwicklung und wenn Sie UV-Löschbare Controller verwenden, sollten Sie keinen Leseschutz benutzen. Für die Serienfertigung können Sie in HC95 die Bausteinoptionen CP bzw. CP0 + CP1 zusätzlich aktivieren. Optionen, die durch entsprechende Daten in der Quelldatei programmiert werden und in HC95 ausgewählte Optionen addieren sich.

 

Übersicht über die unterstützten PIC Microcontroller Typen

Die folgende Tabelle listet die unterstützten Microcontroller auf und nennt das bei der Programmierung anzugebende Bausteinmnemonic. Typen, die sich für das Programmiergerät nicht unterscheiden, wurden zu einem Typ zusammengefaßt. Deshalb wird z.B. der Baustein PIC16C71 durch Angabe des BausteinMnemonics /gpic16c61 programmiert. In der Datenbank von HC95 sind alle Typen aufgeführt und es wird automatisch mit dem richtigen Bausteinmnemonic programmiert. Der Adapter UNIPIC hat für jeden Microcontroller den jeweils passenden Sockel. Der Baustein muß in den der Bauform entsprechenden Sockel eingesetzt werden. Beispiel: Ein Baustein PIC16C84 in DIP18 darf nur in den Testsockel DIP18 eingesetzt werden. PIC Microcontroller können vom Programmiergerät nicht erkannt werden. Es ist sehr wichtig, daß der richtige Baustein ausgewählt wird. Das gilt insbesondere für Typen mit und ohne ´A´ als letzten Buchstaben in der Typbezeichnung. Beispiel: PIC16C62 und PIC16C62A sind nicht identisch.

Baustein

Bauform

Mnemonic

Programmierbare Optionen

PIC12C508/A

DIP8

/gpic12c508

FOSC0, FOSC1, WDTE, CP, MCLRE

PIC12C509/A

DIP8

/gpic12c509

FOSC0, FOSC1, WDTE, CP, MCLRE

PIC12C671

DIP8

/gpic12c671

FOSC0, FOSC1, FOSC2, WDTE, PWRTE, CP0, CP1, MCLRE

PIC12C672

DIP8

/gpic12c672

FOSC0, FOSC1, FOSC2, WDTE, PWRTE, CP0, CP1, MCLRE

PIC12CE518

DIP8

/gpic12c508

FOSC0, FOSC1, WDTE, CP, MCLRE

PIC12CE519

DIP8

/gpic12c509

FOSC0, FOSC1, WDTE, CP, MCLRE

PIC12CE673

DIP8

/gpic12c671

FOSC0, FOSC1, FOSC2, WDTE, PWRTE, CP0, CP1, MCLRE

PIC12CE674

DIP8

/gpic12c672

FOSC0, FOSC1, FOSC2, WDTE, PWRTE, CP0, CP1, MCLRE

PIC16C61

DIP18

/gpic16c61

FOSC0, FOSC1, WDTE, PWRTE, CP

PIC16C62

DIP28

/gpic16c62

FOSC0, FOSC1, WDTE, PWRTE, CP0, CP1

PIC16C620

DIP18

/gpic16c620

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C621

DIP18

/gpic16c621

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C622

DIP18

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C62A

DIP28

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C63

DIP28

/gpic16c63

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C64

DIP40

/gpic16c62

FOSC0, FOSC1, WDTE, PWRTE, CP0, CP1

PIC16C64A

DIP40

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C65

DIP40

/gpic16c65

FOSC0, FOSC1, WDTE, PWRTE, CP0, CP1

PIC16C65A

DIP40

/gpic16c63

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C66

DIP28

/gpic16c66

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C67

DIP40

/gpic16c66

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C71

DIP18

/gpic16c61

FOSC0, FOSC1, WDTE, PWRTE, CP

PIC16C710

DIP18

/gpic16c710

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP

PIC16C711

DIP18

/gpic16c711

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP

PIC16C72

DIP28

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C72A

DIP28

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C73

DIP28

/gpic16c65

FOSC0, FOSC1, WDTE, PWRTE, CP0, CP1

PIC16C73A

DIP28

/gpic16c63

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C74

DIP40

/gpic16c65

FOSC0, FOSC1, WDTE, PWRTE, CP0, CP1

PIC16C74A

DIP40

/gpic16c63

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C76

DIP28

/gpic16c66

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C77

DIP40

/gpic16c66

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16C84

DIP18

/gpic16c84

FOSC0, FOSC1, WDTE, PWRTE, CP

PIC16C923

PLCC68

/gpic16c923

FOSC0, FOSC1, WDTE, PWRTE#, CP0, CP1

PIC16C924

PLCC68

/gpic16c924

FOSC0, FOSC1, WDTE, PWRTE#, CP0, CP1

PIC16CR62

DIP28

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16CR64

DIP40

/gpic16c62a

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1

PIC16CR83

DIP18

/gpic16cr83

FOSC0, FOSC1, WDTE, PWRTE#, CP, DP

PIC16CR84

DIP18

/gpic16cr84

FOSC0, FOSC1, WDTE, PWRTE#, CP, DP

PIC16F83

DIP18

/gpic16f83

FOSC0, FOSC1, WDTE, PWRTE#, CP

PIC16F84

DIP18

/gpic16f84

FOSC0, FOSC1, WDTE, PWRTE#, CP

PIC16F84A

DIP18

/gpic16f84

FOSC0, FOSC1, WDTE, PWRTE#, CP

PIC16F870

DIP28

/gpic16f870

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP, DP, WRT

PIC16F871

DIP40

/gpic16f870

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP, DP, WRT

PIC16F872

DIP28

/gpic16f870

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP, DP, WRT

PIC16F873

DIP28

/gpic16f873

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1, WRT

PIC16F874

DIP40

/gpic16f873

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1, WRT

PIC16F876

DIP28

/gpic16f876

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1, WRT

PIC16F877

DIP40

/gpic16f876

FOSC0, FOSC1, WDTE, PWRTE#, BODEN, CP0, CP1, WRT

PIC16CR83/84, PIC16F83/84

Die Bausteine PIC16CR83 und PIC16CR84 verfügen EPROM-Programmspeicher, die Bausteine PIC16F83, PIC16F84(A) verfügen über FLASH-Programmspeicher.

Zusätzlich zum Programmspeicher haben diese Bausteine 64 Bytes EEPROM-Datenspeicher. Zur Programmierung des Datenspeichers wird das Bausteinmnemonic /gpicdata64 benutzt. Die Daten, die in das Daten EEPROM programmiert werden sollen, müssen in einer separaten Datei beginnend bei Adresse 0 vorliegen. In der Quelldatei müssen die Daten wortweise vorliegen. Bei der Programmierung wird von jedem Wort das Low-Byte in den Baustein programmiert.

Beispiel: Bei einem PIC16F84 soll sowohl der Daten- wie der Programmspeicher programmiert werden. Der Programmspeicher soll gegen Auslesen geschützt werden:

hedchip /gpicdata64 /p /e /v datafile.hex   ;  löscht, programmiert und verifiziert EEPROM-Datenspeicher.

hedchip /gpic16f84 /p /v /e /32 codefile.hex   ;  löscht, programmiert, verfiziert und schützt FLASH-Programmspeicher.

 

Die Bausteine PIC16CR83 und PIC16CR84 haben eine Bausteinoption, mit der sich der EEPROM-Datenspeicher gegen Auslesen schützen lässt. Die Benutzeroberfläche bietet dazu die Bausteinoption DP an. In der Kommandozeile wird zur Programmierung dieser Option der Parameter /s64 verwendet. Die Bausteinoption CP (entspricht Kommandozeilenparameter /s32) schützt den Programmspeicher gegen Auslesen.

PIC12C5XX, RC-Oszillator Kalibrierung

Bei diesen Bausteinen dient die letzte Speicherstelle des EPROM Programmspeichers der Kalibrierung des RC-Oszillators. Microchip sieht vor, daß diese Speicherstelle mit einem MOVLW-Befehl zum Laden eines Kalibrierungswerts programmiert wird. Bei neuen Bausteinen ist diese Speicherstelle bereits entsprechend programmiert. Der Wert 0c80h entspricht dem Assembler Befehl MOVLW 080h. Dieser Befehl wird nach einem Reset als erster Befehl ausgeführt und der program counter springt danach auf 0000h um. In der hed.chip Software ist diese Besonderheit berücksichtigt. Trotzdem müssen noch einige Details beachtet werden:

1.       Bei UV-löschbaren Bausteinen wird diese Speicherstelle ebenfalls gelöscht und muß anschließend mit einem sinnvollen Wert, z.B. 0c80h = MOVLW 080h, programmiert werden. Falls gewünscht kann der Oszillator auch mit einem anderen Wert kalibriert werden.

2.       Wenn in der Quelldatei ein Wert für die Kalibrierung des Oszillators enthalten ist, dann wird dieser Wert nur dann programmiert, wenn der Baustein an dieser Stelle vorher keinen Wert enthält. Sie können also in jedem Fall einen Wert in der Quelldatei vorsehen. Wenn Sie einen Microcontroller programmieren, der bereits ab Werk kalibriert ist, dann wird der von Ihnen vorgesehene Wert ignoriert.

3.       Wenn Sie einen Vergleich mit einer Datei ausführen, dann wird auch der Wert für die Kalibrierung verglichen. Wenn die Datei an dieser Stelle einen anderen Wert enthält, wird ein Verify-Fehler ausgegeben. Dies gilt nur für den Fall eines expliziten Vergleichs mit einer Datei. Im Falle der Programmierung mit anschließendem, automatischen Verify, wird kein Verify-Fehler erzeugt.

4.       Der Befehl MOVLW XX lädt den entsprechende Wert (z.B. 080h) in das W-Register. Es bleibt dem Programm des Controllers überlassen, diese Wert in das OSCCAL-Register, Adresse 05ch zu schreiben.

PIC12C67X, RC-Oszillator Kalibrierung

Bei diesen Bausteinen dient die letzte Speicherstelle des EPROM Programmspeichers der Kalibrierung des Oszillators für den Mode INTRC (Baustein Option FOSC1 oder FOSC0+FOSC1). Das Prinzip ist das Gleiche wie für die Bausteine PIC12C5XX. Statt des Befehls MOVLW wird diese Speicherstelle jedoch mit dem Befehl RETLW programmiert.