PIC-Brenner0

ein Billig-Programmiergerät für PIC16F84(A), PIC16F8xx(A), 16F628(A), PIC16F7x u.a.


zurück zu PIC-Projekte , andere Brenner , PIC-Prozessoren , Elektronik , Homepage

+++ACHTUNG+++  Probleme mit neue PC-Mainboards mit 3,3V-Pegel

Problem
Auf aktuellen PC-Mainboards wird oft nicht mehr mit den klassischen TTL-Pegeln (0V / 5V) gearbeitet. Der High-Pegel ist auf 3,3V abgesenkt. Das genügt noch den TTL-Spezifikationen, die verlangen, dass der High-Pegel mindestens 2,5V betragen muss. Die zum PIC-Brennen benötigten Eingänge RB6/RB7 der PICs sind aber Schmitt-Triger Eingänge, die einen High-Pegel von mindestens 4/5 der Betriebsspannung (Vdd) verlangen. Bei Vdd=5V muss der High-Pegel also 4 V betragen. Damit ist die Funktion von Q&D-Brenner und Brenner0 an aktuellen PCs bei Vdd=5V nicht mehr gewärleistet.
Der Brenner0 wird zwar vom Programm PBrenner erkannt, aber er kann keinen PIC mehr ansteuern - schon die Autodetect-Funktion versagt.

Folgende Tabelle zeigt die für den PIC nötigen Pegel (gelbe Zeilen). Außerdem enthält sie die von mir gemessenen Spannungen an einem 3,3V-Mainboard (graue Zeilen).
 
 
Low-Pegel [V]
High-Pegel [V]
PIC mit Vdd = 5 V
< 1
> 4
PIC mit Vdd = 4,5 V
< 0,9
> 3,6
PIC mit Vdd = 4,125 V
< 0,825
> 3,3
Pegel  am Q&D-Brenner
Pegel an RB6 beim Brenner0
0,015
3,33
Pegel an RB7 beim Brenner0 (Silizium-Diode)
0,94
3,94
Pegel an RB7 beim Brenner0 (Shottky-Diode)
0,63
3,67

Es ist leicht zu erkennen, dass die exakte Einhaltung der PIC-Spezifikation nicht mehr möglich ist, insbesondere der Pegel an RB6 im Brenners0 ist zu klein.. Eine Verbesserung lässt sich erreichen, wenn man im Brenner0 als Diode eine Shottky-Diode einsetzt, und die Betriebsspannung des PIC auf Vdd = 4,5V absenkt.
Aber erst durch eine weiteren Absenkung auf Vdd = 4,125V, werden die Schmitt-Trigger-Pegel wieder eingehalten, aber dabei wird leider auch die unterste zulässige Betriebsspannung des PIC (beim Brennen 4,5V) unterschritten. Da hilft nur Ausprobieren, denn meistens akzeptieren PICs auch Signale, die etwas von den Sollwerten abweichen.

Lösung
Der Funktion des Brenners0 und des Q&D-Brenners am modernen PC ist also ein wenig vom Glück und von den Fertigungstoleranzen der PICs abhängig. Generell kann aber der Einsatz einer Schottkydiode im Brenner0 und vor allem die Absenkung der Betriebsspannung des PIC empfohlen werde, um die Chancen zu erhöhen.
Ich konnte durch einfaches Absenken der Betriebsspannung auf 4,5V die Typen 16F628 und 16F87xA problemlos brennen. Vermutlich lässt sich das auf alle modernen PICs übertragen.



 

Einleitung
Die historischen Wurzeln
Der Brenner0
Brennen mit dem Brenner0 und der Software PBrenner
Erfahrungen
 



Einleitung
Der Brenner0 ist ein Billigbrenner für den Parallelport, der einen erweiterten "Quick and Dirty-Brenner" nach Tait darstellt. Er verzichtet auf Treiber-IC und Schalttransistoren, so dass 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 muss, und für den es sich deshalb nicht lohnt einen richtigen Brenner zu bauen. Zum dauerhaften Gebrauch ist der Brenner0 nicht zu empfehlen. Außerdem ist seine Funktionsfähigkeit sehr von der Hardware des angeschlossenen PC abhängig.

