PROG – OTP programming control register (0x0003, default 0x0000)
| Bits | Name | R/W | Description |
| 0 | PROGEN | R/W | OTP program enable (0 = Normal operation, 1 = Enable OTP |
| | | read/write access) 1 | (reserved)| - | Reserved (must be 0) 2 | OTPREF | R/W | OTP refresh trigger (1 = refresh shadow registers with OTP | | | content) 3 | PROGOTP | R/W | Start OTP programming cycle (set 1 to begin burning OTP fuses) 4 | (reserved)| - | Reserved (must be 0) 5 | (reserved)| - | Reserved (must be 0) 6 | PROGVER | R/W | Program verify mode enable (1 = enable guard-band verification mode) 7-15 | (reserved)| - | Reserved (must be 0)
Writing this register controls the OTP programming sequence:
- Set PROGEN=1 to enable OTP programming mode (allow OTP registers 0x0015–0x001B to be written).
- Then set PROGOTP=1 to initiate the OTP burn procedure. The PROGOTP bit will self-clear when the programming cycle completes.
- The PROGVER bit can be set to 1 to enter verification mode (guard band test) after programming.
- Toggling OTPREF (e.g., set to 1) reloads the non-volatile data from OTP into the device's shadow registers (useful after programming or to revert soft writes).
After starting a programming cycle, the host should poll the PROG register until it reads 0x0001, indicating the procedure is complete (PROGEN remains set, other bits cleared). It is recommended to perform verification and a power cycle (with PROGVER and OTPREF as described in the datasheet) to ensure OTP programming success.