Introduction
Goals
The primary goal of the Spiffy PIC Programmer is to program flash ROM PICs under the control of a human usable, platform independent, RS-232 interface. Additional goals are to implement a robust programming algorithm, make the programmer usable from regular terminal programs, and to optionally provide support for production quality programming. The command protocol and error handling are designed to support a simple ASCII file transfer or clipboard paste of the contents of a hex file to the programmer from a terminal program.
Terminology
For the scope of this document, a few terms have been defined to make communication easier.
- Programmer
- The Spiffy PIC Programmer hardware and firmware.
- Hex file
- A file containing PIC software in binary form. The format used here is always an Intel 8-bit Hex file.
- Host computer
- The computer running terminal software used to communicate with the programmer.
- Target PIC
- The PIC microcontroller that is connected to the programmer for programming.
Feature set
- Ability to program all PICs described in Microchip's EEPROM Programming Specification documents DS30262B and DS39025B
- PIC16F83
- PIC16F84
- PIC16F84A
- PIC16F873
- PIC16F874
- PIC16F876
- PIC16F877
- Other PICs with the same programming interface
- RS-232 style serial interface
- Human usable protocol
- Can be used from a terminal program
- Requires RTS/CTS flow control
- Not dependent on serial port voltages to program the target PIC
- Production quality programming support
- Covers voltage range for the extended voltage PICs.
- Software selectable supply voltage for the target PIC between 0v and 10v with 8-bit resolution
- User can calibrate voltages; values can be stored in EEPROM
- Support can be omitted to make a simpler programmer
- Intel 8-bit Hex file input interpreted in programmer's firmware
- Status indicator LEDs