PIC32MK0256GPG064 NVM registers

The 11 registers of NVM (Flash controller (NVM)), from 0xBF800A00, with their reset value and every field. The PIC32MK0256GPG064 has 963 registers in 82 peripherals, one page each.

Most PIC32 SFRs have three more registers right after them: CLR at +4, SET at +8 and INV at +C (T1CONCLR, T1CONSET, T1CONINV), which clear, set or flip just the bits written as 1, in one write.

NVM Flash controller (NVM)

NVMCONFlash Programming Control Register

Address
0xBF800A00
Reset
0x00000000
Access
read/write
Size
32-bit
7 fields
FieldBitsWhat it does
WR15Write Control bit
  • 0 Flash operation is complete or inactive
  • 1 Initiate a Flash operation
WREN14Write Enable bit
  • 0 Disable writes to WR bit and enables writes to the NVMOP bits
  • 1 Enable writes to the WR bit and disables writes to the NVMOP bits
WRERR13Write Error bit
  • 0 Program or erase sequence completed normally
  • 1 Program or erase sequence did not complete successfully
LVDERR12Low-Voltage Detect Error bit
  • 0 Voltage level is acceptable for programming
  • 1 Low-voltage detected (possible data corruption if WRERR is set)
PFSWAP7
BFSWAP6
NVMOP3:0NVM Operation bits
  • 0 No operation
  • 1 Word program operation: programs word selected by NVMADDR
  • 2 Quad Word (128-bit) program operation: programs the 128-bit Flash word selected by NVMADDR
  • 3 Row program operation: programs row selected by NVMADDR
  • 4 Page erase operation: erases page selected by NVMADDR
  • 5 Program Flash memory erase operation: erases all of Program Flash
  • 6 Reserved
  • 7 Program erase operation: erase all of program Flash memory (all pages must be unprotected)
  • 8 Reserved
  • 9 Reserved
  • 10 Reserved
  • 11 Reserved
  • 12 Reserved
  • 13 Reserved
  • 14 Reserved
  • 15 Reserved

NVMKEYProgramming Unlock Register

Address
0xBF800A10
Reset
0x00000000
Access
write only
Size
32-bit

NVMADDRFlash Address Register

Address
0xBF800A20
Reset
0x00000000
Access
read/write
Size
32-bit

NVMDATA0Flash Data Register (x = 0-3

Address
0xBF800A30
Reset
0x00000000
Access
read/write
Size
32-bit

NVMDATA1Flash Data Register (x = 0-3

Address
0xBF800A40
Reset
0x00000000
Access
read/write
Size
32-bit

NVMDATA2Flash Data Register (x = 0-3

Address
0xBF800A50
Reset
0x00000000
Access
read/write
Size
32-bit

NVMDATA3Flash Data Register (x = 0-3

Address
0xBF800A60
Reset
0x00000000
Access
read/write
Size
32-bit

NVMSRCADDRSource Data Address Register

Address
0xBF800A70
Reset
0x00000000
Access
read/write
Size
32-bit

NVMPWPProgram Flash Write-Protect Register

Address
0xBF800A80
Reset
0x80000000
Access
read/write
Size
32-bit
2 fields
FieldBitsWhat it does
PWP23:0
PWPULOCK31Program Flash Memory Page Write-protect Unlock bit
  • 0 Register is locked and cannot be modified
  • 1 Register is not locked and can be modified

NVMBWPFlash Boot (Page) Write-Protect Register

Address
0xBF800A90
Reset
0x00009FDF
Access
read/write
Size
32-bit
12 fields
FieldBitsWhat it does
LBWPULOCK15
LBWP412
LBWP311
LBWP210
LBWP19
LBWP08
UBWPULOCK7
UBWP44
UBWP33
UBWP22
UBWP11
UBWP00

NVMCON2Flash Programming Control Register 2

Address
0xBF800AA0
Reset
0x00000000
Access
read/write
Size
32-bit
1 field
FieldBitsWhat it does
SWAPLOCK7:6