Galva-Wisp mark II, low cost ICSP PIC-programmer

Galvanisch van PC gescheiden PIC programmer

De Wisp648 van www.voti.nl is een In Circuit Seriële Programmer om een flash PIC te programmeren die tijdens het programmeren meestal gewoon in de schakeling kan blijven zitten.
De PIC hoeft dus niet steeds uit de schakeling genomen te worden om in een losse programmer geprogrammeerd te worden, maar kan gewoon in het breadboard of de printplaat blijven zitten.
Geen gedoe dus van steeds weer de PIC uit de print halen, in de programmer plaatsen, programmeren, uit de programmer halen en weer terugzetten in breadboard of print.
Gevaarlijk wordt het als die PIC rechtstreeks op het 230V lichtnet is aangesloten, zoals de draadloos bediende (en trafoloze!) lichtdimmer van deze site, dan is het beter de PIC apart van de schakeling te programmeren.


De Galva-Wisp (mark II) PIC programmer.
 

Galva-Wisp
Een andere oplossing om de PC te beschermen is om de Wisp648 programmer galvanisch van de PC te scheiden of om de Galva-Wisp te bouwen, dat is de Wisp628 maar dan met een galvanische scheiding door twee dual-optocouplers.
Verder is de Galva-Wisp uitgebreid met een groene power on LED, een rode program LED en een print druktoets voor de mogelijkheid de geprogrammeerde PIC handmatig te resetten.
Het handmatig resetten is overigens alleen mogelijk als MCLR enabled is (CONFIG MCLRE_ON in PIC-Basic (= default)).
 

MARK II
Het verschil met Galva-Wisp MARK I is dat bij de MARK II de MAX232 is komen te vervallen.



De PIC die op de Galva-Wisp zelf zit bestuurt de Galva-Wisp en is dus niet de te programmeren PIC!
 

De Galva-Wisp haalt zijn voeding uit de schakeling waar de te programmeren PIC in zit (5V/20mA) en de RS232 COM-poort (+/- 9V...12V).
De PIC die geprogrammeerd moet worden blijft gewoon zitten in de schakeling (op de print of breadboard) terwijl hij geprogrammeerd wordt, zie de foto's hieronder.


Hier zit de Galva-Wisp PIC programmer rechtstreeks aangesloten op de COM poort van een laptop.
Er kan natuurlijk ook een (1:1) verlengkabeltje tussen COM poort en programmer worden geplaatst.

 


Is er geen COM poort aanwezig, dan kun je gebruik maken van een USB-serial adapter.
 

