PIC 16C84 Serial mode programmer, hardware. ------------------------------------------- The programmer is connected to a parallel printer port of a PC. It uses the serial programming method which uses two signals (data and clock) to communicate with the PIC. D0 of the parallel port is used for Data, D1 is for Clock. D2 switches the MCLR/Vpp pin and D3 is used for switching the power supplied to the PIC on and off. The Busy signal is also connected to Data to read data from the PIC. Together with GND six pins are used from the parallel port. A 7407 open collector non-inverting buffer seperates the PIC from the parallel port. There are two LEDs, Power and Activity. Power indicates that the programmer gets enough power. It should always be on. Activity indicates that power is applied (5V and Vpp) to the PIC. This is under control of the programmer software. You can try this without a chip by reading the chip contents. The software will think that is sees an empty chip since there is no way of telling if a chip is inserted or not. (An empty chip will always read ones.) When the Activity LED is off PIC may be inserted or removed. Never insert a PIC when it is on. Building the programmer is pretty straightforward. I made a little box (7 x 5 x 2 cm) with an 18 pin ZIF socket and the circuit. Connecting the box to a parallel port could be done with a 6 lead RJ-12 cable. There are these neat D25 connectors with an RJ-12 connector on the back... You could use RJ-10 for the power-connections. Power can come from an AC-adaptor that gives at least 15V. (Most 12V adaptors will do.) I left the capacitors out, spread a few around where apropriate, but don't make them too large. ----------------------------------------------------------------- The ingredients for the programmer are: 1 x 78L05 Voltage regulator 5V, 100 mA 1 x 78L12 Voltage regulator 12V, 100 mA 1 x 7407 Open collector non-inverting buffers 1 x ZIF socket 18 pin Can be expensive 2 x Transistor PNP e.g. BC 557 2 x LED Red 3 mm 10 x Resistor 10k 2 x Resistor 1k 1 x Diode Anti-smoke-and-fire ----------------------------------------------------------------- The ASCII drawing of the programmer follows on next page. ----------------------------------------------------------------- +5V 15..30V |14 +-------+ +--+--+ V+ ]--|>|---+-----+ 78L05 +--- +5V | 7407| | +---+---+ +--+--+ | | |7 | GND GND | +-------+ A K +-----+ 78L12 +--- +12V ------[LED]------[1k]----GND +---+---+ "Power" V- ]--- GND | GND A K Vpp ------[LED]------[1k]----GND "Activity" Vdd |14 Vdd-[10K]--+ +---------+--------+ 1|\ 2 | 13| | D0 (2)-----------+ >--------------+-------+ RB7/Data | |/ | | | +5V-[10k]-+ | | | | 12 /|13(corrected) | | PIC 16C84 | Busy (11)-------+--< +--------------+ | 18 pin | \| | ZIF Socket | Vdd-[10k]--+ | | 3|\ 4 | 12| | D1 (3)----------+ >---------------+------+ RB6/Clock | |/ | | Vpp-[10K]--+ | | 5|\ 6 | 4| | D2 (4)----------+ >---------------+------+ -MCLR/Vpp | |/ | | +---------+--------+ |5 +5V GND | +--[10K]---+ | | 11|\ 10 | B |/ E +-----+ >----[10K]--+--------| PNP | |/ |\ C | | | +---Vdd | | | [10K] | | | GND | | +12V | | | +--[10K]---+ | | | | 9|\ 8 | B |/ E D3 (5)----+-----+ >----[10K]--+--------| PNP |/ |\ C | +---Vpp GND (19)------GND | [10K] | GND -----------------------------------------------------------------