Spiffy PIC Programmer

Updated 1999-12-15

Added documentation on 1999-12-15

Goals

This is a work in progress, so not all of the goals have been realized yet, and the page has not been properly organized. It doesn't even program PICs right now, but it has progressed to attempting to program PICs.

Status

Possible spinoff: Self-contained portable programmer

The programmer could be modified to get its instructions from a serial EEPROM instead of an RS-232 link. The result could be a small portable programmer that can reprogram flash ROM PICs with prewritten and prepared software. The user interface would only need indicator LEDs, which are already part of the design spec, a reset button to reset the programmer and target, and a replaceable EEPROM.

Detailed Specifications

These specifications are meant primarily as internal documentation for now. The contents are not completely accurate and are subject to change. The contents are normally within a few days of my development progress.

Programmer PIC pin connections

Programmer PIC16F84 Connection to Input or Output Function
!MCLR, pin 4 RS-232 DTR Input Reset for the programmer. When a terminal program connects to the programmer, it should allow the programmer to start.
RA0, pin 17 Green LED annode Output Programmer running indicator
RA1, pin 18 Yellow LED annode Output Program or verify operation in progress indicator
RA2, pin 1 RS-232 RD Output Sends data to the computer
RA3, pin 2 RS-232 TD Input Receives data from the computer
RA4, pin 3 RS-232 CTS Output Hardware flow control connection to RS-232. It allows the programmer to keep the computer from sending data while processing the data and programming.
RB0, pin 6 Connection to !CS on serial DAC Output Used to operate the 8-bit serial DAC that controls the variable VDD of the target PIC.
RB1, pin 7 Clock for serial DAC Output Synchronous serial clock for the 8-bit serial DAC that controls the variable VDD of the target PIC.
RB2, pin 8 Data for serial DAC Output Data to operate the 8-bit serial DAC that controls the variable VDD of the target PIC.
RB3, pin 9 Hardware switch for programming voltage Output Applies programming voltage to the !MCLR pin of the target PIC. It is used to reset the target during programming.
RB4, pin 10 Red LED annode Output Error indicator
RB5, pin 11 Unused Output
RB6, pin 12 RB6 on target PIC Output Clock input for the target PIC. A voltage conversion device may need to be between the two PICs.
RB7, pin 13 RB7 on target PIC Input and Output Data I/O to the target PIC. A voltage conversion device may need to be between the two PICs.

RS-232 serial to programmer PIC table

RS-232 Name 25 Pin RS-232 9 Pin RS-232 PIC16F84
(Programmer)
Function
CTS
5
8
RA4, pin 3 Allows the programmer to use hardware RTS/CTS flow control. While programming another PIC, the programmer will use this connection to make the computer suspend sending data by brining the line low. When the programmer can receive more data, it will raise the line.
DTR
20
4
!MCLR, pin 4 This line is normally brought high to tell a device on the other end to pick up, and is brought low when the program wants to terminate communication. It'll do about the same by resetting the programmer when low. When a terminal program connects to the programmer, it should allow the programmer to start.
RD
3
2
RA2, pin 1 Asynchronous serial data output from the programmer.
TD
2
3
RA3, pin 2 Asynchronous serial data input to the programmer.

Programmer to target PIC voltage level conversion

Computer command protocol

  1. On power up, the programmer sends an identification string with version number.
  2. The prompt, ">" is displayed when the programmer is ready to accept a command.
  3. A single character command is entered by the computer. No newline or return characters should be sent.
  4. If the command character is a colon (":"), more characters from the computer will be expected. See the data command for more information.
  5. If an error occurs, the programmer responds with "error" and a short description. See the error code section for more information. The error message is followed with a newline character.
  6. After completing the command, the programmer loops back to the prompt from part 2 of this list.

Alpha version limitations

Final version limitations



[Skip Prev] [Prev] [Next] [Skip Next]
[Random] [Next 5] [List Sites] [Join Ring]