PIC Programmer MkV
is designed to get you into PIC Programming for just a few dollars. It
uses just 12 components. Most of them will be in your
"junk-box" and the PC board is a small piece of matrix board.
It's the cheapest way to get started.
As well as PIC PROGRAMMER MkV you will need these 4 things:
1. A desk-top computer with DB-9
serial port. (This programmer will not work on a lap-top computer and may not work with Vista.)
2. A software program called
IC-Prog 105C-a and some helpful
notes to guide you with setting up your computer. (This project is not suitable for In-Circuit Programming.
You need to remove the chip from the project you are creating and
program it in the 18 pin socket on the programmer. Eight pin chips are
fitted with pin 1 aligning with pin 1 of the socket.)
3. A PIC chip,
either PIC12F629 or PIC16F628 and
4. A project
using one of these micros.
This will get you into producing a MICROCONTROLLER PROJECT.
We have concentrated on two PIC chips. An 8 pin and 18 pin chip.
The 8 pin chip can be either PIC12F629 or PIC12F675 and the 18 pin chip
is PIC16F628 or PIC16F675.
The programmer will work with many other chips but we are concentrating
on these two types to get you started.
Not only is a microcontroller project simpler than using lots of
discrete chips, but it can be cheaper and easier to modify and provide a
greater range of features than lots of individual chips.
On top of this you can produce a project that requires a program and
this can be "locked" from prying eyes. This makes it saleable and
you can protect your Intellectual Property - and make money.
Talking Electronics has produced a range of simple projects and provides
assistance to get you into programming and creating projects
that you have only "dreamed of."
Getting into microcontroller
programming will change your life.
But before we go any further, let's build the programmer:
THE CIRCUIT
Here's the starting point:
PIC PROGRAMMER MkV
BUILDING THE PIC
PROGRAMMER
The circuit is constructed on a small piece of matrix board. All the
components are readily available and the 3 red LEDs act as a visual
indication that the programmer is operating as well as creating a 5v
rail for the chip. The other two LEDs indicate the clock line is
operating and 13v is present on the programming pin. It does not
indicate the actual voltage - you will need to measure the voltage with
a voltmeter to determine this.
A 470R resistor is connected between pins 4 and 8 inside the plug. This
allows 4 lines to be taken to the project.
Complete PIC Programmer
MkV
Top and bottom view of
PIC Programmer MkV
The wiring is under the board.
The top view shows the underside wiring to help you
follow the circuit. WIRING THE PLUG AND
LEAD
The lead can be any 4-core
cable. We have used 4-core telephone cable. Follow the diagram to
prevent any mistakes. The 470R resistor is soldered to pins 4 and 8 of
the female plug.
IF IT DOESN'T WORK
The 5v supply
voltage for the chip and the 13v-14v programming voltage comes from the
RS-232 feature of the serial port. Some of the lines making up the
RS-232 are capable of rising to a positive voltage (about 8 to 12v) and
falling to a negative voltage (about -8v to -12v). There are also lines
that fluctuate from 0v to +5v. But unfortunately some computers
fluctuate between +8v and -8v and some are less.
If the 3 red LEDs on the programmer do not illuminate when a chip is
inserted, the most common problem is the 13v rail. The lines are not
producing the 13v rail.
To solve this problem, fit 4 tiny button cells between the 15k resistor
and Vpp of the chip.
Only a very small current is required when programming and zero current
is taken when the chip is removed, so the cells with last a life-time.
PIC PROGRAMMER MkV
with 6v Modification
USING OTHER PROGRAMMERS
There are many programmers on the market to program PIC
chips but this project is the cheapest. We have designed it to program
two of the smallest and cheapest chips in the range.
If you don't have a computer with a serial port, you will need a
lap-top and buy a programmer from MicroChip.
It is called PICkit-2 and costs approx $65.00.
It uses the USB port found on most lap top computers.
It comes with 2 disks containing all the software you need and is designed to program "In-Circuit."
But you will need an adapter to connect between PICkit-2 and the project
you are developing. This
adapter
comes from Talking
Electronics. You will need to add 5 pins to your project to accept the
adapter. More about this on Talking Electronics website. See: 'In
Circuit Programming."
PICkit-2 is available from MicroChip:
http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120
(cost $50.00 USD plus postage). The PICkit-2 from MicroChip is a
"package" that also contains 2 CD's and an extra PC board that connects
to the programmer so any 8, 14, 18 and 20 pin micros can be programmed. The
board contains 4 LEDs, a push-button and a pot as well as some
extra lands so you can create a small project.
The
adapter
that connects PICkit-2 to the project (you are designing) must
be purchased from Talking Electronics - otherwise you will have to use
the PC board (called an experimental board) that comes with PICkit-2 from Microchip
and move the chip to this board while it gets "burnt" (programmed).
PIC
Programmer MkV
PARTS LIST |
|
2
- 470R 1/4 watt (1
inside socket)
1 - 4k7 "
2 - 10k "
1 - 15k "
1 - 100u 25vw electrolytic
1 - BC 547 transistor or similar
3 - red 3mm red LEDs
1 - green 3mm LED
1 - yellow 3mm LED
1 - 18 pin IC socket
1m - 4-core telephone cable
1 - 9 pin D-type female
1 - 9 pin backshell
30cm - very fine solder
1 - Matrix Board 13holes x
14 holes |
|
INSTALLING THE SOFTWARE
This programmer requires software to perform the "programming"
or "burning" operation.
The software is called
IC-Prog 105C-a and can be
found on talking electronics website. Create a file and call it
PIC files. Download the .zip file into PIC files. Use: "Extract Here"
to extract the file to produce:
icprog105c-a.exe
Right-click your mouse on the file and select "Send to:" Desktop
(create shortcut)
A folder will appear on your Desktop with a short-cut to IC-PROG.
For help setting up the port on your computer and getting the program to run,
see Multi Chip Programmer on Talking Electronics website.
or Multi Chip Programmer
Next put MPASM into
PIC files folder. Use: "Extract Here" to
extract the file to produce:MPASM.exe
Next put
NotePad2 into
PIC files folder. Use: "Extract Here" to extract
the file to produce:NotePad2.exe
Next put .inc into
PIC files
Finally look through the
list of projects and put one or more .asm files into PIC
files
ICONs on your desktop.
MPASM and ICProg are in PIC files folder
Help with installing IC-Prog
You will need the following files:
directio.zip
(35KB) loaddrv.zip
(28KB)
One
problem is to do with
running Windows XP and using the "Windows API"
option in IC-Prog instead of "Direct IO".
By running a utility called "totalio.sys," (in
directio.zip) all applications get full control of
the I/O ports and thus IC-Prog works perfectly under
Windows XP and Windows 2000, since the IC-Prog
driver that is available doesn't work for XP (at
least it doesn't work for me).
How To Use IC-Prog with Widows XP/NT/2000:
You can download a driver for IC-Prog from their
website - it is called "icprog.sys" but it is really
just a renamed driver originally called "giveio.sys".
This utility was written by Dale Roberts as one of a
set of utilities to give applications under NT more
control over the I/O ports. Clicking on the "Enable
NT/2000/XP Driver" check box in the settings will
try to install this "icprog.sys". Under XP (on my
box anyway), it installs but can't be started. There
is probably some black magic regarding security
permissions when creating symbolic links.
The purpose of this driver is to give an application
access to the I/O port but only through the driver.
This is because XP, like 2000 and NT, doesn't let
you have full access to I/O ports like in
95/98/MS-DOS.
However, there is another way. By using another
utility written by Dale Roberts, called "totalio.sys",
ALL applications can have full control over the I/O
ports, and not through a driver's interface. This
means you can let IC-Prog use "Direct I/O" instead
of "Windows API (in the "Interface" group of
hardware settings) and ignore the "Enable NT/2000/XP
Driver" option completely. "totalio.sys" (in theory)
should also let any programs which control ports
directly to work under XP.
Installing "totalio.sys":
Extract "totalio.sys" from the "directio.zip" file
to "C:\Windows\system32\drivers" directory (or
equivalent).
Extract "loaddrv.exe" from the "loaddrv.zip" file
and run it.
In the edit box, type in the full path to "totalio.sys"
eg. "C:\windows\system32\drivers\totalio.sys"
Click "Install".
Click "Start".
Click "OK".
The driver should now be running. You can check this
by running "Start->Programs->
Accessories->System Tools->System Information", then
clicking on the tree item "System
Information->Software Environment->Drivers" and
looking for "totalio" in the view on the right.
To start or stop the driver after it has been
installed, you could use the "loaddrv.exe"
program, or use the following commands in a command
prompt:
"net start totalio" to start the driver.
"net stop totalio" to stop the driver.
You could put this in a batch file in the IC-Prog
directory, eg.
@echo off
net start totalio
icprog
net stop totalio
You can configure the driver to run automatically on
startup, but I wouldn't recommend it. You can do
this via Device Manager, select "View->Show hidden
devices" and look under "Non-Plug and Play Drivers"
to find "totalio", look at its properties, and
change the startup type from "Demand" to "Automatic"
(NOT "Boot" or "System") in the "Driver" tab.
The batch file concept is safest, as you only run
the driver when you need to and unload it when you
don't need it.
How to configure IC-Prog:
Goto: Settings->Options->Misc. Tab
Uncheck "Enable NT/2000/XP Driver"
Uncheck "Enable Vcc control for JDM" (the help file
says it is experimental and not to use it).
Select "Realtime" in the "Process Priority" group.
(in theory, this will prevent other CPU-intensive
applications from interrupting your burn process).
Goto: Settings->Hardware
Select "JDM Programmer" from "Programmer" dropdown
list.
Select "Direct I/O" from "Interface" group.
Uncheck all the check boxes under "Communication".
Select correct COM port.
Move the "I/O Delay" slider to 10. (other values
gave errors for me, but this value could be specific
to the PC's CPU speed - tweak until you get no
read/write errors).
Why "Windows API" doesn't work:
My hypothesis is that using the Windows API
introduces slight delays in setting the serial
control lines, such that occasionally the data
pulses aren't co-ordinated with the clock
pulses during a burn. Whole 14-bit words don't get
written, depending on the circuit the word will be
all 0 bits or all 1 bits depending on the state of
the chip's data line. In my experience using the
Multi-chip programmer, it meant 5% of the words were
burned 3FFF, but not consistently, ie. the errors
moved around each burn. Read errors were rare
(multiple reads returning different data) but they
also experienced the occasional incorrect word of
3FFF or just a few bits gone to 1.
These problems all magically disappear once you use
"Direct I/O".
UPDATE!!! : Settings for how to use IC-Prog with Windows XP.
Open a browser and select the file ic-prog.exe
Press right button on your mouse
Go to Properties
Go to Compatibility menu
Set compatibility mode as Windows 2000 or Windows 98 / Win ME
Press Apply icon
Press Accept icon
You need to copy icprog.sys into the SAME directory as icprog.exe.
Then you can enter in the ic-prog software, go to Settings, Options
and choose the Misc. page. There you can enable the "NT/2000 Driver"
it will then be installed.
|
Settings
to use IC-Prog with Windows XP:
-
Open a browser
and select the file ic-prog.exe
-
Press right
button on your mouse
-
Go to
Propertties
-
Go to
Compatibility menu
-
Set
compatibilty mode as Windows 2000 or Windows 98 / Win ME
-
Press Apply
icon
-
Press Accept
icon
You need to copy
icprog.sys into the SAME
directory as icprog.exe. Then you can enter in the ic-prog
software, go to Settings, Options and choose the Misc. page.
There you can enable the "NT/2000 Driver" it will then be
installed.
More help:
I am
trying to get my JDM programmer to work using icprog
1.03b under windows 2000 but it won't start comes up
with errors missing driver etc. ic-prog driver is
not installed .
Get the icprog driver...
Get the latest version of ICPROG.
I now get a message "Privileged instruction " when I
try to use. It happens on all versions
Change ic-prog's compatibility to Win98. Right click
on the icprog.exe and click on Compatibility Tab.
Make
sure you tick the *enable
NT/2000/XP driver* under the options> Misc tab.
Make sure you have the 6kb driver file in the same
folder as the icprog.exe
You can
also use other software such as:
WinPic800
(website:
http://perso.wanadoo.es/siscobf/winpic800.htm ).
WinPIC technical info (http://www.qsl.net/dl4yhf/winpic/
).
1. Connect
the programmer to the PC serial port.
2. Start the IC-Prog software and under 'Settings -
Hardware' select JDM Programmer.
3. Insert the PIC into the programming socket.
4. Test the programmer is connected with 'Settings -
Hardware Check - Enable Clock'
Here is a reply from Jon Wilder
I'm here to tell
you that I personally have tested the programmer on
a computer with Asus A7N8X-E Deluxe motherboard
which I got in 2004 and I run a 1.83GHz Athlon XP
processor and I got it to work!
What you have to do is go into your computer's BIOS
and change the parallel port mode to "SPP" (Standard
Parallel Port). ECP+EPP will not work.
Also, I have found a Windows based program that
works just fine in WinXP Pro with the programmer as
well. Not sure who it's made by but it is called
WinPic and for me with the parallel port set to "SPP"
mode in the BIOS this program worked flawlessly with
the programmer. Here is a link to it -
http://www.qsl.net/dl4yhf/winpicpr.html
Just thought I'd post up my experience with the
programmer for those of you who either still have
them or were planning to build them to let y'all
know that it has now been personally tested on a
machine with a processor faster than 500MHz and it
fully worked with no issues. The only thing to
remember is that it will not work with the parallel
port set to "Enhanced Parallel Port" mode. It must
be set to "Standard Parallel Port" mode.
23/10/2010
|