4.3 What is High Voltage?
The term “High Voltage” has been used to mean different things. Explanations of past and current definitions of this term are discussed below.
AVR Devices
High-Voltage Programming - HVSP and HVPP
Older AVR devices have a programming interface known as High-Voltage Programming in both serial (HVSP) and parallel (HVPP) variants. In general this interface requires 12V to be applied to the RESET pin for the duration of the programming session.
High-Voltage Programming was sometimes necessary to recover when configuration bits (fuses) were incorrectly set or cleared. Some examples are:
- DWEN and lockbits set: debugWIRE not usable.
- DWEN set, SPIEN cleared: stuck in debugWIRE mode, cannot use SPI.
- JTAGEN cleared: Cannot use JTAG.
Tool Support: No current MPLAB hardware tool supports this method of programming. Therefore it is important that all warnings about the above issues be heeded and instructions followed.
High-Voltage Pulse - UPDI Pin
Depending on your device, there are currently two configurations that will require a High-Voltage (HV) Pulse to enable the UPDI function on a pin:
- The UPDI function is on a shared
pin that can also be used for RESET or GPIO. If
RESET or GPIO has been selected and UPDI is now
desired, an HV pulse is required on that pin to reactivate the UPDI
functionality.
This configuration is found on older AVR devices and requires an HV pulse of 12V.
- The UPDI function is on a shared
pin that can also be used for GPIO. RESET is on a
dedicated pin. If GPIO has been selected and UPDI is now desired, an HV pulse is
required on the RESET pin to reactivate the UPDI
functionality.
This configuration is found on newer AVR devices and requires an HV pulse of approximately VDD + 2 volts. See the device data sheet for the actual value range.
Tool Support: All current MPLAB hardware tools support either HV pulse except for MPLAB Snap (does not support high voltage).
PIC Devices
High-Voltage vs Low-Voltage Programming
For High-Voltage Programming, older PIC devices need to be programmed at high voltage (12V) but newer devices can use lower voltages (a voltage in excess of 9 volts placed on the VPP pin).
For Low-Voltage Programming, the programming voltage VPP will not exceed VDD.
Tool Support: All current MPLAB hardware tools support high and low voltage programming except for:
- MPLAB Snap (does not support high voltage).
- MPLAB PICkit 4 (high voltage programming only when device VDD voltage is at or above 2.8V. Issue fixed on 10-10094-R6; see the label on the back of the unit).