          EPICtm Plus Pocket PICmicro Programmer


The EPIC Plus Programmer is an inexpensive PICmicro microcontroller
programmer that will program the 8-, 14-pin and mid-range 18-pin PICmicros.
Optional adapters are available to program mid-range 28- and 40-pin
PICmicros, as well as PICmicros in surface-mount and PLCC packages.
It will not program the base-line PIC16C5x parts or the high-end
PIC17Cxxx parts.

The EPIC Plus Programmer can be powered with two 9-volt batteries or
an optional AC adapter.

The EPIC Plus Programmer connects to a PC compatible parallel printer port
and includes an assembler and programming software.  It is available either
assembled or as a bare board.  If you purchased a bare board with diskette,
please see the parts list and assembly instructions on the included diskette.


Software Installation

The EPIC Programmer files are compressed into a self-extracting file on this
disk.  They must be uncompressed before use.

To uncompress the files, create a directory on your hard drive called EPIC,
or another name of your choosing:

        md EPIC

Change to this directory:

        cd EPIC

Assuming the distribution diskette is in drive a:, uncompress the files into
the EPIC subdirectory:

        a:\epic2 -d

Don't forget the -d option on the end of the command.  This ensures that the
proper subdirectories within EPIC are created.


Hardware Installation

Make sure there are no PICmicros installed in the EPIC programming socket
or any connected adapter's socket until the programming software is executed
and the LED is off.  Also be sure that the EPIC Plus Programmer is placed
on an insulated surface to prevent the shorting out of traces on the bottom.

Connect the EPIC Plus Programmer to a PC compatible parallel printer port
using a 25-pin male to 25-pin female printer extension cable.  The EPIC Plus
Programmer uses pins 2-6, 10, and 19-25.  A serial cable may not have all of
the necessary connections so be sure to use a printer extension cable.  A
suitable cable is available from us.

Make sure the programmer is connected to a parallel printer port. 
Connection to a serial port or SCSI port, which have similar connectors,
may result in damage to the port or to the programmer.

If you are powering the EPIC Plus Programmer with the optional AC adapter,
plug it into the power connector on the programmer and then into a wall
outlet.  The AC adapter should provide approximately 16VDC at 450ma.  When
using an AC adapter to power the programmer, the state of the "Batt ON"
jumper does not matter.

If you are powering the EPIC Plus Programmer with two 9-volt batteries,
plug each battery onto the battery snaps.  Connect the 2-pin shorting
jumper to the 2-pin "Batt ON" posts.  It is a good idea to check the
battery voltage from time to time or if there seems to be difficulty
programming parts.


        WARNING: Do not connect a battery across the center snaps.
        Doing so shorts out the battery and may cause it to explode.


Note: the LED may be lit at this point.  It should go out when the EPIC
programming software is run.  Do not insert or remove a PICmicro when the
LED is on.

The EPIC Plus Programmer should now be powered up and ready to program
PICmicros.


General Operation

The next task is simply to write your program using any text editor, such
as DOS EDIT or Windows NOTEPAD, and assemble it using the assembler, PM,
included on the disk, or MPASM (or MPLAB), available from Microchip.
Instructions for the use of PM are on the included disk.

Once your program assembles properly, the generated .HEX file may be
programmed into a PICmicro using the EPIC programming software.  Two versions
of the EPIC software are included: one version for DOS and one for Windows
95/98/NT.  If you choose the DOS version, it should be used in a straight
DOS session or from a full-screen DOS window in Windows 95/98 or OS/2.
(Running the DOS version of EPIC under Windows is discouraged.  Windows
(all varieties) alters the system timing and plays with the ports when you're
not looking, which may cause programming errors.)

The Windows 95/98/NT version should, of course, be run under Windows 95/98 or
NT.  The Windows version is more up-to-date than the DOS version and is able
to program more types of PICmicros.


EPIC for DOS

Start the DOS version of the EPIC software by typing "epic" at the DOS
command prompt in the directory you created previously.  The EPIC software
will take a look around to find where the EPIC Plus Programmer is attached
and get it ready to program a PICmicro.  If the EPIC Programmer is not
found, check all of the above connections and verify there is not a PICmicro
installed in the programmer or any connected adapter.

Once the programming screen is displayed, select the device type you wish
to program.  For PIC16C8x or PIC16F8x parts, select 8x.  For the PIC14C000,
PIC16C55x, 6x, 7x, or 9x parts, select 6x/7x/9x.  For PIC12C5xx parts,
select 12C50x.

