PIC-Brenner8 Rev. 5 / Rev. 4

ein USB-Programmiergerät für 40-/28-/20-/18-/14- und 8-pin Flash-PICs
PIC10Fxxxx, PIC12Fxxxx, PIC16Fxxxx, PIC18Fxxxx, dsPIC30Fxxxx

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


Einleitung
Varianten des Brenner8
Aufbau
Brenner8P
Brenner8
Brenner8smd
Brenner8mini-P
Brenner8mini
kombinierte Brenner8&9
IC-Sockel für die PICs
Stromversorgung
Vpp-Erzeugung
Hinweise zum Aufbau
USB-Besonderheiten
bekannte Probleme
geplante weitere Entwicklungsschritte
Hinweis für AATis e.V.-Brenner
Bisherige Entwicklung

passende Windows-Brenn-Software US-Burn
passende Lunix-Brennsoftware usburn

Dokumentation

zurück 

Brenner8


HINWEIS :
Der Brenner8P (ab Rev. 5) kann mit einem geeigneten Adapter (der aus ihm eine Art Brenner9 macht) auch die dsPIC30F1010/102x, dsPIC33Fxxxx, PIC24xxxx und PIC18FxxJxx brennen. Es ist für diese Typen aber eine andere Firmware zu laden, was dank Bootloader aber in 15 Sekunden erledigt ist.   Die nötigen Infos dazu findet man auf der Brenner9-Seite.

HINWEIS :

Der Brenner8P kann mit einem geeigneten 3,3V-Adapter auch die PIC16LF7xx, PIC16LF1xxx, PIC18FxxKxx, PIC18LFxxKxx mit 3,3V-Betriebssspnnung brennen. Das funktioniert ab Firmware 15 und USBurn 11.1.



Einleitung

Am PC stirbt der klassische Parallelport langsam aus. Mehr und mehr Notebooks und nunmehr auch Desktop-Mainboards verzichten auf die sogenannten Legacy-Schnittstellen, und priorisieren zum Anschluss von Peripheriegeräten die USB-Schnittstelle. Da meine Parallelportbrenner (z.B. Brenner5) ausschließlich an echten Parallelports arbeiten (und nicht an USB-Parallel-Adaptern), und der Brenner2 schon seit längerem auf der Aussterbeliste steht, musste ich einen USB-Brenner für PICs entwickeln.
Ich habe mir damit eigentlich viel zu viel Zeit gelassen, aber ich wollte eine einfache Lösung, die ohne spezielle Adapterchips (z.B. von FTDI) auskommt. Ich wollte eine möglichst preiswerte und möglichst nachbausichere Lösung. Das Ergebnis ist der Brenner8.

Der Brenner 8 ist ein USB-Brenner, der mit geeigneter Software (USBurn für Windows / usburn für Linux) die meisten Flash-PICs in 8- /14 -/18- /20- /28- und 40-pin DIL-Gehäuse brennen kann. PICs in anderen Gehäusen können über eine ICSP-Leitung programmiert werden. Der Brenner versorgt sich vollständig über den USB-Anschluss, und benötigt deshalb keine separate Stromversorgung. Er passt die Programmierspannung automatisch optimal an den jeweils zu  programmierenden PIC an.
Da die Software des Brenner8 auf meine Database zurückgreift, kann er eine weite Palette an PICs brennen.



Varianten des Brenner8

Es existieren mehrere Varianten des Brenner8, die aber alle mit der gleichen Software/Firmware betrieben werden. Je nach Brennertyp eignet sich der Brenner für verschiedene Aufgaben:

Tabelle 1 Brenner8-Versionen
Typ \ brennt 
PIC10/12/16/18
im Testsockel
PIC10/12/16/18 via
ICSP-Adapter
PIC10/12/16/18 via
ICSP in der Schaltung
dsPIC30F
(via ICSP)

PIC18FxxKxx
via Adapter
PIC18FxxJxx, PIC24 und dsPIC33F
 via Adapter (Brenner9)

