Buy(Cart) Contact Devices Programmer NSDS Home

NSDSP Programming

To program PIC device, NSDSP uses programming protocols outlined in Microchip Flash Programming Specifications. It uses 6-pin Microchip ICSP® connector.

LVP Programming

NSDSP uses low voltage programming - LVP. This is the only method supported by most modern PIC devices.

Some PIC devices support LVP along with high-voltage programming - HVP. NSDSP can program such devices with LVP, but not HVP. LVP is generally safer because it doesn't apply high voltage to the target PIC device, but unfortunately, it requires the MCLR pin (and also PGM pin on older PIC devices) to be dedicated to programming. When LVP is enabled, MCLR pin cannot be used as a regular input. This may be a problem if you cannot afford losing a pin. A workaround exists which allows HVP programming with NSDSP, however it requires a source of high voltage and a simple intermediary circuit between NSDSP and target PIC.

Some old PIC devices only support HVP. Such devices cannot be programmed with NSDSP. To see if your PIC device is supported, refer to the list of supported devices.

Programming operations

NSDSP can perform the following programming operations.

Operation Description
Bulk Erase Erases the entire content of the target device. This may not be available for some PIC devices running at lower voltages.
Programming Erases the entire content of the target device and then programs the specified data. This can be applied to protected devices.

Verifies that the contents of the chip memory matches the specified data. NSDSP does not use checksums because they may be unreliable. It reads the entire contents back and verifies every byte.

On most PIC devices, programming and verification can be executed simultaneously, which may lead to shorter programming times.

Read Reads the entire contents of the target PIC memory and saves it as a hex file. Read operation may fail if the device is code protected, programmed for debugging and for other similar reasons. In such cases, reading may be possible with nsread
Other Since NSDSP supports hundreds of diverse PIC devices, it is difficult to provide common interface to all devices. Therefore, operations provided by the standard NSDSP software are limited. If you want to perform programming operations not covered by the standard software, please contact us and we will build custom software to meet your needs.

Code Protection

Many PIC devices support code protection. When a device is code protected it cannot be read. If you try to read it, the operaton may fail or it may read all zeros,

If PIC device is code protected, the only way to remove the protection is bulk erase. This operation erases everything. Therefore, all memory areas will be erased, even if software settings may have requested preservation of some areas such as EEPROM.

On many PIC devices, bulk erase is only possible at VDD voltages above certain level. If the voltage is below this level, it is impossible to remove protection from code protected device. Please refer to the device support list to see if this applies to your particular device.

Bulk Erase Threshold

To program chips, NSDSP uses bulk erase. Bulk erase is a fast and efficient way to fully erase chip memory and the only way to remove code protection. However, bulk erase requires a minimum voltage level, which depends on the PIC device, and is usually around 2.7V.

NSDSP assumes that the target voltage is above the bulk erase threshold and attempts to use bulk erase. This ensures the fast and most efficient programming. However, if the actual target voltage is below the bulk erase threshold, the programming will fail. Therefore, if you want to program PIC devices below their bulk erase threshold voltage you must specify the actual voltage.

When programming at voltages below bulk erase threashold, NSDSP uses special programming algorithms. However, some of the PIC devices cannot be fully programmed in such conditions. For example, most PIC16 devices do not allow erasing their configuration bits. Other PIC devices can be fully programmed, but since the bulk erase cannot be used, the programming may take longer.

Please refer to the device support list to find out if programming of your PIC device is affected by the voltage level.


NSDSP cannot automatically detect the target voltage. Usually, it is not the problem. However, if you want to program your device at voltages below bulk erase threshold, you must specify the target voltage, so that NSDSP could use special algorithms which avoid bulk erase.

If NSDSP chip always works at the same voltage, as is the case with pre-built programmers such as NSDSP-1-3V3 or NSDSP-1-5V, the voltage setting may be stored inside the chip.

If the same NSDSP can be used with target devices running at different voltages, the voltage should be specified with programming software each time you perform the programming.

Variable speed

During programming, NSDSP can communicate with target PIC devices at signaling rates up to 6MHz. In most cases, this works, but if the ICSP cable is long, or there's parasitic capacitance, the high speed may not work. In this case, you can reduce the speed. This will allow programming, but will increase programming times.

The table below shows the list of available speeds:

Frequency KBytes/sec

The speed is set by the programming software


NSDSP does not require firmware updates to program different PIC devices. The same firmware is installed in all NSDSP and it works for all supported devices.

Northern Software Home Development System Programmer/Debugger Supported Devices Contact Us Purchase/Vew Cart

© 2007-2017 Northern Software Inc. All Rights Reserved.