Article
PICProg 2003
A versatile PIC production programmer
This programmer was specially designed for those of you requiring a cheap way to program PIC microcontrollers, without sacrificing useful features as compared with professional programmers on the market. The circuit described here is capable of handling more than 85 different types of PIC micro!The popularity of PIC microcontrollers has seen a healthy increase these past few years, particularly when the first chips with Flash memory were introduced. Since the launch of the most popular member of the PIC family, the 16F84, dozens of successor types have made it to industrial as well as hobby use, not in the least thanks to projects and New Product releases published in Elektor Electronics. Of the more recent ‘beasts’ produced by Microchip, the PIC16F627/628 come to mind, or the PIC16F818/PIC16F819 which is a perfect replacement for the PIC16F84. These micros offer, among others, extra hardware for an RS232 link, a PWM (pulsewidth modulation) module and additional timers.
Materials
Gerber file
CAM/CAD data for the PCB referred to in this article is available as a Gerber file. Elektor GREEN and GOLD members can exclusively download these files for free as part of their membership. Gerber files allow a PCB to be produced on an appropriate device available locally, or through an online PCB manufacturing service.
Elektor recommends the Elektor PCB Service service from its business partner Eurocircuits or AISLER as the best services for its own prototypes and volume production.
The use of our Gerber files is provided under a modified Creative Commons license. Creative Commons offers authors, scientists, educators and other creatives the freedom to handle their copyright in a more free way without losing their ownership.
PCB
Extra info / Update
This project from our September 2003 issue has been immensely successful and the following frequently asked questions (FAQs) have been gathered from readers’ correspondence regarding this design. The answers are provided jointly by the author and our in-house design staff.1. I’m having problems with COMDLG32.OCX. An error report pops up telling me OCX is out of date.In most cases, this problem may be solved simply by copying all ocx (*.ocx) files to the Windows\System or Windows\System32 directory.2. READ on a PIC16F84 fails. Nothing happens, I get error report TRANSMISSION FAILED, or a READ window opens and nothing happens. The operation is occasionally successful.You’re looking at bad communication between PC and programmer, usually with laptops and notebooks. Replace T3 with a BC547, omit R20 and fit a 10k resistor between pin 7 of K2 and the base of T3. A future version of the software will contain communication error signalling and reporting.3. The PIC16F874A cannot be programmed; however no problems are encountered with the standard version (no A suffix).The A versions employ a different algorithm. Support will be incorporated in an update.4. Can you offer support for the PIC16C54, -C55 and -C57?Sorry, we can’t. These processors have been omitted right from the start because they are more expensive than comparable Flash types. We may investigate the possibilities of using equivalent types from the 16C55x series with serial programming capabilities. This is quite complicated however.5. Will there be an update for the 18xxx series?These new PICs are also eligible for support through an update. However we need to get samples first.6. Erasing a PIC16F628A and reprogramming it produces an error at address 0000. The same with the PIC16F73.The problem is under investigation, it may be the same as with the 16F874A. A 16F73 has only just arrived.7. Where can I buy or download the HEX or BIN file to program my own PIC in position IC6?As already explained in an earlier Correction/Update (November 2003), the code cannot be made available because the author receives royalty payments for every copy sold of the ready-programmed PIC.8. Where’s the list of PIC devices that can be handled?The list can be retrieved from the Windows program itself but for your convenience, here’s a printed version:12C508, 12C508A , 12C509 , 12C509A, 12CR509A, 12CE518 , 12CE519, 12C671, 12C672, 12CE673, 12CE674, 12F629, 12F675, 16C505, 16C554 , 16C556, 16C558, 16C61, 16C62, 16C62A, 16C62B, 16C620, 16C620A , 16C621, 16C621A, 16C622, 16C622A, 16CE623 , 16CE624, 16CE625, 16F627, 16LF627, 16F627A, 16F628 , 16LF628, 16F628A , 16C63, 16C63A, 16F630, 16C64, 16C64A, 16C642, 16C65, 16C65A, 16C65B, 16C66, 16C662, 16C67, 16F676, 16C71, 16C710, 16C711, 16C712, 16C715, 16C716, 16C72, 16F72, 16C72A, 16C73, 16F73, 16C73A, 16C73B, 16C74, 16F74, 16C74A, 16C76, 16F76, 16C77,16F77, 16CR83, 16F83, 16C84, 16CR84, 16F84, 16F84A, 16F87, 16F88, 16F818, 16F819, 16F870, 16F871, 16F872 , 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A, 16F877, 16F877A.
Component list
Resistors:
R1-R4,R7-R13,R16-R19 = 10k? SMD
R5 = 220?
R6 = 1k?8
R14,R15 = 1k?
R20,R21,R32 = 47k?
R22,R23,R25,R27,R29,R31 = 30k?0 1%
R24,R26,R28,R30 = 15k?0 1%
R33 = 100k?
P1 = 500? preset, vertical, multiturn
Capacitors:
C1,C2 = 22pF
C3-C6 = 10µF 25V radial
C7-C11 = 100nF SMD
C12 = 470µF 40V axial
Semiconductors:
D1,D2,D3 = 1N4148
D4 = LED, green, 3mm, low-current
D5 = LED, red, 3mm, low-current
T1,T2 = BS250
T3 = BS170
IC1 = 74HC03 SMD
IC2 = 74HC4066 SMD
IC3 = 7805
IC4 = MAX232
IC5 = TL082CP
IC6 = PIC16F874-20/P (programmed, order code 010202-41)
IC7 = LM317LZ
B1 = B80C1500 (round case) (80V piv,
1.5A)
Miscellaneous:
K1 = 40-way ZIF programming socket, plus a 10-way and a 12-way SIL contact strip
K2 = 10-way boxheader
K3 = 9-way sub-D socket (female), with
IDC connector (not on PCB!)
K4 = 6-way SIL pinheader
K5 = 2-way pinheader
K6 = 4-way SIL pinheader
JP1 = 2-way SIL pinheader with jumper
X1 = 18.432MHz quartz crystal
10-way IDC connector
Length of 10-way flatcable
Case, size 120 x 60 x 40 mm, e.g., Velleman # G410
Connector for mains adapter, chassis mount
PCB, order code 010202-1
Disk, Windows software, order code 010202-11 or Free Download
Runtime files, file number 010202-12, Free Download
R1-R4,R7-R13,R16-R19 = 10k? SMD
R5 = 220?
R6 = 1k?8
R14,R15 = 1k?
R20,R21,R32 = 47k?
R22,R23,R25,R27,R29,R31 = 30k?0 1%
R24,R26,R28,R30 = 15k?0 1%
R33 = 100k?
P1 = 500? preset, vertical, multiturn
Capacitors:
C1,C2 = 22pF
C3-C6 = 10µF 25V radial
C7-C11 = 100nF SMD
C12 = 470µF 40V axial
Semiconductors:
D1,D2,D3 = 1N4148
D4 = LED, green, 3mm, low-current
D5 = LED, red, 3mm, low-current
T1,T2 = BS250
T3 = BS170
IC1 = 74HC03 SMD
IC2 = 74HC4066 SMD
IC3 = 7805
IC4 = MAX232
IC5 = TL082CP
IC6 = PIC16F874-20/P (programmed, order code 010202-41)
IC7 = LM317LZ
B1 = B80C1500 (round case) (80V piv,
1.5A)
Miscellaneous:
K1 = 40-way ZIF programming socket, plus a 10-way and a 12-way SIL contact strip
K2 = 10-way boxheader
K3 = 9-way sub-D socket (female), with
IDC connector (not on PCB!)
K4 = 6-way SIL pinheader
K5 = 2-way pinheader
K6 = 4-way SIL pinheader
JP1 = 2-way SIL pinheader with jumper
X1 = 18.432MHz quartz crystal
10-way IDC connector
Length of 10-way flatcable
Case, size 120 x 60 x 40 mm, e.g., Velleman # G410
Connector for mains adapter, chassis mount
PCB, order code 010202-1
Disk, Windows software, order code 010202-11 or Free Download
Runtime files, file number 010202-12, Free Download
Discussion (0 comments)