16.5.10 Unrecoverable Device Conditions
The PIC32CM device incorporates advanced security and intellectual property protection mechanisms. While these features are essential for safeguarding deployed applications, improper configuration may render the device permanently non-programmable and non-recoverable.
This section outlines specific operating conditions that users must avoid unless the intention is to permanently lock the device for field deployment.
Device Access Level and IMODE Command CMD_CE_ALL
Users must exercise extreme caution when programming the following fuses:
| Fuse/Command | Value to avoid device brick condition |
|---|---|
| ROMCFG_FUSES → DAL | DAL0 |
| IMODE command CMD_CE_ALL | LOCKED |
| IMODE command CMD_HOST_DALELEV | LOCKED |
Programming the above configuration will permanently lock the device, disabling any future erase or reprogramming operations. This action should only be performed if the final goal is to prevent any further modification of the device once deployed in the field.
ROMCFG and BOOTCFG1/1A Read and Write Protection
Certain fuse configurations may render the device partially usable by restricting access to critical configuration fuses. Specifically, if the following fuses are programmed, the user will no longer be able to reprogram the ROMCFG and USERCFG1/1A fuses.
| ROMCFG/USERCFG Fuses | Value to avoid device brick condition |
|---|---|
| ROMCFG_FUSES → DAL | DAL2 |
| KEY_VAL of CMD_CE_ALL | Locked (0x00000000) |
| USERCFG_FUSES → FCW_CWP.RCWP | SET (= 1) |
| USERCFG_FUSES → FCW_CWP.RCWPLCK | SET (=1) |
| USERCFG_FUSES → FCW_CWP.BC1WP | SET (=1) |
| USERCFG_FUSES → FCW_CWP.BC1WPLCK | SET (=1) |
Once these write protections are enabled and locked, the device enters a restricted state where further modification of these fuses is not possible through standard methods.
MBIST Failure
The MBIST (Memory Built-In Self-Test) feature is a valuable safety mechanism offered by the PIC32CM device, particularly for applications requiring enhanced reliability of volatile user memory (SRAM). Once enabled through the ROMCFG_FUSES → FRCFGMBIST fuse, MBIST is executed automatically by the device during boot, without requiring any software or user intervention.
MBIST Operation:
- MBIST can be configured to run:
- On every reset, or
- Only after Power-on Reset (POR)
- Refer to the ROMCFG_FUSES section for details on selecting the MBIST-on-boot behavior
Device Behavior on MBIST Failure:
- If MBIST fails during boot, the Boot ROM halts further boot operations, rendering the device inaccessible
- The device does not proceed to execute any user application code, and no recovery is performed automatically
