2.15.1 CPU Hang Configuration Switch

CHECON.ADRWS is not hardwired to ‘0’ and is configurable to ‘1’ or ‘0’, with the reset/default value being ‘1’. The CPU hangs when the CHECON.ADRWS configuration switches from ‘1’ to ‘0’ and a Flash read access occurs. While CHECON.ADRWS is switching to ‘0’ (default is ‘1’), the ADRWS will be latched at the next clock, and, if a Flash read access happens at the same clock, the system hangs waiting for an internal ack due to the PFM cache miss.

Work Around:

To configure ADRWS from ‘1’ to ‘0’, execute the CHECON configuration from SRAM until the configuration is done, then resume the execution from Flash after the configuration is set. The Microchip-generated initialization code already takes care of this with the above scheme.

Note:
  • The work around is working in A2 and newer versions.
  • The ADRWS bit behavior is modified in the PIC32CX-BZ2 and WBZ45 Family Data Sheet (DS70005504).

Affected Silicon Revisions

PIC32CX1012BZ25048/WBZ451/WBZ451H
A0A2
X
PIC32CX1012BZ24032/WBZ450
A2