USB-Powered PIC Programmer

7,532

USB-Powered PIC Programmer
USB-Powered PIC Programmer

This simple circuit can be used to program the PIC16F84 and similar flash memory type components. It utilizes a 555 timer integrated circuit (IC) to generate the programming voltage from a +5V power supply, enabling operation from a computer's USB port. The 555 timer (IC1) is configured as a free-running oscillator with a frequency of approximately 6.5 kHz. The output of the timer drives four 100nF capacitors and 1N4148 diodes arranged in a Cockcroft-Walton voltage multiplier configuration. The output of the multiplier is connected to the MCLR/Vpp pin of the PIC during programming through a 4N28 optocoupler. Zener diodes ZD1 and D5 between the MCLR/Vpp pin and ground limit the output of the multiplier to around 13.6V, ensuring that the maximum input voltage (Vihh) of the PIC is not exceeded. A 100kΩ resistor pulls the pin down to a valid logic low level (Vil) when the optocoupler is not conducting. The circuit is compatible with the popular JDM programmer and can be used with supporting software such as ICProg.

The circuit operates by leveraging the 555 timer in astable mode, which generates a continuous square wave output. This output is essential for driving the Cockcroft-Walton voltage multiplier, which consists of capacitors and diodes arranged to step up the input voltage to the required programming level for the PIC microcontroller. The 1N4148 diodes are selected for their fast switching capabilities, allowing for efficient rectification of the AC waveform produced by the 555 timer.

The Cockcroft-Walton multiplier's design ensures that the voltage is increased effectively while maintaining stability. The arrangement of four stages (capacitors and diodes) allows the circuit to achieve the necessary output voltage, which is critical for programming operations. The output voltage is then routed through the optocoupler, which provides electrical isolation between the programming circuit and the microcontroller, enhancing safety and protecting the PIC from potential overvoltage damage.

Zener diodes ZD1 and D5 serve a crucial function by clamping the output voltage to a maximum of 13.6V, preventing the MCLR/Vpp pin from exceeding its specified limits. This is important for maintaining the integrity of the programming process and ensuring the longevity of the microcontroller. The 100kΩ resistor connected to the MCLR/Vpp pin ensures that the pin is pulled low when not in use, preventing accidental triggering of the programming mode.

Overall, this circuit provides a cost-effective and reliable solution for programming PIC16F84 microcontrollers and similar devices, making it suitable for hobbyists and professionals alike. Its compatibility with software like ICProg further enhances its utility, allowing for easy integration into various programming workflows.This simple circuit can be used to program the PIC16F84 and similar "flash memory" type parts. It uses a cheap 555 timer IC to generate the programming voltage from a +5V rail, allowing the circuit to be powered from a computer`s USB port. The 555 timer (IC1) is configured as a free-running oscillator, with a frequency of about 6. 5kHz. The output of the timer drives four 100nF capacitors and 1N4148 diodes wir-ed in a Cockroft-Walton voltage multiplier configuration. The output of the multiplier is switched through to the MCLR/Vpp pin of the PIC during programming via a 4N28 optocoupler.

Diodes ZD1 and D5 between the MCLR/Vpp pin and ground clamp the output of the multiplier to about 13. 6V, ensuring that the maximum input voltage (Vihh) of the PIC is not exceeded. A 100k © resistor pulls the pin down to a valid logic low level (Vil) when the optocoupler is not conducting.

The circuit is compatible with the popular "JDM" programmer, so can be used with supporting software such as "ICProg" (see ). 🔗 External reference