Een bijzonder soepele "diodekabel" met afscherming om elke ader is zeer geschikt als programmeerkabel.
Het verbinden van de te programmeren PIC met de PIC
programmer kan met losse draden (zie boven) maar het
gaat het makkelijkst met een DIL-clip (zie links).
Programmeren van de PIC kan op deze manier zelfs als
de PIC al in een print is gesoldeerd (zie bovenste foto's).

 
Maak de kabel aan de DIL-clip niet langer dan een meter.
Het is bovendien aan te bevelen om een kabel te gebruiken waarvan elke ader zijn eigen afscherming heeft (zie foto rechts).
Deze is eventueel te maken van een oude "diodekabel", knip de 5-polige DIN-stekers eraf en je hebt een soepel snoer met aparte afscherming per ader om een programmeerkabel van te maken.
 

ICSP, In Circuit Serial Programming (= de PIC in de schakeling van zichzelf programmeren)
Een apart voetje maken om de PIC te programmeren is natuurlijk gewoon mogelijk, maar waarom zou je dat doen?
Dan mis je juist het makkelijke van ICSP, het in circuit programmeren.
Bovendien moet daar dan weer een voeding aangehangen worden.

Bekijk het zo:
Je maakt een schakeling die je gaat besturen met een PIC.
Die schakeling zal dus ook een (5V) voeding van zichzelf hebben of krijgen, anders gaat je PIC schakeling niet werken.
Nou, waarom dan niet meteen van die voeding gebruik gemaakt en de PIC rechtstreeks in de schakeling gaan programmeren!
Het hele ICSP idee is daarop gebaseerd.

De Galva-Wisp haalt (tijdelijk) zijn voeding dan rechtstreeks vanaf jouw printje.
Een DIL clip (zie foto's hierboven) over de PIC heeft alle signalen en voeding in één keer te pakken.
Zelfs een programmeerconnector op de print is dan niet nodig.

De 13V programmeerspanning (Vpp) die voor de flash PIC's nodig is tijdens programmeren, wordt door de Galva-Wisp zelf gegenereerd uit de 5V voedingsspanning, dus ook daar heb je geen omkijken naar.
 

Overzicht alle door Galva-Wisp / Wisp648 ondersteunde PIC types op numerieke volgorde
Een selectie PIC's die programmeerbaar zijn door de Galva-Wisp / Wisp648 met specificaties
Overzicht aansluitingen met diverse PIC types
Meer info over In Circuit Serieel Programmeren (ICSP)
Conrad heeft een DIL-clip in zijn assortiment

 


Onderdelenlijst print 130101:


De componenten: de reset-toets is niet per se nodig.
 

Print 130101 Zelf etsen of door iemand laten maken (31mm x 54mm)
IC1 PIC16F648A - Download het HEX bestand onderaan deze pagina
IC2,IC3 PC827 (of LTV827) (dual optocoupler)
LED1,LED2 Groene en rode LED, Ø3mm, low current type
T1 BC547 NPN transistor
T2 TIP120 NPN darlington transistor (zie hier)
D1,D2,D3,D4 BAT85 Schottky diode (1N4148 kan ook, maar BAT85 verdient voorkeur)
D5 SB140 Schottky diode (of SB130, of 1N5819)
X1 Kristal 20MHz
R1,R2,R9...R12 1k
R3...R8 47Ω
R13 2k2
C1 1000µF / 6,3V of 10V (radiaal) (zie hier)
C2 100n (axiaal, komt onder IC1, in het IC voetje te liggen)
C3,C4 1µF (tantaal)
C5 22µF
C6,C7 22pF
S1 Reset toets (mag weggelaten worden)
Conn1 15-polig sub-D connector, male
Conn2 9-polig sub-D connector, female
IC-voet 18-pins, aangeraden is een voet met gedraaide buscontacten (zie foto)

De meeste onderdelen zijn verkrijgbaar bij webshop Voti.
Bestel daar dan meteen een stuk of wat PIC's, die zijn daar goedkoop.
 

 
C2 wordt binnenin het IC-voetje onder de PIC gemonteerd.
Let ook op het draadje aan pin 7 van de 9-polige sub-D connector.

 

Let er op dat de 2 optocouplers met de nokjes naar elkaar toe worden gemonteerd.
Diode D5 moet een Schottky diode zijn, bijvoorbeeld type SB130, SB140 of 1N5819.
Een kleiner type Schottky diode (zoals BAT85) wordt echter afgeraden omdat deze mogelijk de piekstroom bij inschakelen niet overleeft.

C2 wordt in het IC-voetje onder de PIC gemonteerd (zie foto).
De PIC moet sowieso in een voetje zodat deze van tijd tot tijd van nieuwe software kan worden voorzien zodat ook de nieuwste PIC types geprogrammeerd kunnen worden.
Updaten kan door eerst de update in een andere 16F648 te programmeren en dan de PIC (IC1) te vervangen.
De "oude" PIC is dan weer voor een ander project te herprogrammeren of nog beter, houd hem als reserve voor het geval er een ongelukje gebeurt door bijvoorbeeld een te hoge voedingsspanning, waardoor de PIC van de Galva-Wisp zelf stuk zou gaan.
Het wordt aangeraden altijd een voorgeprogrammeerde reserve PIC voor de Galva-Wisp achter de hand te houden.

Kies voor C1 een radiale (= staand) low-voltage elco (6,3V of 10V), anders past het niet op de Galva-Wisp print.
De waarde 1000µF lijkt aan de grote kant, maar dit heeft een reden bij het programmeren van kleine PIC's.
Bij het programmeren van kleine PIC's (o.a. 12Fxxx) moet de voeding van de target chip (= de te programmeren PIC) heel even worden onderbroken.
De Galva-Wisp doet dat door de voeding van de target chip enkele milliseconden kort te sluiten, alleen valt daarmee ook de voeding van de Galva-Wisp zelf weg.
Die 1000uF is er nu voor dat de Galva-Wisp daar zolang op kan teren.
Een kleinere elco plaatsen kan dus tot problemen leiden bij het programmeren van kleine PIC's, daarom 1000µF.
 

Lees, voordat je de print gaat solderen, eerst het artikel met veelgemaakte soldeerfouten, zodat je die fouten op voorhand niet maakt.

Veelgemaakte soldeerfouten


Kleine PIC's
Sommige PIC types (zoals de 8-pins 12Fxxx en 14-pins 16F630/16F676) kunnen hun MCLR pin ook als ingang configureren.
Deze chips willen (in de meeste gevallen) niet meer in programmeermode als de MCLR pin ook daadwerkelijk als ingang is geconfigureerd.
Er is daarom een extra circuitje nodig als er zo'n kleine PIC geprogrammeerd moet worden.

Meer info over programmeren van kleine PIC's


Weet wel dat de galvanische scheiding tussen de programmer en PC zit en niet tussen de programmer en de schakeling, als er dus een aan het lichtnet verbonden PIC wordt geprogrammeerd (bv. een dimmer), staan delen van de programmer ook onder 230V!
Weet zeker wat je doet als je PIC's programmeert die met deze gevaarlijke spanning zijn verbonden, de Galva-Wisp is puur voor bescherming van je PC (ook bij het programmeren aan experimentele schakelingen zonder hoge spanningen).
Verder is de Galva-Wisp gelijk aan de Wisp628 van Voti.

De Wisp648 is de opvolger van de Wisp628.
Voor zeer uitgebreide informatie over de Wisp PIC programmer, hier klikken.


PC software

XWisp
XWisp is geschreven door Wouter van Ooijen.


Screendump van XWisp terwijl het een PIC programmeert.
 

De PIC in de Galva-Wisp (IC1) moet firmware versie V1.30 hebben.
Deze is te downloaden onderaan deze pagina.

Download XWisp
Beschrijving XWisp aan Positron PIC Basic koppelen
Meer info over de XWisp PC software (Engelstalig)

 


XWisp2  (met interessante features, check zijn website)
Het derde programma XWisp2, is een variant van XWisp.
Het is mogelijk zelf PIC types toe te voegen en het draait ook onder Linux en eComStation.
XWisp2 is geschreven door Rob Hamerling.


XWisp2w.exe is de Windows versie (openen in een DOS box).
 

De PIC in de Galva-Wisp (IC1) moet firmware versie V1.30 hebben.
Deze is te downloaden onderaan deze pagina.

Download XWisp2
Beschrijving XWisp2 installeren en aan Positron PIC Basic koppelen
Meer info over XWisp2 PC software (Engelstalig)

 


Schema Galva-Wisp mark II


Schema Galva-Wisp Mark II.

 

Aan de 15-polige sub-D connector wordt de te programmeren PIC aangesloten:
1. GND De Galva-Wisp programmer haalt zijn voeding uit de schakeling waar ook de te programmeren PIC in zit.
2. +5V
3. PG clock Seriële programmeer klok (Serial programming clock) meestal PORTB.6.
4. PG data Seriële programmeer gegevens (Serial programming data) meestal PORTB.7.
5. Vpp / MCLR Programmeerspanning (13V, gegenereerd door de Galva-Wisp) / Master CLeaR (Reset), actief laag.
6. PGM (LVP) Programmeren (Optioneel, Low Voltage Programming).
7. Asynch==>PIC Optioneel, deze pinnen hoeven niet te worden gebruikt. Deze zijn degenen die verbonden worden met de build-in UART van de PIC's. (Niet alle PIC types hebben een UART)
8. Asynch<==PIC

*) Pin 7 wordt ook gebruikt voor aansturing van de TIP120 bij het programmeren van kleine PIC's.

 

   

 

HEX software (V1.30 firmware) voor IC1 (16F648A)
Werkt de Galva-Wisp niet? Dan de fout analyseren
Download schema als PDF bestand
Print layout 130101 als PDF bestand  31 × 54mm  >> Afdruk tips <<
Datasheet PC827.pdf
Bestel geprogrammeerde PIC