Brenner8
Brenner8smd
X
X
-
-
X
-
Brenner8-P
X
X
X
X
X
X
Brenner8mini
-
X
-
-
X
-
Brenner8mini-P
-
X
X
X
X
X (Silviu)
Brenner8p9
Brenner8P9smd
X
X
X
X
X
direkt

Die universellste Variante ist Brenner8-P, dessen Bau ich deshalb empfehle.

Die Versionen des Brenner8 ohne IC-Sockel liegt als Brenner8mini auf der Homepage.
Wenn nicht ausdrücklich erwähnt, dann beziehe ich mich im Text immer auf den Brenner8.

Alle Brenner8-Versionen arbeiten mit der gleichen Firmware und mit der gleichen Windows-Software US-Burn oder Linuxsoftware usburn.



Aufbau


Brenner8-P  (rev 5)

Brenner8P rev.4
Die P-Version des Brenner8 ist für das Brennen von PICs in der Schaltung sowie für den Betrieb an Test- und Experimentierplatinen optimiert. Der Brernner8-P benötigt mindestens die FW 0.11 und US-Burn 1.8, um alle neuen Funktionen zu nutzen.
Das Platinenmaß beträgt 75x100 mm. Dieses Platinenmaß ist käuflich, damit entfällt das lästige Zuschneiden der Platine. Das Layout ist (wie bei mir immer) einseitig und nicht zu filigran.

Der Brenner8-P r5 hat folgende Eigenschaften, die über den normalen Brenner8 hinausgehen:

  • Er ist in der Lage, PICs in fertigen Schaltungen zu brennen, wenn die Gesamtstromaufnahme der Schaltung 100mA nicht überschreitet (könnte auf 500 mA erhöht werden).
  • Er hat keine Probleme mit relativ niederohmigen pull-up-Widerständen, die auf der Target-Platine das PIC-Pin MCLR mit Vdd verbinden.
  • Er kann einen PIC in einer angeschlossenen Testplatine brennen, und dann den PIC in dieser Platine starten.
  • Die Testplatine kann durch den Brenner8P mit Betriebsspannung versorgt werden, wenn deren Stromaufnahme 100mA nicht überschreitet.
  • Er kann mit einer Adapterplatine zum Brenner9 umgerüstet werden.


Brenner8
(rev 4)
 
Brenner8 rev.0 Das ist der etwas einfachere Standard-Brenner8.

Das Platinenmaß beträgt 75x100 mm. Dieses Platinenmaß ist käuflich, damit entfällt das lästige Zuschneiden der Platine. Das Layout ist (wie bei mir immer) einseitig und nicht zu filigran. Auf der Bestückungsseite sind zwei Drahtbrücken nötig. Eine davon ist im Stromlaufplan als Widerstand R14 "getarnt".

Hier nun das Layout und die nötigen Dateien: 




Brenner8smd  von Lars (rev 4)
Brenner8smd r2 von Lars Das ist eine sehr kompakte Ausführung des Brenner8 rev4 die sich die Vorteile von SMD-Bauteilen zunutzen macht. Das Layout wurde von Lars entwickelt und aufgebaut. Es ist (ohne den USB-Stecker) knapp 3cm x 10cm klein. Da das Layout mit einer einseitigen Platine (und drei Brücken) auskommt, ist es vom erfahrenen Bastler herstellbar.
Da sich nicht jeder mit den kleinen SMD-Bauteilen anfreunden mag, hat Lars angeboten, Platinen oder ganze Brenner8smd4 gegen eine entsprechende Gebühr anzufertigen. Ich bin daran  nicht beteiligt. Wer sich dafür interessiert, wende sich bitte nicht an mich, sondern direkt an Lars:

email:  pic-brenner@gmx.de





Brenner8P9smd von Lars

