PIC16F191XX ICSP Circuit. How do I protect my other components from the high voltage?

Thread Starter


Joined Aug 15, 2019

I have an external CPU that outputs an active-low reset signal, and I want to use that to reset every component on my board. So, I connected this line to the MCLR pin on my PIC, and also to the RESET pins of my other chips.

The datasheet says that High Voltage Programming (HVP) or Low Voltage Programming (LVP) may be used.
  • For high voltage, MCLR is elevated to VIHH (at least 8 volts), which causes the PIC to enter program mode
  • For low voltage, MCLR is brought low to VIL, and a 32-bit key is passed to ICSPDAT, which causes the PIC to enter program mode
The problem is, none of my chips that use the RESET signal are tolerant of the 8 volts required to program the PIC in HVP mode.
  • How would I protect these components during programming, while still being able to use the MCLR pin as a reset during my application?
  • Can I use LVP mode, and still be able to debug afterwards? Using this mode sounds much easier, but I'm still not entirely sure what I need to know to make it work.
  • As long as I am able to debug, I don't prefer one mode over the other.
I noticed the Curiosity development board uses LVP mode, and it only includes a 10K pull-up resistor on MCLR. Is this really the best way to do this? This chip has an internal pull-up on MCLR, so do I even need an external one?

Sorry if I am asking dumb questions, this is my first project, and I'm paranoid about destroying memory chips, since the ones I am using are no longer in production.


Joined Jan 18, 2008
That is a common problem using PIC (an maybe other) devices. A variety of methods are used. Sometimes a simple resistor (maybe 100 to 500 ohm) can be used. Sometimes diodes, since MCLR is input only, sometimes jumpers.


Joined Jan 18, 2008
The main problem with a jumper is that the user has to manipulate it. That goes back a long ways to setting up add-on cards in the old PC's (and before). A resistor or diode avoids that simplistic approach.

Share with us your circuit and we may have a less cumbersome solution. The first question to ask, do you really need MCLR as an input? Remember, the other ICSP pins also need some sort of isolation circuit too.

John P

Joined Oct 14, 2008
I can think of two ways to do this. First, connect your reset line directly to the processor, but connect it to everything else via a diode (use a Schottky type for lowest voltage drop) oriented so the reset line can pull the chip pins low, but the 8V level can't get through the diode.

Or, only reset the processor, and then have the processor actuate a reset line for all the other chips once its program starts to run.

I recall seeing a design where there was a normally active reset line that held a circuit in a safe state. It was only released when there was an ac signal on a line controlled by the processor, so if the processor shut down, the circuit would go into reset mode.