Enter 'Alt-O' (or click Open with the mouse) to open your assembled object
(.HEX) file.  Double-click on the appropriate file to load it.  Once the
file has been loaded, make sure the proper device characteristics are
selected.  See the Microchip data books for information on device
configuration.


        Caution: Be sure that Code Protect is set to OFF before programming
        a windowed (JW) PICmicro.  You may not be able to erase a windowed
        part that has been code protected.


Insert a PICmicro into the EPIC Plus Programmer or connected adapter socket.
The end of the PICmicro with the notch should be all the way at the Pin 1
end of the socket, away from the battery connectors.  Press 'Alt-P' (or
click Program with the mouse) to program the PICmicro.

Before programming, the EPIC software does a blank check to ensure that
the part is erased.  PIC12Cxxx parts are not completely blank from the
factory.  They contain a calibration value in the last location.  Simply
tell EPIC that it is OK to program them anyway when it finds they are not
blank.  If the PICmicro is a 16F84 or another EEPROM or flash part, it is
usually not necessary to erase it before programming.

Typing "epic /?" at the DOS command prompt will display a list of available
options for the EPIC software. For additional information on the EPIC Plus
Programmer, please see the README file on the included diskette.


EPIC for Windows 95/98/NT

Start the Windows 95/98/NT version of the EPIC software by navigating using
Explorer to the EPIC directory and double-clicking on EPICWin.
Alternatively, you can create a shortcut to EPIC on your desktop and double-
click it.  The EPIC software will take a look around to find where the EPIC
Plus Programmer is attached and get it ready to program a PICmicro.  If the
EPIC Programmer is not found, check all of the above connections and verify
there is not a PICmicro installed in the programmer or any connected adapter.

The file EPIC.INI must be in the same directory EPICWIN.EXE resides in
and the EPIC directory should be in your path so that Windows can find the
device drivers.

Once the programming bar is displayed, select the device type you wish
to program.

Click the Open button or File|Open with the mouse to open your assembled
object (.HEX) file.  Double-click on the appropriate file to load it.
Once the file has been loaded, make sure the proper device characteristics
are selected under the Options menu.  See the Microchip data books for
information on device configuration.


        Caution: Be sure that Code Protect is set to OFF before programming
        a windowed (JW) PICmicro.  You may not be able to erase a windowed
        part that has been code protected.


Insert a PICmicro into the EPIC Plus Programmer or connected adapter socket.
The end of the PICmicro with the notch should be all the way at the Pin 1
end of the socket, away from the battery connectors.  Click the Program
button or Run|Program with the mouse to program the PICmicro.

Before programming, the EPIC software does a blank check to ensure that
the part is erased.  If the PICmicro is a 16F84 or another EEPROM or flash
part, it is usually not necessary to erase it before programming.

The current setup is saved to the file EPICCFG.INI when you exit EPICWin.
It is reloaded the next time EPICWin is started.  The Stay On Top state is
not saved.


EPICWin Controls

The Open speed button opens a .HEX file for programming.  The name of an
open file appears in the EPICWin title bar.  Previous configuration
information will not be altered if Options|Update Configuration is not
checked.

The Save speed button will save the current code, data, ID and configuration
information to the currently open file.  If no file has been previously
selected, it will prompt for a filename.

The Program speed button will program the current code, data, ID and
configuration into the selected device.  It will optionally load the
latest version of the .HEX file before programming.  The device will
be checked to ensure it is blank before programming, unless
Options|Skip Blank Check is checked.

The Verify speed button will compare the current code, data, ID and
configuration to the programmed device.  If the information does not match,
an error message is displayed.  A verify is also done as the device is
being programmed.  A code protected device cannot be verified.

The Read speed button will read the current code, data, ID and configuration
from the selected device.  The configuration information will not be read
if Options|Update Configuration is not checked.

The Blank Check speed button will read the code space to ensure a device
is blank.  It will not check the data space, ID, configuration, or the last
word of the code space (this is to ignore an oscillator calibration word
programmed by the factory into some devices).

The Erase speed button will erase EEPROM or flash electrically erasable
devices.  It is grayed out for devices that cannot be electrically erased.

The Device box allows selection of the device to be programmed.  Click the
down arrow to the right of the box to drop down a list of supported
devices, then click on the device.  This device information, including the
default device that is selected on start-up, is contained in the file
EPIC.INI.  This file must be in the same directory as EPICWIN.EXE.  The
device should be selected before a .HEX file is opened to ensure the
configuration information is properly interpreted.