Brenner8P9smd
Lars hat eine aktualisierte Version des SMD-Brenners entworfen und erprobt, der die Hardware des Brenner8 und des Brenner9 vereinigt. Dadurch kann dieser SMD-Brenner nach einfachem Tausch der Firmware auch 3,3V-PICs brennen (dsPIC33, PIC24 , PIC18FxxJxx). Natürlich ist dadurch die Bauelementedichte auf der kleinen Platine höher, und ein einseitiges Platinenlayout war nicht mehr möglich.
Achtung:
Der im Layout vorgesehene 10k Widerstand R9 ist nicht zu bestücken! Seine Aufgabe wird von R20&R27 übernommen.

R20 ist auf 5 kOhm zu erhöhen und R27 ist auf 10 kOhm zu erhöhen.



Brenner8p9 von Erkut Ergil

Brenner8p9-Foto
Erkut Ergil entwarf einen kombinierten Brenner8p9. Es ist ein Brenner8p in SMD-Technik mit integriertem 3,3V-Adapter. Die 5V- und 3,3V-Ausgänge sind als RJ45-Buchsen ausgelegt, und entsprechen damit mechanisch in eher dem ICD-Anschluss von Microchip als meinem 5-poligen ICSP-Anschluss.

Erkuts CAD-files kann ich leider nicht verarbeiten, so dass ich dieses Layout weder prüfen noch pflegen/weiterentwickeln kann. Ich halte es aber für ein interessantes Projekt. Die Fotos (nebenstehend und im ZIP-File) zeigen einen Prototypen, der von den CAD-Files noch leicht abweicht. Im Zip-File befinden sich auch BMP- und PDF-Files der Layouts zum Nachbau:


Achtung:
Der im Layout vorgesehene 10k Widerstand R9 ist nicht zu bestücken! Seine Aufgabe wird von R24&R29 übernommen.

R24 ist auf 5 kOhm zu erhöhen und R29 ist auf 10 kOhm zu erhöhen.




Aufbau
:
  1. Brenner8 nach Stromlaufplan zusammenbauen.
  2. Brennprogramm US-Burn mit dem USB-Treiber herunterladen.
  3. Bootloader (bootloader_1_0.hex) mit einem anderen Brenner in den Steuerpic (PIC18F2550) brennen.
  4. Steuerpic einsetzen, Jumper offen lassen
  5. Brenner mit einem USB-Kabel an den Windows-PC anschließen.
  6. Nach Aufforderung durch Windows den USB-Treiber installieren (siehe Handbuch)
  7. US-Burn starten
  8. Mit Hilfe von US-Burn die aktuelle Firmware in den Brenner laden.
  9. Vpp-Kalibrierung durchführen (siehe Handbuch)
  10. Erfolg haben.


IC-Sockel für die PICs Die Platine ist für eine 40-polige Kipphebelfassung (Nullkraftsockel) ausgelegt. Wer aber keine 40-poligen PICs brennen will, kann auch einem 28-polige Kipphebelfassung einsetzen. 
 
28- oder 40-polige Kipphebelfassung 
Die Pins der 40-poligen (und auch der 28-poligen) Kipphebelfassungen haben meist  6/10-Zoll-Reihenabstand (15 mm). Die PICs im 8/14/18/28-Pin-Gehäuse haben aber nur 3/10-Zoll Reihenabstand (7,5 mm). Beim Kauf der Kipphebelfassung ist unbedingt darauf zu achten, dass die schmalen PICs auch in die breite Kipphebelfassung gesteckt werden können. Das ist insbesondere bei Textool-Fassungen nicht selbstverständlich.

Geeignete Fassungen werden z.B. mit "Rasterbreite 7,62-15,24 mm" beworben. Conrad bietet geeignete 40pol-Fassungen  für knapp 11,-€ an, was man schon fast als Schnäppchen bezeichen könnte (189324-xx). Bei Pollin habe ich sie mit viel Glück für unter 5€ bekommen. Manchmal werden aber auch 25€ verlangt. Es lohnt sich also das Suchen nach einem guten Angebot.
Reichelt bietet mal solche und dann wieder andere Typen als TEX40 an. Hier ist vor dem Kauf unbedingt der aktuelle Katalog zu studieren.

