8.2.5 Programming and Debugging Interface Disable (PDID)

The ICSPDIS Configuration bit allows the user to completely disable the ICSP interface. The device is permanently locked down from ICSP access and no further Bulk Erase operations are possible. However, the memory regions can still be accessed using the internal NVM interface. This feature is intended to make the device one-time programmable through the ICSP interface for security applications. Once ICSPDIS has been programmed to "0", either through ICSP or a self-write, it is not possible for a device executing in Debug mode to erase/write Flash, nor can a debug tool switch the device to Production mode. Therefore, the ICSPDIS bit should only be enabled on devices programmed for production. Setting the ICSPDIS Configuration bit requires a specific unlock sequence that is described below but is also covered in more detail in the Family Programming Specification document for the specific device.
CAUTION:
  • Once the ICSPDIS bit is enabled, this bit cannot be disabled (even through a Bulk Erase operation) and the ICSP interface is completely disabled. It is recommended to contact Microchip for more information regarding the use of this feature.
  • Use extreme caution with the ICSPDIS bit when using Microchip Technology's Quick Turn Programming (QTP) or Serialized Quick Turn Programming (SQTP) services. Devices that have had this Configuration bit enabled will permanently have their programming and debugging interface disabled, meaning that it will no longer be possible for those devices to be reprogrammed or erased ever again and will have extremely limited FA capability.
Important:
  1. Setting the ICSPDIS Configuration bit through the ICSP interface requires the following sequence:
    1. Send Program Access Enable Command with appropriate payload. For more information on the Program Access Enable Command, refer to the PIC18-Q24 Family Programming Specification.
    2. Send Program Data Command to write to the ICSPDIS bit. For more information on the Program Data Command, refer to the PIC18-Q24 Family Programming Specification.