Schon viel hatte ich von dieser Microcontroller-Serie der Firma MicroChip gehört, doch hatte ich mich - wie viele andere Hobbyelektroniker - noch nicht an diese Giganten herangetraut. Einen Microcontroller in eigenen Projekten zu verwenden kam mir so vor, wie es ein Sprichwort so schön beschreibt: Mit Kanonen auf Spatzen schießen.
Doch diese Aussage ist schlichtweg unzutreffend. Denn was Menschen, die so etwas sagen, wirklich scheuen, ist die Einstiegsarbeit in die Materie, die nun einmal bisweilen nicht allzu spannend sein kann. Vor kurzem entdeckte ich im Conrad-Katalog jedoch etwas Interessantes: Das PIC programmer and experimentation board von Velleman.
Denn auch ein Grund, warum viele den Umgang mit PIC-Controllern scheuen, ist der, dass professionelle Programmiergeräte von Natur aus ziemlich teuer sind. Doch dieses Kit bietet zum einen die Möglichkeit, diverse 8-, 14-, 18- und 28-Pin-PICs zu programmieren, und zum anderen, das Programm anschließend auch zu simulieren: denn auf dem Board sind 6 LEDs und 4 Taster untergebracht. Programmiert wird es ganz bequem über die serielle Computerschnittstelle RS232. Hier ein Foto des Boards:

Gut zu erkennen sind die verschiedenen Programmiersockel. Im 18-Pin-Sockel steckt auch schon direkt ein PIC, denn dieser ist im Lieferumfang enthalten. Dieser PIC - der PIC16F627A - ist ein Midrange-Controller, der für einfache bis anspruchsvollere Projekte durchaus ausreicht.
Mit enthalten im Software-Paket ist die Brennsoftware ProgPic2:

Damit fällt es spielend leicht, Programme in den PIC zu übertragen. Vorausgesetzt natürlich, man hat ein Programm geschrieben. Und da liegt in der Regel das Problem. Mit dabei ist auch noch ein Assembler, mit dem man Programme, die man selber in Maschinensprache geschrieben hat, kompilieren kann. Doch Assembler mutet vielen als ein wenig kryptisch an. Obwohl die Sprache an sich nicht allzu kompliziert ist, ist sie jedoch eingefleischten BASIC-Programmierern wie mir aufgrund fehlender Struktur eher unsympathisch. Doch das ist kein Grund zum Verzweifeln, denn PICs haben die angenehme Eigenschaft, dass sie auch in C programmeirt werden können: Für PICs gibt es etliche C-Compiler im Internet.
Zunächst sollte man sich die Entwicklungsumgebung MPLAB von MicroChip herunterladen. Diese gibt es kostenlos in der Download-Rubrik. Damit können viele Projekte bequem verwaltet werden. Zudem bietet sie den Vorteil, dass viele C-Compiler integriert werden können. So auch der PICC-Compiler. Diesen C-Compiler gibt es in der kostenlosen Version in Form des PICC-Lite Compilers, der für Hobbybastler aber vollkommen ausreicht. Weblinks zu Seiten, wo man diesen Compiler herunterladen kann, sind ebenfalls auf microchip.com zu finden. Man muss sich jedoch registrieren, was aber an sich kein Problem sein sollte.
Nach Installation des MPLAB und des Compilers kann es also losgehen. Das erste Program wartet!
Sehen wir uns zunächst einmal den PIC16F627 an:

Was zunächst auffällt, ist, dass es eine Menge an Bezeichnungen gibt. Bei jedem PIC gibt es verschiedene Ports. Das sind hier Port A und Port B, nur dass sie hier RA und RB heißen. In jedem Port gibt es verschiedene Bits, typischerweise 8, nummeriert von 0 bis 7. Hier sind das also RA0-RA7 und RB0-RB7. Auf diese Ports kann man im C-Programm ziemlich einfach zugreifen, indem man sie wie Variablen behandelt. Darauf möchte ich jetzt jedoch nicht näher eingehen. Wer etwas über die Programmierung von PICs erfahren möchte, kann folgende Seiten besuchen, die sich wirklich hervorragend mit dem Thema auseinandersetzen:
Denn dieser kleine Leitfaden soll nicht allzu sehr in die Tiefe gehen, sondern nur aufzeigen, wie man an die erforderlichen Kenntnisse kommt, um PICs programmieren zu können.
Für alle, die jedoch schon einmal in C programmiert haben oder generell Programmierkenntnisse besitzen, sollte es nicht allzu kompliziert werden. Im Verzeichnis des installierten PICC-Lite Compilers ist zudem ein Ordner mit Beispielprogrammen zu finden, die auch ausreichend auf englisch kommentiert sind. Diese Codes stellen schon ein Fundament dar, auf das man seine eigenen Entwicklungen durchaus stützen kann. Natürlich steht es auch jedem frei, die C-Codes der PIC-Projekte dieser Homepage als Verständnisstütze zu verwenden.
Hat man sein Programm geschrieben, kann man es kompilieren, und es entsteht eine .hex-Datei. Diese Datei enthält die Programminformationen, die in den PIC geschrieben werden sollen. Diese Datei lässt sich problemlos mit obiger Software ProgPic2 in den PIC übertragen. Wenn man nun das Programm übertragen hat, sollte man es - falls möglich - noch auf dem Board testen, indem man den Kippschalter auf RUN stellt. Die LEDs sind übrigens an die Bits 0-5 des Ports RB des PIC16F627A angeschlossen, die vier Taster an die Bits 0-3 des Ports RA. Einfache Programme lassen sich so also auf Funktionalität testen.
Wichtig ist, dass man in diesem Moment den PIC nicht einfach aus der Schaltung hinauszieht, sondern dies nur tut, solange der Schalter auf Standby steht, da sonst die Fehlfunktion des PIC die Folge sein kann.
Dies soll es mit diesem kleinen Leitfaden auch schon gewesen sein, der Rest kommt nur durch Probieren, Probieren, und nochmals Probieren...
Obwohl das Basteln mit PICs teilweise frustierend sein kann, halte ich es letztenendes durchaus für lohnenswert, sich damit auseinanderzusetzen. Seiten zu PICs gibt es im Internet zuhauf, man ist mit seinen Programmierproblemen also fast nie allein. Eine nützliche Rubrik gerade für Anfängerfehler beim Programmieren gibt es unter sprut.de: der Bereich Fallen befast sich exakt mit den Stolpersteinen, die sich einem mal spontan in den Weg stellen können. Ich kann nur aus eigener Erfahrung berichten, dass mir einige der Tips dort wirklich sehr weitergeholfen haben.
In diesem Sinne möchte ich jedem, der sich nun an die PIC-Controller heranwagen will, viel Glück, aber vor allem viel Spaß wünschen.
Hier ist ein ganz geeignetes Einsteigerprojekt zu finden: der PIC-Zähler I.
There is no English translation of this page available yet. It will take some more time for me to translate the whole website.
If you have a particular interest in this page getting translated as fast as possible, please contact me; I will see what I can do. Please click here for the German version.