Das nebenstehende Bild zeigt Ausschnitte zweier 40poliger Sockel. Der linke (3M) eignet  sich sowohl für 28polige wie auch für 40polige PICs. Der rechte dagegen (Textool) kann ausschließlich 40polige PICs aufnehmen, ist also nicht zu empfehlen.

Beim Einlöten sollte der Hebel von Textool-Fassungen auf "offen" stehen, auch wenn sich das unbequemer lötet. Ansonsten ist es mir schon passiert, dass die relativ locker sitzenden Kontakte schräg fixiert werden und sich nicht mehr richtig öffnen.

richtige (links) und falsche (rechts) Fassung


Stromversorgung

Der Brenner8 ist ein "Bus-powered-USB-Device", das sich über das USB-Kabel mit Strom versorgt. Die Aufnahme liegt unter 100 mA. Die Programmierspannung wird auf der Brennerplatine mit einem kleinen Schaltwandler erzeugt. Da die USB-Spannung in gewissen Grenzen schwanken kann, wird eine Z-Diode als Referenzspannungsquelle benutzt, um immer exakte Programmierspannungen zu erzeugen.


Vpp-Erzeugung

Die zum Brennen des PIC nötige Programmierspannung (10,5V .. 13V) erzeugt der Brenner8 mit einm Schaltregler (boost converter) aus der USB-Spannung. Diese Spannungserzeugung muss nach der Inbetriebnahme kalibriert werden, bevor der erste PIC gebrannt werden kann. Das erfolgt mit Hilfe der Brennersoftware US-Burn (siehe PDF-Handbuch).

Ein unkalibrierter Brenner8 kann jeden PIC problemlos durch Überspannung zerstören!!



Hinweise zum Aufbau

USB-Besonderheiten

Falls der Brenner unter Windows unheimlich langsam reagieren sollte, dann im Gerätemanager für den Brenner8 dem Computer NICHT erlauben den Brenner8 abzuschalten um Energie zu sparen. Leider weiß ich nicht, wie man diese Einstellung im 16-Bit-Windows (Win98/me) vornehmen kann.

Da erst mit Windows98 eine echte USB-Unterstützung eingeführt wurde, eignet sich der Brenner8 nicht für Windows95. Für Windows 98/me kann ich ihn aus den oben genannten Gründen nicht wirklich empfehlen.

Der von mir unter Windows verwendete USB-Treiber von Microchip benötigt unter WindowsXP/2k Administratorrechte. Für Vista enthalten meine Downloadfiles seit Februar 2008  verbesserte Microchip-Treiber.



bekannte Probleme

1.
Einige 28-polige PICs benötigen beim Brennen Vdd und Vss an den Pins AVdd und AVss. Der Brenner8 adaptiert aber nur die Vdd- und Vss-Pins. Betroffen sind (soweit mir bekannt) ausschließlich:

Lösung
Anschluss über den ICSP-Verbinder und dem universellen Adapter.

2.
Es gibt in der PIC16LF-Familie einige neue low-power-PICs, die maximal für Vdd=4V und Vpp=9V geeignet sind. Das trifft ebendso für alle PIC18LxxKxx zu. Die Software USBurn kennt zwar die Programmierverfahren dieser Chips (unterstützt sie also), aber die vom Brenner8 direkt abgegebenen Spannungen sind für diese Chips zu hoch und können sie zerstören. Einen  Adapter zum Brennen dieser Chips ist hier beschrieben. Betroffen sind z.B.:

3.
Wird der Brenner an einem anderen PC-Port betrieben, als dem, an dem er kalibriert wurde, dann dauert der Programmstart manchmal sehr lange. Das ist ein Problem der Programmierspannungsregelung, das in der nächsten Fw/US-Burn-Version behoben sein wird.
Bis es soweit ist, hilft die Wiederholung des 3. Kalibrierschritts  "auto-adjust offset and gain" (wofür keine Messtechnik nötig ist) am aktuellen USB-Port.