Voraussetzung für den Anschluss an einen PC ist das Vorhandensein eines Paralleports (LPT, paralleler Druckerport) an selbigem. Einige aktuelle PCs sowie viele Notebooks verzichten auf das Parallelport, und setzen gänzlich auf USB. Der Betrieb des Brenners über einen externen USB-Parallelport-Wandler funktioniert in der Regel NICHT.


Die historischen Wurzeln
Quick and Dirty Brenner Von David Tait stammt die Idee für einen "Quick and Dirty-Brenner" (Q&D), ohne eigene Stromversorgung, ohne Treiber und ohne elektronische Spannungsschalter.

Der Hauptmangel dieses Billigbrenners ist die fehlende Möglichkeit, den PIC auszulesen. Außerdem funktioniert er oft nicht an modernen PCs.

Es ist dadurch auch nicht möglich beim Brennen, den Erfolg der Brennprozedur zu prüfen. Solange alles funktioniert, sind alle zufrieden, aber wehe der PIC macht zum Schluss nicht was er soll. Liegt es am Programm, an der elektronischen Schaltung oder ist das Programm vielleicht nicht richtig gebrannt worden? War der PIC vielleicht codeprotectet? In so einem Fall kann die Fehlersuche kompliziert werden.
Deshalb kann ich den Q&D-Brenner nicht empfehlen.


Der Brenner0
Deshalb habe ich die Idee des "Quick and Dirty-Brenners" um eine Lesemöglichkeit ergänzt. Die Mehrkosten liegen unter 0,50 €.

Sowohl der Quick and Dirty-Brenner wie auch der Brenner0 bedürfen der fleißigen Mitarbeit des Nutzers, der auf Anweisung die Programmierspannung ein- und aus-schalten muss. Dabei bedeutet einschalten, den Schalter öffnen, und ausschalten, den Schalter schließen. Die Bedienung widerspricht also der Intuition.

Stromlaufplan des Brenner0

Dem Stromlaufplan kann der Anschluss an die Pins des 25-poligen Druckerports (Parallelport) entnommen werden. Die Versorgung mit 12V und 4,5V ist schon komplizierter.

Die Betriebsspannung Vdd des PIC darf nur 4,5V betragen, ansonsten funktioniert der Brenner an modernen PCs nicht! Es eignen sich z.B. 3 in Reihe geschaltete AA-Zellen. Wer nur eine 5V-Quelle zur Verfügung hat, kann den PIC mit dieser Quelle durch eine Silizium-Diode speisen.
Die +12V-Spannung darf je nach PIC-Typ etwas variieren.

Wer ein stabilisiertes Stromversorgungsgerät besitzt, ist fein raus. Alle anderen können z.B. die Spannungen aus dem PC entnehmen. Die 4poligen Strom-Stecker, die die Festplatten und die optischen Laufwerke im PC speisen liefern 5V und 12V.

Aber Vorsicht! Keinen Kurzschluss bauen!

Brenner0 und "Quick and Diry Brenner" laufen mit der Tait-Software (pp.exe) im DOS-Fenster (nur PIC16F84) oder mit meiner Windowssoftware PBrenner (alle PIC16F8xx-, 16F84(A)-, 12F6xx-, 16F62x- und 16F7x-Typen). Dadurch lassen sich im Stromlaufplan auch keine Pin-Nummern für den Anschluss am PIC angeben, da je nach PIC-Typ andere Pins angeschlossen werden müssen. Die richtigen Pins für 16F84/627/628/648 lassen sich dem oberen Stromlaufplan (Q&D-Brenner) entnehmen.


Brennen mit dem Brenner0 und der Software PBrenner
Im Programm PBrenner sind im Hardwaresetup folgende Einstellungen vorzunehmen:
  • Brenner-Typ:  Parallelport individuell
  • Treiber:          7407/keine
  • Schalter:         von Hand
Auf keinen Fall darf das Feld 'Quick and Dirty' aktiviert werden, dadurch würden die Vorzüge des Brenner0 nicht genutzt werden.
Die +4,5V sind vor dem Programmstart einzuschalten, ansonsten wird der Brenner nicht sicher erkannt. 

