High Voltage Programming Circuit
NSDSP only supports LVP programming. However, some of the PIC devices only support HVP Programming. Also, sometimes LVP has to be disabled to make use of MCLR pin. In such situations, NSDSP may use an external circuit to enable HVP programming.
The easiest method is to use NSHVX HVP extension which converts any NSDSP into an HVP programmer. However, it is also possible to use a simple external circuit. In the majority of the situations, such circuit will work as well as NSHVX.
The circuit must supply Vpp voltage to the target's PIC MCLR when NSDSP drives its MCLR pin low. An example of such circuit is shown below.
When NSDSP drives MCLR high, the Q1 transistor turns on and pulls the anode of D1 low. In this state, the voltage on PIC's MCLR pin depends on "GP input" voltage - when "GP input" is high, D2 pulls MCLR pin high; when "GP input" is low, the pull-down resitor R3 pulls MCLR pin low.
When NSDSP drives MCLR low, the Q1 transistor turns off, and resistor R2, through D1, pulls PIC's MCLR to Vpp level. Diode D2 protects "GP input" from high Vpp voltage.
This circuit is designed to program PIC devices when MCLR and LVP are disabled. However, if MCLR or LVP is enabled, the "GP input" must be tied to VDD. Otherwise, the PIC will reset.
Vpp level must be supplied externally and selected according to Microchip Flash Programming Specifications for your PIC device, Since there is some voltage drop through R2 and D1, it is better to select Vpp close to high end of the allowable Vpp range.
This circuit is not energy efficient. When Q1 is turned on, up to 0.2W may be dissipated by R2. If higer efficiency is required, the circuit needs to be redesigned.
When using this circuit, you must configure your programming software to use HVP.
© 2007-2021 Northern Software Inc. All Rights Reserved.