Please see the README file on the included diskette for the latest information on the EPIC Plus Programmer. For the latest, latest information, see the microEngineering Labs, Inc. web site.
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 with diskette.
The EPIC Plus Programmer files are compressed into a self-extracting file on the 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 by typing:
md epic
at the DOS prompt.
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.
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. This is no cause for alarm. 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.
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.
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.
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.
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 most other settings, are also available using the drop-down menus.
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|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|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|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 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.
The EPIC Plus Programmer may be used for in-circuit serial programming of serial programmable PICmicros through the 10-pin expansion header J3. Vpp, RB6, RB7 and ground should be connected as in the following diagram. Any additional connections to /MCLR, RB6 and RB7 should be designed as to not interfere with in-circuit programming.
Note: +5 volts should be supplied to the PICmicro by the target system. The +5 volt and Vdd lines from the EPIC Plus Programmer header are not intended to power external circuits.
Version 3.1 boards have the number 98090 on the back. Other versions may have a different part layout and require different parts.
Most of the following parts are available from Radio Shack. Any additional parts may be acquired from Jameco Electronics or JDR Microdevices. The Radio Shack part number is listed for reference.
Label Description Radio Shack Part No. R1 240 (270) ohm 1/4W resistor 271-1314 R2* 2.2K 1/4W resistor 271-1325 R3,4,6,7,12 1K 1/4W resistor 271-1321 R5,8,10 10K resistor 1/4W resistor 271-1335 R9,11 100 ohm 1/4W resistor 271-1311 VR1* 5K (4.7K) PCB mount trimmer 271-281 C1** 100uf 50V radial electrolytic capacitor 272-1044 C2 10uf 25V radial electrolytic capacitor 272-1025 C3 .1uf 50V monolythic capacitor 272-109 BR1** 1A 100PIV diode bridge 276-1152 LED1 red LED 276-041 Q1,2 2N3906 (MPS2907) PNP transistor 276-2023 REG1 7805T 5-volt regulator 276-1770 REG2 LM317T variable regulator 276-1778 U1 7407 open collector buffer IC J1 25-pin MALE DB25 connector J2** DC power jack 2.1mm J3 10-pin header B1,2 9-volt battery snaps 270-325 14-pin IC socket 276-1999 18-pin IC (or ZIF) socket 276-1992 S1 2-pin Battery ON header 2-pin shorting jumper * Install R2 or VR1 (recommended), not both. ** C1, BR1 and J2 are not necessary for battery-only operation.
1. Solder in resistors R1 and R3-R12. It is recommended that trimmer VR1 be installed later instead of resistor R2.
2. Solder in sockets for U1 and U2 if U2 is not a ZIF socket.
3. Solder in trimmer VR1 if R2 was not used.
4. Solder in transistors Q1 and Q2.
5. Solder in capacitors C1-3. Note the polarity of C1 and C2. C1 is not necessary for battery-only operation.
6. Solder in bridge BR1 and J2 if AC operation is desired.
7. Solder in DB25 connector J1.
8. Solder in LED1. Be sure the flat side of the LED is away from connector J1.
9. Solder in the 10-pin header J3.
10. Solder in Battery ON 2-pin header. Place the shorting jumper across the header before soldering to prevent the pins from moving when heated. A piece of wire may be soldered into the header holes if the Battery ON jumper is not desired. In that case the batteries may be connected and disconnected to turn the programmer on and off.
11. Solder in the 9-volt battery snaps B1 and B2. Make sure the polarity noted on the board matches the polarity of the 9-volt battery terminals. Double check this operation as getting one or both backwards is not a good thing.
12. If U2 is a ZIF socket, solder it in now.
13. Solder REG1 and REG2 into place. Be sure the larger heat sink side is away from connector J1.
Before proceeding, check the almost completed board for the proper voltages.
Adjust trimmer VR1 to about the middle of its range.
Connect an AC adapter or the two 9-volt batteries and Battery ON jumper. At this point neither regulator should get hot. If either one does, immediately disconnect power and check for improper battery connector polarity or regulators in backwards.
Measure the output of the variable regulator REG2 and adjust trimmer VR1 to give about 13.5 volts. The easiest place to measure the voltage is between the heatsink tab of the 7805T REG1 (ground) and the end of R1 furthest from the battery connectors.
Measure the output of the 7805T REG1 for 5 volts. The best place to measure is between pin 7 (ground) and pin 14 of the 7407 U1.
If the voltages are not correct, check the polarity of the battery connections and the regulators. Also check to see that all of the other components are properly soldered in place.
14. Once all of the voltages check out, install U1 7407 in the 14-pin socket. Make sure the end with the notch (pin 1) is away from the battery connectors.