Der Schalter zwischen MCLR und Masse wird auf Weisung des Programms PBrenner manuell betätigt. Dabei bedeutet:

  • '12V ein':  der Schalter ist zu öffnen
  • '12V aus': der Schalter ist zu schließen
Erst jeweils nach dem Schalten ist das 'Anweisungsfenster' mit clicken auf 'OK' zu schließen.
Setup-Einstellungen für Brenner0


Erfahrungen
typischer Billigbenner für einmaligen Gebrauch ;-) Der Brenner0 funktioniert bevorzugt an alten PCs (aus der Zeit der 5V-Signalspannung).

Bei Tests mit dem Brenner0 auf vier verschiedenen Rechnern funktionierte der Brenner0 an einem Rechner nicht. An diesem Rechner schien das Druckerport defekt zu sein. ACK verhielt sich wie eine Ausgangsleitung und nicht wie ein Eingang. In diesem Zusammenhang ermahne ich zu einem nicht allzu unsauberen Aufbau, denn auch ein Kurzschluss im Brenner könnte einen Druckerport beschädigen, und dann ist guter Rat teuer. (So teuer wie eine separate Druckerportschnittstellenkarte oder so teuer wie ein neues PC-Mainboard.)
Der Rechner mit den fehlerhaften Druckerport druckt aber unter Windows immer noch einwandfrei.

An einigen PCs ist es nötig, D0 auf 270 Ohm zu verringern.

Der Brenner0 arbeitet also zusammen mit der Software PBrenner fehlerfrei und deutlich sicherer als ein "Quick and Diry Brenner".
Einfacher kann man wohl kaum mal auf die Schnelle mal einen PIC brennen.

Oben stehendes Foto zeigt einen Brenner0-"Testaufbau", für Wegwerfschaltungen lohnen Leiterplatten nicht. Eine 5-polige ICSP-Buchse (schwarzer Gnubbel, links im Bild) ist die Schnittstelle zum PIC, hier könnte man auch gleich eine Schaltkreisfassung benutzen. Das blaue Hosenträgerkabel geht zum Druckerport, der Schalter  oben-rechts ist für die 12-V. Der schwarze Gnubbel, der unten im Bild zu sehen ist, ist eine Buchse in die ein Steckernetzteil 13 V einspeist. Das schwarz-rote Kabel geht zu einer 4,5-V-Quelle.
Die exakte Einhaltung der Betriebsspannung (4,5V) ist für die Funktion wichtig. Bei einer höheren Spannung lässt sich der PIC nicht mehr ansteuern, bei einer kleineren Spannung unterschreitet man die Mindestbetriebsspannung des PIC.
 

Es kann durchaus vorkommen, das ein Brenner0 beim Start des Brennprogramms von diesem nicht erkannt wird, und doch funktioniert. Wenn der Brenner0 vom Brennprogramm nicht gefunden wird, kann man folgendes Versuchen.

  1. Der Brenner muss an das standard-LPT1 angeschlossen werden.
  2. Man wählt im Setup der Brennersoftware PBrenner den Brenner-Typ "Quick&Dirty (LPT1)".
  3. Man klickt im PBrenner-Haupfenster auf das "Brenner suchen" Symbol - der Brenner wird scheinbar gefunden.
  4. Man wählt im Setup der Brennersoftware PBrenner die oben beschriebenen Einstellungen für den Brenner0.
Hat man einen vom PIC16F84 verschiedenen PIC und dieser wird mit Autodetect erkannt, dann hat man gewonnen. Der Brenner0 kann nun normal benutzt werden. Beim PIC16F84 ist Autodetect nicht aussagekräftig. Man muss dann versuchen ein HEX-File zu brennen, um zu erfahren, ob der Brenner0 funktioniert.
 

Die Vdd-Spannung ist beimn Brenner0 nicht schaltbar. Desshalb lassen sich PICs bei denen der interne Oszillator aktiviert wurde, und bei denen gleichzeitig MCLR zu  einem  normalen I/O-Pin konfiguriert wurde, mit dem Brenner0 nicht mehr brennen oder löschen! (INTOSC-MCLR-Falle)


zurück zu PIC-Projekte , andere Brenner , PIC-Prozessoren , Elektronik , Homepage
Autor: sprut
erstellt: 2000
letzte Änderung: 05.01.2005