Hauptseite Castellano  Deutsch  English 

PIC-16Fxxx-Programmierer 2.4

Die Software programmiert ('brennt') Flash-ROM-Controller PIC 12Fxxx/16Fxxx von Microchip mit Hilfe der seriellen Schnittstelle des PC. Außerdem bietet sie einen einfachen Debugger und die Möglichkeit, den Oszillator abzugleichen.
Das Paket enthält auch Leiterplattenlayouts für ein preiswertes Programmiermodul und drei Testmodule.

Software und Leiterplatten sind für Ausbildungszwecke und private Anwender gedacht. Eine gewerbliche Nutzung ist nur im Rahmen von Forschung und Entwicklung gestattet.

Benötigt: Windows 98 oder besser, 15 MByte Festplattenspeicher, serielle Schnittstelle.
(Da das Programm nur Standardfunktionen von Windows nutzt, läuft es anscheinend auch mit 'WinE' unter Linux.)

Um in einer anderen Sprache zu installieren, kann man "picpr246.exe /L=XX" ausführen, wobei 'XX' entweder 'DE', 'EN' oder 'ES' ist.

Kommentare und Fehlermeldungen an:   Kontakt


Unterstützte Controller:

8-pin:  12F609*, 12HV609*, 12F615*, 12HV615*, 12F629, 12F635, 12F675, 12F683
14-pin:  16F610*, 16HV610*, 16F616*, 16HV616*, 16F630, 16F636, 16F676, 16F684, 16F688
18-pin:  16F627, 16F628, 16F627A, 16F628A, 16F648A,
16F716,
16F818, 16F819,
16C84, 16F83, 16F84, 16F84A,
16F87, 16F88
20-pin:  16F631, 16F639, 16F677, 16F685, 16F687, 16F689, 16F690,
16F785, 16HV785
28-pin:  16F72, 16F73, 16F76,
16F737, 16F767,
16F870, 16F872, 16F873, 16F876, 16F873A, 16F876A,
16F882, 16F883, 16F886,
16F913, 16F916
40-pin:  16F74, 16F77,
16F747, 16F777,
16F871, 16F874, 16F877, 16F874A, 16F877A,
16F884, 16F887,
16F914, 16F917

* = ungetestet!

Debugger funktioniert mit: 16F7x7, 16F818/819, 16F87x, 16F87xA, 16F87/88, 16F88x, 16F91x.

Datenblätter der Controller können direkt von Microchip geladen werden.


Bedienoberfläche

Die Bedienoberfläche des Programms ist bewußt einfach gehalten und erlaubt den direkten Zugriff auf alle wesentlichen Parameter und Befehle. Neben Controllertyp und serieller Schnittstelle kann man auswählen, welche Speicherbereiche des Controllers man programmieren, vergleichen oder lesen will.

[Hauptfenster][Info...]

Im Untermenü Ansicht kann man die Sprache der Bedienoberfläche auswählen und Optionen einstellen.
In Verbindung mit dem speziellen Programmiermodul läßt sich beispielsweise detailliert einstellen, bei welchen Spannungen die einzelnen Operationen ablaufen sollen. Das ist besonders wichtig, falls man den PIC direkt in der Anwenderschaltung programmieren oder lesen möchte.

[Menü 'Ansicht'][Fenster 'Optionen']

Debugger

Einige PIC 16Fxxx besitzen eine interne Debuggerschaltung. Zur Ansteuerung des Debuggers muß zusätzlich zum Anwenderprogramm eine spezielle Software in den PIC geschrieben werden.
Wenn man den Debugger nutzt, dann werden neben den letzten 144 oder 160 Programmspeicherplätzen weitere Ressourcen im PIC belegt: ein Stack-Level, vier Register zur Speicherung von internen Variablen und die Leitungen /MCLR, RB6 und RB7, die der Kommunikation mit dem Programmiermodul dienen.
Im Gegensatz zu Microchips Debugger ICD kann der Watchdog Timer eingeschaltet sein.

Hauptunterschiede zum ICD2, ICD3:
 'PicProm'ICD2, ICD3
Unterstützte Controller:  einige 16Fxxxalle Typen
Programmspeicherplätze:144 oder 160256
Belegte Nutzerregister:412
WDT nutzbar:janein
Zeit für Debuggereintritt: bis zu 70ms -
Lesezeit für ein Register:1500 Tosc*7000 Tosc*
Lesezeit für 16
aufeinanderfolgende Register:
24000 Tosc*  22000 Tosc*
* Oszillator-Taktperioden des PIC

[Fenster 'Debugger']