4.
Der ICSP-Ausgang des Brenner8 (ohne P) ist nicht in der Lage, über den zu brennenden PIC hinaus noch weitere Hardware zu versorgen. Schon ein parallel zum PIC angeschlossener ELKO von über 50µF ist zu viel. Abhilfe schafft der Brenner8-P mit seinem zusätzlichem Treibertransistor.

5.
Einige PIC18-F-Typen  mit großem Flash- und EEPROM-Speicher lassen sich in seltenen Fällen u.U. nicht löschen und liefern infolgedessen beim Brennen viele Fehler (beobachtet beim PIC18F4525). Als Ursache stellte sich heraus, dass sie zum Löschen eine leicht überhöhte Programmierspannung benötigen. Ab US-Burn 1.5 ist eine Anpassung der Programmierspannung möglich. Das Problem trat in letzter Zeit nicht mehr auf.


6.
Vereinzelt ließen sich PIC16F62x/648 im Brenner8P nicht löschen bzw. fehlerfrei brennen. Hier hilft ein 100nF-Kondensator zwischen Pin2 & Pin3 des ICSP-Steckverbinders bzw. zwischen Pin36 & Pin5 des 40-poligen Testsockels. In der Revision 4 des Brenner8 sowie der Revision 5 des Brenner8P ist dieser Kondensator bereits eingerüstet.

7.
Manchmal erkennt ein Brenner8 bei leerer Fassung einen PIC16F84. Das ist eher ein Schönheitsfehler, er kann aber leicht behoben werden. Dazu lötet man einen zusätzlichen Widerstand (10k..100k, die Größe ist nicht besonders kritisch) zwischen die Pins 3 und 4 der ICSP-Buchse.

8.
In Einzelfällen kommt es vor, dass ein Brenner8 die Kalibrierdaten "verliert". Das zeigt sich dann durch eine entsprechende Fehlermeldung der Brennsoftware. Das passiert insbesondere dann, wenn der Brenner während des Bootens des PC (insbesondere unter Linux) bereits an diesem angeschlossen ist. Die Kommunikation zwischen bootendem Betriebssystem und Brenner führt dabei zu sporadischem Überschreiben einiger gespeicherter Kalibrierwerte. Der Fehlerbehebung ist ab Firmware 15 und USBurn 1.11 behoben. Bei älterer Firmware sollte der Brenner erst nach dem Booten an den PC angesteckt werden.

9.
Die Versorgungsspannung Vdd der PICs liegt etwas unterhalb der USB-Spannung. Ist die USB-Spannung klein, kann der Wert der PIC-Betriebsspannung zu klein werden. Die Brennsoftware US-Burn zeigt beim Programmstart die aktuelle Vdd-Spannung an (z.B.: -- Vdd = 4,981). Die sollte nicht unter 4,75V liegen. Die Gefahr einer zu kleinen Spannung besteht in der Praxis selten, der Anschluss über einen passiven USB-Hub kann das Risiko aber erhöhen.


geplante weitere Entwicklungsschritte

prinzipielle Grenzen des Brenner8


Hinweis für AATis e.V.-Brenner

Wer die Software für den Brenner von der CD kopiert, muss unbedingt den Schreibschutz von den *.dat-Files entfernen.
Alternativ empfehle ich, die aktuelle Version der Brennsoftware US-Burn mit aktueller Database und Firmware einzusetzen.

Der AATis e.V.-Brenner entspricht dem Brenner8P in der Revision 3. Um ihn an den aktuellen Stand der Entwicklung (Rev 4) anzupassen, sollte ein 100nF-Keramikkondensator zwischen die Pins 31 und 32 des 40-poligen Testsockels  und ein weiterer zwischen den Pins 5 und 36 des 40-poligen Testsockels eingelötet werden. Die Kondensatoren werden am besten auf der Unterseite der Platine montiert. Nach dem Einbau der Kondensatoren MUSS auf eine aktuelle Firmware (Fw 0.8a oder neuer) umgestiegen werden. Diese lässt sich (dank  Bootloader) einfach mit der Brennsoftware US-Burn in den Brenner einspielen (siehe Handbuch).