All of the speed buttons, along with other settings, are also available
using the drop-down menus.


EPICWin Menus

File

File|Open opens a .HEX file for programming.  The name of an open file
appears in the EPICWin title bar.  Previous configuration information will
not be altered if Options|Update Configuration is not checked.

File|Save saves the current code, data, ID and configuration information to
the currently open file.  If no file has been previously selected, it will
prompt for a filename.

File|Save As saves the current code, data, ID and configuration information
after prompting for a new filename.

File|EPIC Port will display the parallel printer port the EPIC Programmer
was found on.

File|Exit exits the program.

View

View|Configuration displays the device configuration fuse window.  See the
Microchip data book for information on the configuration fuses.

View|Code displays the code window.  This will show the open .HEX file or
recently read code information in hexadecimal or ASCII.

View|Data displays the data window.  This will show the open .HEX file or
recently read data information in hexadecimal or ASCII.  Only devices with
on-chip EEPROM data space will read and program this data.

View|ID displays the ID window.  This will show the open .HEX file or
recently read code information in hexadecimal or ASCII.

View|Count displays a window showing the number of programming attempts and
successes.  The count is reset when the software is started, a file is
opened, a device is read or the device type is changed.

View|Close All Windows closes any open configuration, code, data, ID or count
window.

View|Stay On Top causes the EPICWin bar to float on top of any other
windows when checked.

Run

Run|Program will program the current code, data, ID and configuration into
the selected device.  It will optionally load the latest version of the .HEX
file before programming.  The device will be checked to ensure it is blank
before programming, unless Options|Skip Blank Check is checked.

Run|Verify will compare the current code, data, ID and configuration to the
programmed device.  If the information does not match, an error message is
displayed.  A verify is also done as the device is being programmed.  A
code protected device cannot be verified.

Run|Read will read the current code, data, ID and configuration from the
selected device.  The configuration information will not be read if
Options|Update Configuration is not checked.

Run|Blank Check will read the code space to ensure a device is blank.  It
will not check the data space, ID, configuration, or the last word of the
code space (this is to ignore an oscillator calibration word programmed by
the factory into some devices).

Run|Erase will erase EEPROM or flash electrically erasable devices.  It is
grayed out for devices that cannot be electrically erased.

Options

Options|Oscillator allows setting the device's oscillator type.  Options
that are not available for a particular device are grayed out.

Options|Code Protect allows setting the device's code protection fuses.
Be careful to never code protect a windowed (JW) device.  Options that are
not available for a particular device are grayed out.

Options|Watchdog Timer Enable allows setting the device's Watchdog Timer
state.  Options that are not available for a particular device are grayed
out.

Options|Power-up Timer Enable allows setting the device's Power-up Timer
state.  Options that are not available for a particular device are grayed
out.

Options|Brown-out Reset Enable allows setting the device's Brown-out Reset
state.  Options that are not available for a particular device are grayed
out.

Options|Master Clear Reset Enable allows setting the device's Master Clear
Reset pin function state.  Options that are not available for a particular
device are grayed out.

Options|Memory Parity Error Enable allows setting the device's Memory Parity
Error state.  Options that are not available for a particular device are
grayed out.

Options|Low-Voltage Programming Enable allows setting the device's Low-
Voltage Programming state.  Options that are not available for a particular
device are grayed out.

Options|Flash Program Write Enable allows setting the device's Flash Program
Write state.  Options that are not available for a particular device are
grayed out.

Options|In-Circuit Debugger Enable allows setting the device's In-Circuit
Debugger state.  Options that are not available for a particular device are
grayed out.

Options|Memory Size allows viewing and setting the device's memory size.
It is automatically set when a device is chosen.

Options|Update Configuration allows file opening and device reading to
update the program's configuration information when checked.  If it is
not checked, the program's configuration will not be changed.

Options|Verify File Checksum will stop on checksum errors found during a
file open when checked.

Options|Read File Before Programming, when checked, will cause the latest
version of the .HEX file to be loaded before the device is programmed.

Options|Disable Completion Messages will prevent the displaying of operation
complete messages at the end of programming, verifying and erasing a device.

Options|Skip Blank Check will prevent blank checking a device before it is
programmed when checked.

Help

Help|Help opens the default browser and displays the HTML help file.

Help|Readme opens the default text editor and displays the README file.

Help|Test Timing displays the count window and counts for 15 seconds.

Help|About... displays the program version number and copyright.


For additional information on the EPIC Plus Programmer, please see the
README file on the included diskette.
