Übersichts-Tabelle
über Programmiergeräte
Übersichtstabelle
über Programmiersoftware
Programmiergerräte zum Selberbauen
Hat man sein PIC-Programm fertig entwickelt und mit MPLAB in ein HEX-File umgewandelt, muß dieser Code noch in den PIC "hineingebrannt" werden. Dazu dient ein PIC-Programmiergerät - ein Brenner.
Alle Programmiergeräte funktionieren nach dem Prinzip der ICSP. Dabei wird der PIC mit nur 5 Leitungen an den Brenner angeschlossen und über diese die zu brennenden Daten in den PIC geschrieben:
Das Programmiergerät wird von einem PC gesteuert, mit dem es
über ein Kabel verbunden ist. Als Schnittstelle kommen in
Betracht:
Es gibt industielle Brenner wie den PICstart von Microchip, aber auch Eigenbaulösungen. Einige Links verweisen auf Beispiele für Brenner, die am Druckerport oder am Seriellen Port des PC angeschlossen werden.
Falls jemand einen Brenner bauen möchte aber noch unentschlossen ist, welcher Brenner der richtige ist, empfehle ich meinen Brenner5.
Hier stelle ich alle meine Lösungen vor
- den klassischen Brenner1 für den Druckerport
und seine verbesserten Nachfolger Brenner5
und Brenner3
- der Billig-Brenner0 für den Druckerport
- den Brenner2 für den Serialport
- den Brenner8 für den USB-Port
Bei allen hier vorgestellten Brennern handelt es sich um sogenannte 'development programmer' die für Bastelzwecke oder für Prototypenbau geeignet sind. Sollen PICs für Serienprodukte gebrannt werden, dann sollten aufwendigere Brenner verwendet werden, die insbesondere das Brennergebnis bei unterschiedlichsten Betriebsspannungen verifizieren.
Welche PIC-Typen mit einem Brenner gebrannt werden können, wird im Wesentlichen von der verwendeten Brennsoftware bestimmt. Die auf dieser Seite zu den jeweiligen Brennern zugeordneten Typenlisten sind nicht unbedingt vollständig. Ein Blick auf die Webpage der einzusetzenden Software verschafft Klarheit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Eigenbau |
|
|
|
|
|
|
|
|
|
USB |
|
|
Serialport |
|
|
|
|
|
|
ja |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
(PBrenner mit Einschränkungen) |
PBrenner PBrennerNG P18 dsProg(1) (Pivdev & Piclab) |
& usburn |
& usburn |
|
(in Vorbereitung) |
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
|
ja |
|
|
|
|
|
|
|
|
|
nein |
|
|
|
|
|
|
|
|
|
wird gepflegt |
|
|
|
(1) - dsPIC30Fxxxx-Typen können nicht im Sockel des Brenners
programmiert
werden, sondern nur über ein speziell für dsPIC ausgelegten
Adaper
am ICSP-Stecker
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
- PIC10Fxx |
|
|
|
|
|
|
|
X |
|
|
- PIC16Fxxx |
|
(nicht alle) |
|
|
|
|
|
X |
|
|
- PIC18Fxxxx |
|
|
|
|
|
|
|
X |
|
| PIC18FxxJxx | - |
- |
- |
- |
- |
- |
X |
X | X |
| PIC24Fxxxx | - |
- |
- |
- |
- |
- |
X |
X | X |
|
|
|
|
|
|
|
|
|
X |
|
|
|
- |
- |
- |
- |
- |
- |
X |
X | X |
|
|
|
AN589 Brenner2 Brenner1&3 |
AN589 Brenner1&3 |
AN589 Brenner1&3 |
AN589 Brenner1&3 |
AN589 Brenner1&3(1) |
Brenner9(1) |
Brenner9(1) |
PICkit2 ICD2 |
|
|
|
|
|
|
|
|
|
X |
|
| PC-OS |
Windows |
Windows | Windows | Windows | Windows | Windows | Windows | Linux |
Windows |
|
|
|
wurde von PBrennerNG abgelöst |
|
|
|
|
|
wird gepflegt |
|
(1) - dsPIC30Fxxxx-Typen können nicht im Sockel des Brenners programmiert werden, sondern nur über ein speziell für dsPIC ausgelegten Adaper am ICSP-Stecker
Für einen Hobbybastler ist ein PIC-Brenner kein zu anspruchsvolles Bastelprojekt. Ich habe im Laufe der Zeit eine ganze Reihe von Programmiergeräten selber entworfen und gebaut. Die möchte ich hier vorstellen:
![]() |
Der Brenner8 ist PIC-Programmiergerät für den
Anschluß
an das USB-Port. Im Vergleich zu den Parallelportbrennern hat er
folgende
Vorteile:
Es gibt den Brenner8 in verschiedenen Bauformen sowie auch als minimalistischen ICSP-Brenner. |
| Der Brenner9 ist PIC-ICSP-Programmiergerät für den
Anschluß
an das USB-Port. Er ist dafür ausgelegt alle 3,3V-FLASH-PICs zu
programmieren. Damit ergänzt er den Brernner8. Die Windowssoftware USBurn und die Linux-Software usburn unterstützen exclusiv den Brenner9. Diese Software wie auch die Firmware des Brenners werden weiterentwickelt, damit der Brenner9 später alle Flash-PICs brennen kann, die mit 3,3V Betriebsspannung betrieben werden können. Es gibt den Brenner9 in verschiedenen Versionen. Es handelt sich um einen ICSP-Brenner ohne on-board-Programmiersockel. |
![]() |
Der Brenner5 ist der Nachfolger des Brenner3, und
funktioniert genau
wie dieser. Kleine Modifikationen tragen neuen Erfordernissen Rechnung:
Die Windowssoftware P18 unterstützt exclusiv den Brenner5 und dazu 100% kompatible Brenner (z.b. Brenner3). Unter Linux eignet sich Picdev. |
![]() |
Der Brenner3 ist der legitime Nachfolger des Brenner1, und
funktioniert
genau wie dieser. Es ist lediglich die unnütze 8-polige Fassung
gegen
einen großen Sockel für die PIC16F87x und PIC16F7x
ausgetauscht
worden.
Brenner3 läuft zwar notfalls mit der alten
Tait-DOS-Software (nur
PIC16F84) ist aber eigentlich für meine Windowssoftware
PBrennerNG (fast alle 14-Bit-Kern PICs der Serien PIC12F und
PIC16F)
gedacht. |
![]() |
Der gute alte Parallelportbrenner nach dem
David-Tait-Verfahren ist
schon ein Standard für die 16F84-Programmierung. Wer sich auf diese "kleinen" PICs beschränken möchte und bereit ist, mit dem Brennprogramm in der DOS-Box zu arbeiten findet hier die Beschreibung. Ein passendes Windowsprogramm gibt es bei mir zum Download. Dieses Programm kann auch die größeren Flash-PICs brennen, die aber nicht in die Fassungen des Brenner1 passen. Deswegen entwickelte ich eine neue Platine Brenner3, die den Brenner1 ablöst, und neben dem 16F84/627/628 auch alle 16F87x und PIC16F7x akzeptiert. Die 8-polige Fassung dient dem Brennen 8-pin Flash-PICs 12F6xx. Die alten 12Cxxx.unterstützt meiner Brenner dagegen nicht! |
Ich empfehle den Brenner0 nicht für PIC12F629/675,
PIC16F630/676,
obwohl auch diese Chips sich in der Regel brennen lassen.
PICs bei denen der interne Oszillator aktiviert
wurde, und bei denen gleichzeitig MCLR zu einem normalen
I/O-Pin
konfiguriert wurde, lassen sich mit dem Brenner0 nicht mehr brennen
oder
löschen! (INTOSC-MCLR-Falle)
![]() |
Der Brenner0 ist ein Billigbrenner für den Parallelport,
der einen
erweiterten "Quick and Dirty-Brenner" nach Tait darstellt. Er
verzichtet
auf Treiber oder Schalttransistoren, so daß sein Preis nur von
der
PIC-Fassung und vom Druckerportstecker bestimmt wird.
Der Brenner0 ist weniger für jemanden gedacht, der sich intensiv mit PICs beschäftigen möchte, sondern eher für jemanden, der mal einen PIC brennen muß, und für den es sich deshalb nicht lohnt einen richtigen Brenner zu bauen. Brenner0 und Quick and Diry Brenner laufen mit der Tait-Software (pp.exe) im DOS-Fenster oder mit meiner Windowssoftware PBrenner, die ursprünglich für den Brenner1 geschrieben wurde. Aktuellere Software (wie PBrennerNG) funktionieren nicht mit dem Brenner0. |
![]() |
Im Jahr 2000 brauchte ich dringend einen Brenner für
16F876. Gleichzeitig
ärgerte ich mich darüber, das die Software für
16F84-Parallelportbrenner
nur in der DOS-Box lief. Das Resultat war ein Brenner für 16F84, 16F876 und 16F873, der an das serielle Port des PCs angeschlossen und mit einem Windows-Programm bedient wird. Durch den Einsatz der Software PBrenner, unterstützt der Brenner2 inzwischen eine ganze Reihe von PIC-Typen. Der Brenner2 ist nicht gerade minimalistisch. Der Nullkraftsockel nimmt 18-polige und 28-polige PIC-Typen auf. Für ICSP (das Programmieren eines in eine Schaltung bereits eingelöteten PIC) steht neben der Fassung eine 5-polige Buchsenleiste zur Verfügung. Der PC sendet Kommandos über die RS232-Schnittstelle, die der Steuer-PIC auf dem Brenner2 empfängt. Dieser steuert dann den eigentlichen Programmiervorgang, wozu er sich aber noch einer Reihe Transistoren, und Widerstände (SMD-Bauformen auf der Platinenunterseite) bedient. LEDs zeigen an, ob der PIC mit Betriebs- (grün) und Programmierspannung (gelb) versorgt wird. In der aktuellen Version ist der Brenner nur unwesentlich
langsamer
als ein Parallelportbrenner. Ein 16F84 wird in 15 Sekunden
vollständig
programmiert |
Die zugehörigen Files liegen hier.
Hinweis:
Der Nachbau des Brenners2 ist vergleichsweise kompliziert. Falls man
auch einen Parallelportbrenner akzeptieren kann, empfehle ich den
leistungsfähigeren
Brenner5 anstelle des Brenners2.
Bei der Entwicklung und Pflege von Brennprogrammen behandle ich den
Brenner2 inzwischen recht Stiefmütterlich, und das wird sich auch
nicht mehr verbessern.
PBrenner ab V2.3
Die Software PBrenner unterstützt
ab der Version V.2.3 auch den Brenner2. Allerdings ist diese
Unterstützung
noch in der Erprobungsphase. Das Brennen von 16F84, 16F84A, 16F87x und
16F62x funktioniert recht gut. Das Brennen von 16F7x, 16F87xA, 12F6xx
und
16F630/676 ist noch zu langsam und unzuverlässig.
Für alle meine Brennertypen liegt auf meiner Homepage ein komfortables Windows-Steuerprogramm zum Download bereit. Für Linux-Nutzer bietet sich Pikdev an.
Für 16-Bit-Kern-PICs
wie z.B. PIC18Fxx2/xx8 / PIC18Fxxxx
![]() |
Die Software P18
brennt
die PIC18Fxx2/xx8 und viele PIC18Fxxxx auf
|
Für 24-Bit-Kern-dsPICs
wie z.B. dsPIC30Fxxxx
![]() |
Die dsProg
brennt
die dsPIC30Fxxxx
|
Für 14-Bit-Kern-PICs
wie z.B. viele PIC16Fxxx und PIC12Fxxx
![]() |
PBrennerNG
für
|
![]() |
Die alten Programme PBrenner und PIComat stehen auf der
Aussterbeliste,
und werden nicht mehr weiterentwickelt. Sie sind aber die einzige
Software,
die den Brenner2 steuern kann. Deshalb habe ich sie noch auf der
Homepage,
und im Fehlerfall werden sie noch gewartet.
PBrenner für
|
Für 12-Bit-Kern-PICs
wie z.B. PIC10F20x
![]() |
Die Software
FlashOver12
brennt die PIC10F20x, PIC12F50x, PIC16F505, PIC16F5x auf
|
Für 12-, 14-, 16 und 24-Bit-Kern PICs
![]() |
Die Software US-Burn brennt mit |
Nicht jeder kann oder will einen PIC-Brenner selber bauen. Es gibt aber eine ganze Reihe von Fertiglösungen aus industrieller Produktion.
Für die industrielle Massenproduktion gibt es robuste Programmiergeräte, deren Preis einem Einsatz im Privatbereich oder in der Lehre und Ausbildung eher abträglich ist. Diese Geräte haben vor allem den Vorteil, das sie die Funktion des programmierten PICs (d.h. die Korrektheit des gebrannten Programms) bei unterschiedlichen Versorgungsspannungen prüfen können. Auf diesen Luxus kann man aber im Privatbereich oder in der Lehre problemlos verzichten.
Brenner, die nur mit einer festen PIC-Betriebsspannung arbeiten heißen Developement-Programmer, und sind deutlich preiswerter. Einige interessante Typen möchte ich hier vorstellen:
Das PICkit1 von Microchip (USB)
Das hier beschriebene PICkit1 ist zu meiner Hard/Software NICHT kompatibel. Ich stelle es aber hier vor, da es ein preiswerter industriell hergestellter Brenner ist, der sich auch als Experimentierboard eignet.
| Nachdem die Industrie lange Zeit
überwiegend
teure Brenner für den industriellen Prototypenbau oder für
die
industrielle Produktion anbot, gibt es nun von Microchip einen
interessanten
Brenner für Einsteiger, der sich auch gut für Bastler eignet:
das PICkit1
Die schlechte Nachricht vorweg. Das
PICkit1 eignet
sich nur für Flash-PICs mit 8 oder 14 Pins: Eine Erweiterung auf andere PIC-Typen ist nicht möglich, da die Brennroutinen im Steuerpic auf dem Brenner fest abgespeichert sind. Die Routinen wurden für die 12F629/675 entwickelt, und nur noch die 14-pin-Typen 16F630/676 sind als einzige (bisher) dazu kompatibel. MPLAB will aber auch 12F508/509 mit dem PicKit1 brennen können, schon dass erstaunt mich. Außerdem wurde (um den Preis zu minimieren) auf einen Nullkraftsockel (Textoolsockel) verzichtet, der PIC sitzt in einer normalen 14-poligen IC-Fassung. Auch einen ICSP-Steckverbinder gibt es nicht (was für Bastler aber kein Problem darstellt). Eine Integration in MPLAB ist inzwischen vorhanden. Es gibt aber auch ein eigenständiges Brennprogramm. |
![]() |
Das PICkit1 ist nicht nur ein Brenner, sondern auch ein kleines Experimentierboard. Nach dem Brennen kann das Programm im PIC gleich ausprobiert werden. Zum Experimentieren stehen zur Verfügung:
![]() |
Das PICkit besteht aus einer Leiterplatte, die in 2
Hälften aufgeteilt
ist. Eine Hälfte ist nicht bestückt und kann vom Nutzer als
Experimentierboard
(incl. RS232-Interface) bestückt werden.
Die andere Hälfte (linkes Foto) ist Brenner und
Experimentierboard
in einem. Diese Hälfte ist auf dem nebenstehendem Foto zu sehen. Bezugsquelle für das PICkit. ist in Deutschland
semikron. Vielen Dank an Felix, der das für mich herausgefunden hat, und an Klaus für den aktuellen Preis. |
Das PICkit2 von Microchip (USB)
Im Unterschied zum PICkit1 ist das PICkit2 nur
ein Programmiergerät ohne Experimentierplatine, dafür
unterstützt
es aber eine viel breitere Typenpalette.
Das PICkit2 ist eine reiner ICSP-Brenner. Als
solcher besitzt es keinen IC-Sockel, in den der PIC zum programmieren
eingesetzt
wird, sondern nur einen 6-poligen ICSP-Steckverbinder.
Mit diesem Stecker kann der Brenner z.B. an eine Experimentierplatine
mit
ICSP-Anschluß angesteckt werden. In dieser Platine wird dann der
PIC programmiert.