Nicht vergessen die Pins 5, 8 und 31 des 40-poligen Testsockels auf der Platine zu verlöten (wird gern vergessen).



Entwicklung

23.05.2012
Firmware 0.17 mit verbesserter Vpp-Regelung

30.05.2011
Firmware 0.16 mit Unterstützung einiger neuer Typen (16F7xx ...und neuer enhanced-PIC16F1xxx) sowie Bugfix bei PIC30F-Typen mit >64 kByte Flash

12.05.2010
Firmware 15 Schutz vor Verlust der Kalibrierdaten

05.03.2008
Revision5 des Brenner8P: Korrektur der Position des BF959 im Bestückungsplan

07.02.2008
Revision5 des Brenner8P
Die Revision5 des Brenner8 dient verbesserter Stabilität (C10), sowie der Umrüstbarkeit zum Brenner9.

11.01.2008
Firmware-Fw 0.11 mit Unterstützung für 12-Bit-Kern-PICs (10F200 u.ä.)

19.08.2007
Firmware-Fw 0.10

13.04.2007
Test-Firmware-Fw 0.9

2.03.2007
Firmware-Patch (Fw 0.8a) für Brenner8(P) rev4. Hilft bei Problemen mit z.B. PIC16F87x im on-board-Sockel.

29.01.2007/14.02.2007
- Revision 4: Siebkondensatoren für die target-PIC Vdd-Spannung.verbessert den Betrieb an PICs mit großem Flash-Speicher

13.12.2006
- Firmware  0.8 für US-Burn ab Version 1.5

04.12.2006
- das Layout von Brenner8P_r3 ist veröffentlicht. 01.09.2006
- das Layout des Brenner8smd von Lars 24.08.2006
- Firmware 0.7: Patch für PIC18F-Typen mit 64-k-Flash (PIC18F2680/2610/2620/4610...)

17/18.08.2006
- Firmware  0.6 für US-Burn ab Version 1.2 (aber besser ist USBurn 1.3)
- verbesserte ICSP-Eigenschaften für Brenner ohne Vdd-Schalttransistor
- zusammen mit US-Burn 1.3 können Kalibrierdaten im Brenner gespeichert werden
- Bootloader: der Brenner kann zukünftig neue Firmware selbst in den Steuerpic schreiben
- Brenner8r2 bekommt einen zusätzlichen Jumper als Backup zur Aktivierung des Bootloaders

10.08.2006
- Firmware  0.5a für US-Burn ab Version 1.2
- unterstützt Transisstorschalter für Vdd und P-Version des Brenner8mini
  für den Standard-Brenner8 ist kein Upgrade auf Firmware V0.5a nötig

03.08.2006
- Firmware  0.5 für US-Burn ab Version 1.2
- Verbesserte Vpp-Erzeugung/Regelung
- Bugfix (beseitigt Absturz beim Brennen genau einer EEPROM-Zelle)
- Unterstützung für PIC18F-Typen

22.06.2006
- Firmware  0.4 für US-Burn ab Version 1.1e
- Bugfixes (z. B. 16F87xA)

15.06.2006
Brenner8 Rev. 1
- Firmware  0.3 für US-Burn 1.1
- R5 und R16 geändert
- Bugfixes (z. B. 16F84 und EEPROM)
- stabilisierte Programmierspannung

04.06.2006
- Korrektur der Quarzfrequenz.
- Firmware 0.2 für bessere Stabilität an PICs mit 28/40-poligen Gehäusen.

01.06.2006
Die Rev. 0 wird ins als Urversion des Brenners8 veröffentlicht.


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

autor: sprut
erstellt: 01.06.2006
letzte Änderung: 07.11.2012