15.1 Program Flash Memory (PFM)
The Program Flash Memory (PFM) is readable, writable and erasable over the entire VDD range.
- User program memory (read/write)
- Configuration Words (read/write)
- Device ID (read-only)
- Revision ID (read-only)
- User ID (read-write)
- Device Information Area (read-only)
- Device Configuration Information (read-only)
- CPU instruction fetch (read-only)
- FSR/INDF indirect access (read-only)
- NVMREG access (read-write)
- In-Circuit Serial Programming™ (ICSP™) (external read-write)
It is important to understand the program memory structure for erase and programming operations. Program memory is arranged in rows. A row consists of 32 14-bit program memory words. A row is the minimum size that can be erased by user software. A Bulk Erase command cannot be issued from user code.
Read operations return a single word of memory. Write and erase operations are done on a
row basis. Program memory will erase to a logic ‘1
’ and program to a logic
‘0
’.
Writing or erasing program memory will cease instruction fetches until the operation is complete. The program memory cannot be accessed during the write or erase, so code cannot execute. An internal programming timer controls the write time of program memory writes and erases.
A value written to program memory does not need to be a valid instruction. Executing a
program memory location that forms an invalid instruction results in a NOP
.