Galva-Wisp, low cost ICSP PIC-programmer

Wisp628 galvanisch van PC gescheiden

 

OUD MODEL, DIT MODEL IS OPGEVOLGD DOOR GALVA-WISP MARK II

 

De Wisp628 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 PIC programmer

Galva-Wisp
Een andere oplossing om de PC te beschermen is om de Wisp628 programmer galvanisch van de PC te scheiden (zie schema onderaan) of om de Galva-Wisp te bouwen, dat is de Wisp628 maar met een galvanische scheiding door 2 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))


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


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

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).

De Galva-Wisp is verder gelijk aan de Wisp628, deze kan tot nu toe de volgende PIC-types programmeren:

12F629, 12F675
16F630, 16F676
16F83, 16C84, 16F84(A)
16F627(A), 16F628(A), 16F648A
16F818, 16F819
16F72, 16F73, 16F74, 16F76, 16F77
16F737, 16F747, 16F767, 16F777
16F870, 16F871, 16F872, 16F873(A), 16F874(A), 16F876(A), 16F877(A)
16F87, 16F88
18F242, 18F2439, 18F248, 18F252, 18F2539, 18F258, 18F442, 18F448, 18F452, 18F458
18F1220, 18F1320, 18F2220, 18F2320, 18F4220, 18F4320, 18F4439, 18F4539
18F6520, 18F6525, 18F6585, 18F6620, 18F6720
18F8520, 18F8525, 18F8585, 18F8620, 18F8621, 18F8680, 18F8720

Opmerkingen:
- Schrijven naar ID geheugen is niet ondersteund bij de 16F7x.
- Chips afgebeeld in het grijs worden ondersteund volgens Microchip's programmeer specificaties, maar zijn niet getest met een echte chip.
- Hoewel niet expliciet genoemd worden de LF (low power) varianten van de genoemde chips ook ondersteund.
- Programmeren van chips die hun /MCLR pin kunnen configureren als input (speciaal als dat ook daadwerkelijk wordt gedaan) moeten waarschijnlijk gebruik maken van een extra circuitje.

Overzicht PIC's programmeerbaar door Galva-WISP / WISP628


Onderdelenlijst print 110618 (oud model Galva-Wisp):


De componenten: de 3-pins header en de reset-toets zijn niet per se nodig.

PCB Print 110618 of zelf etsen natuurlijk (31mm x 64mm)
IC1 PIC16F648A (download programma van www.voti.nl)
IC2 MAX232 (of HIN232)
IC3,IC4 PC827 (of LTV827) (dual optocoupler)
LED1,LED2 Rode en groene LED, Ø3mm, 2mA low current type(!)
T1 BC547 NPN transistor
- zie tekst TIP120 NPN darlington transistor (zie tekst)
D1 1N4007 diode
D2,D3,D4 1N4148 diode
D5 SB140 Schottky diode
X1 Kristal 20MHz
R1,R2,R11 1k
R3...R8 47Ω
R9 3k9
R10 2k2
R12 1k8
C1...C4,C6,C7 1µF (evt. tantaal)
C5 1000µF / 6,3V of 10V (radiaal) (zie tekst)
C8 22µF
C9,C10 22pF
C11 100n, axiaal (komt onder IC1, in het IC voetje te liggen)
S1 Reset toets (mag weggelaten worden)
Conn1 15-polig sub-D connector, male
Conn2 9-polig sub-D connector, female
IC-voeten Eigen keus
De meeste onderdelen zijn verkrijgbaar bij Voti


C11 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 SB140.
C11 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.

De Galva-Wisp betrekt zijn spanning van de schakeling waar de te programmeren PIC in zit (5V/25mA) en de RS232 COM-poort (+/- 9V...12V).

Extra circuit
Sommige type PIC's (zoals de 12Fxxx en 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.
Door Vpp (om de PIC in programmeer mode te zetten) een fractie eerder aan te bieden voordat de Vcc (power) spanning op de PIC wordt gezet lost dit probleem op.
De Galva-Wisp maakt voor heel even een power-short (een paar milliseconden) op de voeding van de te programmeren PIC, terwijl de Vpp spanning op de /MCLR pin wordt gezet.
Schottky diode D5 en de grote C5 elco (1000µF) verzekeren dat de Galva-Wisp zijn voeding blijft behouden gedurende deze korte periode.
Hierom is het belangrijk dat de 2 LED's van een low current type zijn, anders is elco C5 te klein.
De LED's zullen met de voorschakelweerstanden R9 (3k9) en R10 (1k8) niet al te fel branden, dit is gedaan om reden van stroombeperking, zodat tijdens het programmeren bufferelco C5 niet leeg raakt gedurende de korte kortsluiting.

Natuurlijk moet de voeding van de PIC wel tegen deze power-short kunnen en mag het niet meer stroom leveren dan de TIP120 darlington transistor kan hebben (een paar ampère), bovendien moet het de spanning daarna ook weer snel kunnen herstellen.
Een voeding gemaakt met de 7805 of 78L05 werken in ieder geval goed, maar sommige lab voedingen niet, omdat deze zijn beveiligd tegen kortsluiting en zich te langzaam herstellen.
In die gevallen helpt het om een 10Ω weerstand tussen de voeding en de schakeling te zetten.

Dit extra circuitje is dus niet nodig als er nooit een 12Fxxx, 16F630 of 16F676 wordt geprogrammeerd.
Attentie: Kies voor C5 een radiale low-voltage elco (6,3V of 10V), anders past het niet op de Galva-Wisp print.


De TIP120 zit niet op de Galva-Wisp print maar moet worden gemonteerd in de 15-polige sub-D connector.
Door het bovenste metalen gedeelte van de TIP120 er af te knippen past het makkelijk in de steker.
De TIP120 wordt aangesloten tussen pin 1 (GND) en pin 2 (+5V) van de connector (zie het kleine schemaatje).
Een weerstand van 1k moet worden gesoldeerd tussen de basis van de TIP120 en pin 7 van de connector.
Aan deze kabel zit een 8-pins DIL-clip, omdat de transistor alleen nodig is bij de kleine PIC's.
Voor de wat grotere PIC's heb ik een andere kabel met een 18-pins DIL clip, maar zonder de TIP120 (dan niet nodig).


Weet wel dat de scheiding tussen 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.
Voor zeer uitgebreide informatie over de Wisp PIC programmer, het .HEX bestand voor de 16F628(A) (IC1) en de besturingssoftware XWisp voor op de PC, hier klikken.

Vooralsnog werkt de Galva-Wisp alleen met XWisp, binnenkort ook met Bumblebee.

Om de Galva-Wisp (en de Wisp628) ook te laten werken vanuit de Positron PIC Basic IDE (F10 toets), is het hulpbestand XWisp.com nodig, omdat XWisp.py niet wordt geaccepteerd door Positron IDE.
Zorg ervoor dat alle XWisp bestanden in de map staan waar ook de Python bestanden zich bevinden en plaats daar het hier te downloaden XWisp.com bij.
Bij programmer filename in Positron IDE type je XWisp.com.

(Uitgebreide omschrijving van de Galva Wisp koppelen aan PIC Basic IDE klik hier.)

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.MCLR Reset, actief laag.
6.PGM (LVP) Programmeer (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

Overzicht aansluitingen met diverse PIC types

 

 

Download XWisp.com
Download schema als PDF bestand
Print layout 110618 als PDF bestand  31 × 64mm  >> Afdruk tips <<
Datasheet MAX232.pdf
Datasheet PC827.pdf
Bestel geprogrammeerde PIC