PIC-Microcontroller

Allgemeines

Hinter den PIC-Mikrocontrollern von Microchip gibt es inzwischen eine ganze Reihe unterschiedlicher Familien und Leistungsklassen. Bisher habe ich nur mit der PIC16-Familie gearbeitet und ich muss zugeben, ich bin kein sonderlich gro├čer Fan dieser Controller.

Die Architektur der Chips ist schon etwas in die Jahre gekommen und nicht mehr zeitgem├Ą├č. Allerdings werden diese Bausteine immer noch weiterentwickelt bzw. weiter aufgebohrt. F├╝r die PIC-Controller gibt es auch keinen freien C-Compiler, wobei die Architektur auch nicht gut f├╝r Hochsprachen geeignet ist. (Es gibt allerdings einen Compiler mit dem Namen CC5x, der f├╝r nicht kommerzielle Anwender kostenlos ist.)

F├╝r die Assemblerprogrammierung gibt es eine kostenlose Entwicklungsumgebung direkt von Microchip mit dem Name “MPLab”. Prinzipiell ist PIC Assembler recht einfach zu erlernen, weil der PIC nur relativ wenige Befehle kennt. Fehleranf├Ąllig bei der Programmierung ist allerdings, dass man sich bei der Entwicklung in Assembler selbst um das Umschalten der Speicherb├Ąnke k├╝mmern muss.

Es gibt aber auch ein paar gute Seiten an den Chips: Sie sind recht robust, was die ESD-Empfindlichkeit und die externe Beschaltung angeht. Au├čerdem ben├Âtigen sie wenig Strom und lassen sich ├╝ber einen weiten Spannungsbereich betreiben (<3V bis 5,5V). F├╝r den Hobbybereich ist au├čerdem praktisch, dass viele Typen auch im DIL-Geh├Ąuse lieferbar sind. Der Preis der Bausteine ist f├╝r den Hobbybereich auch okay.

Kleines Applikationsbeispiel

Da ich mit den PICs privat nicht viel mache, habe ich hier auf der Seite nur einen einfachen RGB-Controller f├╝r 1W Luxeon LEDs als Applikationsbeispiel untergebracht. Ziel bei der Entwicklung war es mit m├Âglichst einfachen Mitteln und Bauteilen (m├Âglichst welche die noch im Schrank lagen…) eine Ansteuerung f├╝r drei 1W Luxeon LEDs zu bauen. Die Ansteuerung der LEDs sollte dabei so erfolgen, dass die einzelnen LEDs jeweils zeitversetzt gedimmt werden um so eine Farbmischung zu erzielen.

Das Ergebnis der Bastelei ist die folgende Platine:

Als Controllerkern wird ein PIC16F628 eingesetzt, der seinen Takt aus dem  internen Resonator erzeugt. Dieser PIC führt eine Pulsweitenmodulation mit 0 % bis 100% Dutycircle für alle drei LED-Farben zeitversetzt durch. Die Realisierung der PWM im Controller erfolgt per Software, weil der PIC keine 3 PWM-Einheiten besitzt. Die Software selbst ist in C geschrieben (CCS Compiler).

Die Ansteuerung der LEDs erfolgt ├╝ber einen p-Kanal MOSFET vom Typ MTD2955E. Dieser MOSFET ist┬á ein bisschen ├╝berdimensioniert und wurde nur verwendet, weil er noch vorhanden war. F├╝r die LED-Ansteuerung ist sonst jeder Logik-Level p-Kanal MOSFET geeignet, der mindestens 350mA Dauerstrom vertr├Ągt.

Die Strombegrenzung f├╝r jede LED erfolgt durch einen Widerstand im MOSFET-Zweig. Dieser Vorwiderstand ist jeweils so ausgelegt, dass bei einem Duty Cycle von 100% ein Strom von 350mA durch die LED nicht ├╝berschritten wird.

Die Spannungsversorgung der Schaltung erfolgt direkt mit +5V, die stabilisiert sein m├╝ssen! Auf der Platine selbst ist auch noch einmal ein dicker Pufferelko untergebracht, der die Lastspitzen beim Durchschalten der MOSFETs abf├Ąngt.

Die Schalter auf der Platine haben im Augenblick keine Funktion. Ggf. k├Ânnen sp├Ąter dar├╝ber einmal unterschiedliche Farbprogramme gew├Ąhlt werden.

├ťbrigens m├╝ssen die Luxeon-LEDs im Betrieb unbedingt auf ein K├╝hlblech oder etwas ├Ąhnliches montiert werden! Au├čerdem sollte man NICHT direkt in die LEDs gucken!

Schaltung mit LEDs in Betrieb


Weiterf├╝hrende Literatur zum Thema PICs:

Das gro├če PIC-Mikro-Handbuch
von Manfred & Anne K├Ânig
ISBN: 3-7723-5995-7