Low Voltage Programming of PIC® Devices
There are two modes for programming a PIC® Microcontroller, High Voltage (HV) mode, and Low Voltage (LV) mode. The Low-Voltage Programming (LVP) mode allows the PIC Flash MCUs to be programmed using the operating voltage VDD of the device. This offers many advantages to In-Circuit Serial Programming™ (ICSP™) designs.
A new PIC device will have the configuration set to LVP mode when purchased. Any of the Microchip development tools can program the device using the LVP method. Many of the latest development boards, such as the Curiosity Board, use LVP mode for the built-in device programmer.
LVP Configuration Setting
When the LVP bit of the Configuration Registers is set to 1, the low-voltage ICSP programming entry is enabled. To disable the low-voltage ICSP mode, the LVP bit must be programmed to 0.
Typical LVP Configuration Register Layout
LVP: Low Voltage Programming Enable bit
1 = Low-voltage programming enabled. MCLR/VPP pin function is MCLR.
0 = HV on MCLR/VPP must be used for programming.
LVP Mode Setup
Entry into the Low-Voltage Programming Entry mode requires the following steps:
- MCLR is brought to Low Logic Voltage Level (VIL).
- A 32-bit key sequence is presented on the ICSP Data (ICSPDAT) pin while clocking ICSP Clock (ICSPCLK) pin.
Once the key sequence is complete, MCLR must be held at VIL for as long as Program/Verify mode is to be maintained.
Any of the Microchip Programmer/Debugger tools handle this setup through the MPLAB® X IDE.
MCLR Pin operation in LVP
MCLR is an input pin that can reset the device when it is enabled. The MCLR pin can also be configured as a standard digital input-only pin. The MCLRE Configuration Bit enables or disables the MCLR pin.
If LVP is enabled (LVP = 1), the MCLR pin is automatically enabled and cannot be disabled.
MCLR ENABLED
When MCLR is enabled and the pin is held low, the device is held in Reset. The MCLR pin is connected to VDD through an internal weak pull-up resistor.
MCLR DISABLED
When MCLR is disabled, the MCLR pin becomes a digital input-only pin and can have an internal weak pull-up resistor through software control.
MCLR WEAK PULL-UP
The MCLR/ Digital Input Only pin has an individually controlled weak internal pull-up resistor that is connected to VDD. A bit in the Weak PullUp (WPUxx) register enables 1 or disables 0 the pull-up when in digital input-only pin mode. There is also a configuration bit MCLRE that will enable 1 or disable the pull-up when the pin is set to MCLR mode.
When the LVP mode is enabled, (MCLRE = x and LVP = 1), the MCLR internal pull-up is enabled and the digital input-only weak pull-up resistor software setting has no effect.