2018 Microchip Technology Inc. DS70005340A-page 55
CAN FD Protocol Module
4.6 Low-Power Modes
4.6.1 SLEEP MODE
In the CAN module, special conditions need to be met for Sleep mode. The module must first be
switched to Disable mode by setting REQOPx = 001. When OPMODx = 001, indicating Disable
mode has been achieved, the CAN FD Protocol Module enters Sleep mode after a Sleep mode
request.
In Sleep mode, the register contents do not change, so the OPMODx bits do not change. At the
end of Sleep, the module will continue in the mode specified by the OPMODx bits previous to
Sleep mode (which should be Disable mode, OPMODx = 001).
If the user executes a SLEEP instruction without switching to Disable mode, the module
assumes a clock is available to read/write from RAM.
Since the system clock input is not available in Sleep mode, the CAN module cannot run as it
requires a system clock to transmit or receive. Also, the FIFO is in system RAM, which has no
clock in Sleep mode.
Recommended steps:
1. Write the REQOP<2:0> bits to ‘001’; the module will enter Disable mode.
2. Poll the OPMOD<2:0> bits to verify whether they are ‘001’, which indicates that the
module has successfully entered Disable mode.
3. Execute the SLEEP instruction.
4.6.2 IDLE MODE
The system can be set to run in a lower power mode, called Idle mode. When the device is in
Idle mode, the CPU is disabled and only select peripherals are active.
Based on the configuration of the CAN SIDL bit, the module can either be in or out of Idle mode:
•If SIDL = 0, the module continues operation in Idle mode. If the module generates an
interrupt while in Idle mode, the interrupt may generate a wake-up event.
•If SIDL=1, the module stops when the device is in Idle mode. The module performs the
same procedures when stopped in Idle mode as it does in Disable mode and the same
requirements apply.
The user should ensure that the module is not active when the CPU transitions to Idle mode
with SIDL = 1. To protect the CAN bus system from fatal consequences due to violation of this
rule, the module will drive the TX pin into the recessive state while stopped in Idle mode.
If the CAN SIDL bit is set, the recommended procedure is to bring the module into Disable
mode before the device is placed in Idle mode.
4.6.3 WAKE-UP FROM SLEEP
Figure 4-2 depicts how the CAN module will execute the SLEEP instruction and how the module
wakes up on bus activity. Upon a wake-up from Sleep mode, the WAKIF flag is set.