Hauptseite Castellano  Deutsch  English 

Wie man einen PIC 12Fxxx/16Fxxx programmiert

Diese PIC werden mit einem proprietären seriellen Protokoll programmiert. Man kann sie also nicht einfach direkt an ein "übliches" Interface anschließen. Glücklicherweise sind die zeitlichen Anforderungen ziemlich lax. Dadurch erhält man die Möglichkeit, die Programmiersequenz mit Hilfe einiger Leitungen einer parallelen oder seriellen Schnittstelle des PC per Software zu erzeugen.

[Schaltplan] Neben der Betriebsspannung sind drei weitere Signale nötig: die Programmierspannung Vpp (ca. 13V), sowie Programmiertakt (clk = PGC = ICSPCLK) und Programmierdaten (data = PGD = ICSPDAT).

Da die meisten PIC eine Programmierspannung Vpp leicht unterhalb der Spezifikation tolerieren, bietet sich die serielle Schnittstelle eines Desktop-PC mit ihren Signalpegeln von ±12V an, um einen PIC ohne die Notwendigkeit einer Extra-Spannungsquelle zu "brennen".

Die Pegelanpassung läßt sich mit wenigen Bauteilen erledigen.
Allerdings hat diese einfache Schaltung ihre Grenzen und erlaubt nur das Lesen und Schreiben des PIC. Es gibt auch keine Garantie, daß sie mit allen Controllern funktioniert, da sie die Programmier-Spezifikationen nur teilweise einhält.
(Leiterbild (seitenverkehrt), Bestückungsplan)

Das Schaltbild unten zeigt, wie man die Programmiersignale an den PIC anschließt.

Mit ICSP in der Schaltung programmieren

ICSP bietet eine Möglichkeit, den Mikrocontroller innerhalb der Anwendungsschaltung zu programmieren. Das ist besonders von Vorteil in der Ausbildung und Entwicklung, wo wiederholt zwischen dem Programmieren des PIC und dem Testen der Schaltung gewechselt wird. Man vermeidet dabei nicht nur Risiken, die entstehen, wenn der PIC zwischen verschiedenen Fassungen bewegt wird – wie beispielsweise das Verbiegen der Anschlußbeine oder das "Foltern" des PIC mit elektrostatischen Entladungen –, sondern spart auch Zeit.

Um ICSP nutzen zu können, darf weder die Schaltung die Programmiersignale verfälschen, noch sollten die Programmiersignale die Schaltung beeinflussen.
Die wichtigsten Programmierbedingungen sind:

  1. Die an /MCLR angelegte Programmierspannung Vpp sollte innerhalb weniger Mikrosekunden zwischen Null und 13 Volt umschalten.
  2. Die Takt- und Datensignale müssen innerhalb einer Mikrosekunde von Vdd zu GND und umgekehrt wechseln.
  3. Einige PIC nutzen einen Anschluß (RB3 or RB4) als PGM-Signal für den LVP-Mode (Low Voltage Programming). Dieser Anschluß muß während des Programmierens auf Low bleiben.
  4. Manche PIC erwarten, daß die Programmierspannung Vpp vor der Betriebsspannung Vdd angelegt wird. In diesem Fall muß Vdd vom Programmiermodul aus angesteuert werden.

Die einfachste Lösung, um die ersten beiden Bedingungen einzuhalten, besteht darin, diese Anschlüsse in der Anwenderschaltung nicht zu verwenden. Falls man den Debugger benutzen möchte, ist das sogar obligatorisch.

[ICSP-Schaltbild] Empfehlungen:

Zuordnung der ICSP-Signale zu den Anschlüssen eines PIC 12Fxxx/16Fxxx

Die Nummer unter dem Signalnamen entspricht dem Anschluß am ICSP-Steckverbinder des Programmiermoduls.

Bitte beachten: die Signalreihenfolge am ICSP-Anschluß weicht von der anderer PIC-Programmierer ab. Bei Verwendung des Programmiermoduls mit anderen Test-Platinen ist ein Adapter nötig.

Controller Vpp
(1)
GND
(2)
Vdd
(3)
Data
(4)
Clk 
(5)
PGM
@ "Low"
Vdd-Bereich
Programmierung
8-pin 12F629/675 4 8 1 7 8 - 4,5V - 5,5V
andere 12Fxxx 4 8 1 7 8 - 2,0V - 5,5V
14-pin 12F630/676 4 14 1 13 12 - 4,5V - 5,5V
andere 16F6xx 4 14 1 13 12 - 2,0V - 5,5V
18-pin 16F62x(A), 16F648A 4 5 14 13 12 10 4,5V - 5,5V
16F716 4 5 14 13 12 - 4,5V - 5,5V
16F818/819 4 5 14 13 12 9 2,0V - 5,5V
16F84(A) 4 5 14 13 12 - 4,5V - 5,5V
16F87/88 4 5 14 13 12 9 2,0V - 5,5V
20-pin 16F6xx, 16F785 4 20 1 19 18 - 2,0V - 5,5V
28-pin 16F7x 1 8, 19 20 28 27 24 4,75V - 5,25V
16F7x7 1 8, 19 20 28 27 - 4,75V - 5,25V
16F87x 1 8, 19 20 28 27 24 2,5V - 5,5V
16F87xA 1 8, 19 20 28 27 24 2,0V - 5,5V
16F88x 1 8, 19 20 28 27 24 2,0V - 5,5V
16F91x 1 8, 19 20 28 27 24 2,0V - 5,5V
40-pin 16F7x 1 12, 31 11, 32 40 38 36 4,75V - 5,25V
16F7x7 1 12, 31 11, 32 40 38 - 4,75V - 5,25V
16F87x 1 12, 31 11, 32 40 38 36 2,5V - 5,5V
16F87xA 1 12, 31 11, 32 40 38 36 2,0V - 5,5V
16F88x 1 12, 31 11, 32 40 38 36 2,0V - 5,5V
16F91x 1 12, 31 11, 32 40 38 36 2,0V - 5,5V

Verbindungsschemas bei seitlicher Platzierung des ICSP-Steckverbinders

Die folgenden Schaltbilder zeigen, wie man die Programmiersignale an die PIC 12Fxxx/16Fxxx anschließt.

[Verbindungsschemas]


zurück zur Hauptseite