|
Allgemeines:
Unter Programmieren mit ICSP[1] (manchmal auch ISP) versteht
man das Programmieren eines (programmierbaren) Bauteils direkt in der Schaltung. Das zu programmierende Bauteil
(hier der PIC16F87) muss bei einem Software-Update oder bei der Erstprogrammierung nicht aus der Schaltung
genommen werden. Je nach Bauteilfamilie sind dazu unterschiedlich viele Leitungen notwendig. Bei der
PIC16-Familie sind für die ICSP-Programmierung die folgenden fünf Leitungen notwendig. Die Pinnummern beziehen
sich hier auf den für dieses Projekt verwendeten PIC16F87 (bzw. für alle PIC-Typen in einem 18poligen
DIP-Gehäuse).
Weiters ist bei der PIC-Familie für die ICSP-Programmierung eine entsprechende Interfaceschaltung notwendig. Die Abbildung E.1 zeigt diesen Ausschnitt aus dem Schaltplan aus Abbildung 2.1 (siehe Abschnitt 2. Schaltungsbeschreibung)
Downloadkabel:
Als Downloadkabel verwende ich ein 6poliges Flachbandkabel mit einer Länge von ca. 15 bis 20 cm. Warum
6polig? Die Taktleitung ist von störenden Einstreuungen sehr empfindlich. Sie befindet sich bei mir daher
zwischen zwei Leitungen mit fixem Potential (GND und +5V). Die Abbildung E.2 zeigt die "Schaltung"
des Downloadkabels.
Programmiergerät:
Zur Programmierung des PIC-Mikrocontroller verwende ich einen Nachbau aus dem Internet. Auf der Webseite von
Jörg Bredendiek [Sprut 2007] befasst sich der Autor sehr ausführlich
mit der PIC-Familie und stellt auch einige Eigenentwicklungen vor, darunter auch den "Brenner5", den
ich schon lange verwende und mir dabei gute Dienste leistet. Als Software verwende ich "PBrennerNG"
ebenfalls von dieser Seite.
Dieser Programmer ist sehr einfach aufgebaut - verwendet allerdings den Parallelport - und benutzt intern
auch das ICSP-Prinzip. Die Abbildung E.3 zeigt das Programmiergerät, das Downloadkabel und die
"Zielhardware" (also den elektronischen Adventkranz).
1 ICSP steht für In-Circuit-Serial-Programming