Der ICSP-Steckverbinder des PICkit2 entspricht übrigens nicht dem Microchip-typischen ICD-Anschluß (6-poliger Westernstecker), sondern dem auch auf meinen Brennern verwendeten Steckverbinder, der um ein (für das normale Brennen nicht unbedingt nötiges) Pin verlängert wurde. Meine ICSP-Brenn-Adapter für unterschiedlichste PIC-Typen sollten also am PICkit2 funktionieren.
Zum PICkit2 gehört das "low-pincount-demonstration-board", das
an den ICSP-Verbinder des PICkit2 gesteckt wird, und auf dem ein
18-poliger
IC-Sockel sowie ein paar LEDs (u.ä.) sitzen. Kleine PICs
können
hier programmiert werden, und einfache Experimente sind auch
möglich.
Flexibler wird es, wenn man den universellen
Programmieradapter
anschließ. Dazu muß man sich allerdings ein Adapterkabel
löten.
Wenn man aber schon den Lötkolben heiß macht, kann man sich
so einen Adapter auch für 1/3 des Preises selber bauen. Dann
brennt
mann mit dem PICkit2 warscheinlich alles, was PIC im Namen trägt.
Da das PICkit2 aus dem USB-Bus gespeist wird, benötigt es keine separate Stromversorgung.
Die Preisvorstellungen liegen bei 40..50 Euro.
Das PICkit2 wurde aber auch schon ohne "low-pincount-demonstration-board"
für nur 21 Euro gesichtet. Damit wäre es ein echtes
Schnäppchen.
Auf der Microchip Homepage steht der Preis bei ca. 27,- Euro (plus
Steuer und Versand). Das ergibt einen Endpreis von ca. 40,- Euro.
Bei Reichelt gibt es eine "PICkit™ 2 Debug Express" für 68,-
Euro. Was da zum Lieferumfang gehört weiß ich leider
noch nicht.
Der
Baseline Flash Programmer (USB)
| Wenn man mit dem Rotstift an das PICkit2-Design herangeht und
alles
nicht unbedingt nötige streicht, dann kommt der
Baseline-Flash-Programmer
(BFMP) heraus.
Der BFMP ist eine reiner ICSP-Brenner und hat den selben ICSP-Anschluß wie das PICkit2. Da der BFMP aus dem USB-Bus gespeist wird, benötigt es keine separate Stromversorgung. Andreas schrieb (danke): |
![]() |
Der ICD2 ist ICSP-PIC-Programmiergerät und In-Circuit-Debugger in einem.
| Als Programmiergerät ist es mit
dem PICkit2
vergleichbar. Es hat ebenfalls keinen IC-Sockel, sondern brennt
ausschließlich
über ein ICSP-Kabel. Der
Steckverbinder
ist hier allerdings der Microchip-typische ICD-Stecker (6-polig
western).
Der Anschluß an den PC erfolgt über USB oder RS232. In
letzterem
Fall wird noch ein Streckernetzteil benötigt.
Die Stärke des ICD2 ist aber seine
Debug-Funktion: Der ICD2 ist mit ca. 170,- Euro nicht
gerade ein
Schnäppchen, vor allem da man zusätzlich noch geeignete Experimentierboards
benötigt, oder Anwendungsschaltungen mit
ICD-(ICSP)-Anschluß.
Es gibt preiswertere reine Programmiergeräte (z.B. PICkit2).
Wer aber die Debug-Funktion benötigt, liegt mit dem ICD2 hier
richtig. Für 350,- Euro gibt es das ICD2 im
Set mit dem "PICDEM 2 Plus demonstration board" . Dieses Board enthält
und eignet sich für 18-, 28- and 40-pin PIC16XXXX und PIC18XXXX. |
![]() |
![]() |
universeller Programmieradapter
Es gibt auch von Microchip einen universellen Brennadapter, mit dem nahezu jeder PIC (im DIL-Gehäuse) an das ICD2 angeschlossen werden kann. Dabei handelt es sich um einen Platine mit einem 40-poligen Nullkraftsockel und einem Patch-Feld. Mit dem Patch-Feld verbindet man die Pins des ICSP-Anschlusses mit den für den zu brennenden PIC-Typ richtigen Pins des Nullkraftsockels. Das ist etwas umständlich und fehlerträchtig, dafür aber sehr flexibel Der Preis für diesen Adapter liegt bei 40,- €. Ein Eigenbau ist für 1/3 dieses Preises möglich. |
Autor: sprut
erstellt: 2000
letzte Änderung: 22.09.2008