1.7.1 An Unexpected Reset May Occur if the BOR Module is Disabled and Then Re-Enabled When the HLVD Module is Not Enabled

An unexpected Reset may occur if the Brown-out Reset (BOR) module is disabled, and then re-enabled, when the High/Low-Voltage Detection (HLVD) module is not enabled (HLVDCON[4] = 0). This issue affects BOR modes:
  • BOREN[1:0] = 'b10
  • BOREN[1:0] = 'b01
In both of these modes, if the BOR module is re-enabled while the device is active, unexpected Resets may be generated.

Work around

If BOR is required and power consumption is not an issue, set BOREN[1:0] = 'b11. For the BOREN[1:0] = 'b10 mode, either switch to the BOREN[1:0] = 'b11 mode or enable the HLVD module prior to entering Sleep mode.

If power consumption is an issue and low power is desired, do not use the BOREN[1:0] = 'b10 mode. Instead, use the BOREN[1:0] = 'b01 mode and follow the steps below when entering and exiting Sleep mode:
  1. Disable the BOR by clearing SBOREN.
    WDTCONbits.SBOREN = 0;
  2. Enter Sleep mode (if desired).
    SLEEP();
  3. After exiting Sleep mode (if entered), enable the HLVD module.
    HLVDCONbits.HLVDEN = 1;
  4. Wait for the internal reference voltage (TIRVST) to stabilize (typically 25 μs).
    while(!HLVDCONbits.IRVST);
  5. Re-enable the BOR by setting SBOREN.
    WDTCONbits.SBOREN = 1;
  6. Disable the HLVD module by clearing HLVDEN.
    HLVDCONbits.HLVDEN = 0;

Affected Silicon Revisions

A2A3A4A6A7
XXXXX