Die Debugger-Software arbeitet mit dem Oszillator des zu testenden PIC.
'PicProm' paßt sich im Bereich zwischen 15kHz und 60MHz an dessen Taktfrequenz an, indem das Programmiermodul bei jedem Debugger-Eintritt (mit Haltepunkt oder Einzelschritt) die Taktperiode des Zielsystems bestimmt. Dadurch läuft die Debugger-Kommunikation immer mit der maximal möglichen Geschwindigkeit.

Nach der Aktivierung des Debuggers führt der PIC prinzipiell den ersten Befehl aus und hält danach an.
Jetzt kann man:

Editor

Der Editor stellt die geladene HEX-Datei in Assemblersyntax dar. Beim Einlesen wird die Datei umfassend analysiert. Insbesondere versucht 'PicProm', zu jedem Befehl die gerade aktive Registerbank zu ermitteln, um den richtigen Registernamen anzeigen zu können.

[Fenster 'Editor']

Oszillatorabgleich

'PicProm' bietet die Möglichkeit, die Frequenz des internen oder des externen RC-Oszillators zu bestimmen. Während der Messung wird der Wert viermal je Sekunde aktualisiert. Die Genauigkeit liegt bei ±0,01% über den ganzen Meßbereich von 15kHz bis 60MHz.
Bei Verwendung eines Regelwiderstandes im externen RC-Oszillator kann man die Taktfrequenz frei einstellen.

[Fenster 'Oszillatorabgleich']

Moderne PIC besitzen einen internen Oszillator, der sich in gewissen Grenzen abstimmen läßt, indem man einen Korrekturwert in das OSCTUNE-Register schreibt. 'PicProm' kann diesen OSCTUNE-Wert für eine gegebene Frequenz ermitteln und automatisch in die geladene HEX-Datei übertragen.

Es ist allerdings zu beachten, daß der Wert nur individuell für das gemessene Exemplar gültig ist und außerdem von Umgebungstemperatur und Betriebsspannung abhängt.

Serienprogrammierer

Für Unterrichtszwecke kann es nötig sein, mehrere Experimentalaufbauten rasch mit identisch programmierten PIC auszustatten. Um den Bedienaufwand so gering wie möglich zu halten, wurde ein Serienprogrammierer implementiert.
'PicProm' erkennt selbständig, wenn man einen PIC zum Programmieren in die Fassung steckt, und der Programmier-Zyklus startet automatisch nach einer frei wählbaren Einschaltverzögerung.


Interfacemodul

Für die nötige Pegelanpassung zwischen serieller Schnittstelle und Mikrocontroller sorgt ein mehr oder weniger aufwendiges Interfacemodul.

Die von 'PicProm' unterstützte einfache Variante benötigt zwar wenig Bauteile, erlaubt aber ausschließlich das Lesen und Programmieren des PIC und setzt zwingend einen Desktop-PC mit einer "kräftigen" Schnittstelle voraus. Für eine einwandfreie Programmierung muß die Schnittstelle einen stabilen High-Pegel von mindestens +11V bei einem Laststrom von 5mA bereitstellen.

[Schaltplan]

Um alle Möglichkeiten von 'PicProm' auszuschöpfen, benötigt man das darauf abgestimmte Programmiermodul. Das Herzstück des Moduls ist ein PIC 16F628(A). Er empfängt Kommandos von einer serielle Schnittstelle des PC und arbeitet sie autonom ab.

[Programmiermodul]

Bei der Schaltungsentwicklung wurde sehr viel Wert darauf gelegt, den Strombedarf des Programmiermoduls so klein wie möglich zu halten. Im Stand-By liegt die Stromaufnahme unter 3mA und während des Programmierens bei etwa 9mA. In Verbindung mit einer leistungskräftigen seriellen Schnittstelle eines Desktop-PC kann man einen PIC ohne den Bedarf einer zusätzliche Stromversorgung 'brennen'.

Hauptmerkmale des Moduls sind:


Die folgenden Schaltbilder zeigen, wie man die Programmiersignale an den PIC anschließt.

[Verbindungsschemas]


Einige typische Programmierzeiten für den ganzen Speicher (einschließlich Vergleich):

Controller  Größe  Spezielles Modul    Einfaches Modul
    Vdd = 5V    Vdd = 3,3V
12F629 1024 7s - 14s*
16F818 1024 3s 4s 8s*
16F84 1024 20s - 24s*
12F683 2048 6s - 13s*
16F716 2048 5s - 11s*
16HV7852048 - 7s 13s*
16F648A4096 34s - 50s*
16F690 4096 11s 14s 23s*
16F737 4096 9s - 23s*
16F873 4096 26s 45s 42s*
16F913 4096 11s 14s 23s*
16F876A8192 13s 22s 35s*
16F886 8192 15s 21s 36s*

* Hängt von der PC-Konfiguration ab.


zurück zur Hauptseite