5.1.2 Nonvolatile Memory Controller
AVR and PIC32CM MCUs feature a Nonvolatile Memory Controller (NVMCTRL) that manages access to on-chip Flash memory and other nonvolatile memory regions. Both MCUs support in-system programming, self-programming, bootloader support, and configurable memory protection for secure code and data storage. Both controllers are designed for reliable program and data storage, with mechanisms for memory protection and flexible access. Table 5-4 shows a comparison of features between AVR and PIC32CM.
| Feature | AVR® NVMCTRL | PIC32CM NVMCTRL |
|---|---|---|
| Bus Interface | 8/16-bit CPU bus |
32-bit Advanced High-Performance Bus (AHB) for memory read/write 32-bit Advanced Peripheral Bus (APB) for memory control |
| Flash Memory | Unified Flash (program/data) | Main Flash array |
| EEPROM | Separate EEPROM block | EEPROM emulation (RWWEE) |
| Memory Protection | Boot, application, data sections | Boot, 16 individually protected regions |
| Signature Row |
Factory data Serial number Calibration bytes | Memory-mapped to AHB |
| User Row |
User data Writable from software/UPDI | Memory-mapped to AHB |
| Wait State Configuration | Fixed/Programmable | Programmable |
| Cache | N/A | Direct-mapped cache |
| Power Management | Standard |
Flash block power-down in sleep Wake on access |
| Security Bit/Device Lock | FUSEs, lock bits | Security bit, Device protection |
| Access in Sleep Modes | N/A | Wake on access or exit from sleep mode |
