EasyProg(tm) Programmer User's Guide
20 November 2005
This document describes how to set up and operate a fully assembled
EasyProg PIC Programmer.
The purpose of the EasyProg programmer is to "program" data into
Microchip PIC microcontrollers (PIC is a registered trademark of
Microchip Technology Inc).
Setup the Hardware
To set up the programmer hardware, do the following:
1) Connect the main unit to your computer with the serial cable.
The cable can only be connected one way. The female end of
the cable connects to a 9 pin serial port (COM port on PC
systems) on the computer, and the other end connects to the 9
pin female port on the main unit.
2) Connect the power supply to the main unit. Push the small
round plug on the end of the power supply cord into the socket
in the back left corner of the main unit.
3) Plug the power supply into a normal AC power outlet.
The EasyProg programmer should now be powered on. The green STATUS
light should be lit dimly.
Setup the Software
Go to the web site http://www.embedinc.com/picprg/sw.htm and follow
the directions for downloading and installing the software.
Verify the Setup
The directions in this section assume that the hardware and software
have been set up as described in the previous sections.
To verify the hardware and software setup, make sure you are running
a command shell and enter:
pic_prog
at the command prompt. This should report the EasyProg firmware
version and the name of the organization that created it. It should
also indicate that no target chip is plugged into the programming
socket.
Now plug one of the supported PICs into the programming socket by
following these steps.
1) Flip the lever on the ZIF socket into the vertical position.
This will open all the pins allowing for easy insertion and
removal of a target chip.
2) Insert the target chip into the ZIF socket. The target chip
pin 1 is always inserted into the socket pin 1. The pin 1 end
of the target chip is usually marked with a semi-cicular
notch, or a dimple at pin 1, or something similar. The socket
pin 1 is the pin in the corner closest to the lever.
3) Flip the ZIF socket lever down. This will close the socket
pins and clamp the target chip into place.
Now run the PIC_PROG program again by entering:
pic_prog
at the command prompt as before. The PIC_PROG program should again
start by displaying the firmware version. This time it should
identify the particular target chip type and revision. It should
also report "No errors" and the elasped time.
Status Light
The status light is the green LED labeled "Status" near the ZIF
socket lever. It indicates 5 different states:
Unlit
No power is applied to the unit. A target chip may be removed
from or inserted into the programming socket.
Dimly but solidly lit
Idle state. The unit is powered on, but otherwise inactive.
A target chip may be removed from or inserted into the
programming socket.
Flashing at 4 Herz, brightness is low.
The host is communicating with the unit, but the target chip
is not powered up. Do not insert or remove a target chip from
the socket in this state.
Flashing at 2 Herz, brightness is medium.
The target chip is powered up. Communication with the target
chip may be in progress, but the target is not being written
to (no permanent target state changes are being made). This
is the normal display during verification or data readback.
Do not insert or remove a target chip from the socket in this
state.
Flashing at 1 Herz, brightness is high.
The target chip is being actively written to. This is the
normal display during a "programming" operation. Do not
insert or remove a target chip from the socket in this state.
The status diplays have been deliberately selected so that obvious
flashing indicates a target chip should not be inserted into or
removed from the programming socket. Doing so while the status light
is flashing may permanently damage the target chip.
A target chip may be removed or inserted when the status light is
solid, including completely off.
DBG Jumper
This is two posts labeled "J1" and "DBG" near the right side of the
board just behind the five programming line pads. This jumper should be
left open for normal operation.
A jumper may be installed over these pins to short them together. This
disables the 5 second host command stream timeout. The host timeout is
described in detail in the protocol specification, which is in the
PICPRG_PROT documentation file in the DOC directory within the software
installation directory.
The host timeout is an important feature which allows the unit to
recover if the host program is aborted or the host connection broken
during a command. With the host timeout disabled, the unit must be
powered down and back up to resume normal operation in such a case. We
therefore recommend that the debug jumper not be connected during normal
operation.
The debug pins are provided to aid in debugging host software. More
than 5 second gaps can easily occur in the host command stream while
single stepping the host application with a debugger. In such cases it
would be undesirable for the unit to abort the current command and
reset, and installing the debug jumper can prevent this. Remember to
remove the jumper when done debugging because normal operation is less
robust with the jumper installed.
Operation
The EasyProg programmer is operated by making sure is it powered on
and connected to the host computer, inserting a target chip into the
programming socket, and then running a host program to perform the
desired task. The various host programs are briefly described
below. Consult the documentation of each program for details. All
documentation files are stored in the DOC directory within the
software installation directory. Documentation files can also be
viewed using the DOC command. For example, the command:
doc pic_prog
will display the documentation file for the PIC_PROG program.
The host software (PICPRG software) is not specific to the EasyProg. It
works with all Embed Inc PIC programmers and any other programmers that
adhere to the protocol specification. This software adapts itself to
the capabilities of the particular programmer it is communicating with
at the time. Different operations and different PICs may be supported
by different programmers, although the host software is the same. The
PICPRG software suite is also backward compatible to old firmware
versions of the various programmers. We recommend running the latest
software available at http://www.embedinc.com/picprg/sw.htm whether
running an old version of firmware or not. However, we also recommend
keeping your firmware up to date.
The main PICPRG programs are:
PIC_PROG
The main purpose of this program is to program a PIC from a
HEX file. It can also verify the program in a PIC, and
display the target chip type and EasyProg firmware version.
PIC_READ
Reads the data from a PIC to a HEX file.
PIC_CTRL
Allows direct controll over the programming lines from the
command line. This is not of much use with the EasyProg except
for verifying the hardware.
TEST_PICPRG
This is a test program not intended for normal operation. It is
included in the PICPRG software because it can be useful in
diagnosing problems. If others are trying to help you with setup
problems, they may ask you to run TEST_PICPRG and report on the
result of various operations.
Software Updates
New software is made available from time to time. Go to the web page
http://www.embedinc.com/easyprog to check on the latest
developments.
Firmwarae Updates
New firmware is made available from time to time. Go to the web page
http://www.embedinc.com/easyprog to check on the latest
developments.
EasyProg firmware is stored in files named PRGxx.HEX in the
SRC/PICPRG directory within the software installation directory,
where XX is the firmware version number. To change to a new firmware
version, perform the following steps:
1) Make sure the EasyProg is powered up and connected to a host
computer as normal.
2) Insert a PIC 16F648A into the programming socket.
3) Run the PIC_PROG program with the PRGxx.HEX file of the
desired version.
4) Label the PIC in the programming socket "PRG xx", where XX is
the version number of the firmware just programmed into this
PIC.
5) Power off the EasyProg. The STATUS LED should be completely
off.
6) Carefully remove the PIC in the socket labeled IC2. This is
near the middle of the right edge of the circuit board. This
PIC is no longer needed by the EasyProg and can be
reprogrammed for use with other projects.
7) Remove the PIC programmed in step 3 from the programming
socket and carefully insert it into the socket labeled IC2.
Double check the orientation. Pin 1 must be in the lower left
corner of IC2. The left end of IC2 is marked with a
semi-circular notch to indicate the pin 1 end. The PIC is
marked with a dimple at pin 1, a notch at the pin 1 end, or
something similar.
8) Power on the EasyProg. The STATUS LED should be dimly but
solidly lit.
9) Run the PIC_PROG program. It should indicate the new firmware
version.
Product Support
This product is not officially supported. There is no customer
support phone number or email address, and there is nobody whos job
it is to answer your questions. This is one of the reasons the
EasyProg programmer costs considerably less than other PIC
programmers.
However, many of the EasyProg users subscribe to the MIT PIC email
list (see http://www.piclist.com). Posting a message there is a good
idea if you get stuck.
As with any general newsgroup or email list, keep the following in
mind:
1) You are not owed an answer. You are asking about 2000 people
to do you a favor, and should act accordingly. Don't demand
an answer because you have a demo this afternoon, or post the
same question repeatedly. This will only annoy people and
cause them to deliberately ignore you.
2) Describe the problem clearly, explain what you have done on
your own in an attempt to solve it, and what the results
were. Others are much more willing to help those who are at
least trying to help themselves. Again, you shouldn't ask
2000 people for a favor until you've taken reasonable steps to
solve the problem yourself.
3) Send the message using PLAIN TEXT wrapped to a reasonable line
width, like 72 to 80 characters. There are many people on the
list using many different mail clients and operating systems.
The only universally guaranteed useable format is plain text
with no fancy encoding, like BASE64, quoted printable, or
whatever. Don't even think about HTML. Some people just
delete HTML messages on general principal or automatically
filter them as spam.
4) When you've done all the above, go ahead and ask. The list is
for discussing PICs and related topics. Maybe you can return
the favor some day by helping someone else with an EasyProg
problem or some other PIC issue.