Controller area network (bxCAN) RM0402
926/1163 RM0402 Rev 6
28.4.3 Sleep mode (low-power)
To reduce power consumption, bxCAN has a low-power mode called Sleep mode. This
mode is entered on software request by setting the SLEEP bit in the CAN_MCR register. In
this mode, the bxCAN clock is stopped, however software can still access the bxCAN
mailboxes.
If software requests entry to initialization mode by setting the INRQ bit while bxCAN is in
Sleep mode, it must also clear the SLEEP bit.
bxCAN can be woken up (exit Sleep mode) either by software clearing the SLEEP bit or on
detection of CAN bus activity.
On CAN bus activity detection, hardware automatically performs the wakeup sequence by
clearing the SLEEP bit if the AWUM bit in the CAN_MCR register is set. If the AWUM bit is
cleared, software has to clear the SLEEP bit when a wakeup interrupt occurs, in order to exit
from Sleep mode.
Note: If the wakeup interrupt is enabled (WKUIE bit set in CAN_IER register) a wakeup interrupt is
generated on detection of CAN bus activity, even if the bxCAN automatically performs the
wakeup sequence.
After the SLEEP bit has been cleared, Sleep mode is exited once bxCAN has synchronized
with the CAN bus, refer to
Figure 320: bxCAN operating modes. The Sleep mode is exited
once the SLAK bit has been cleared by hardware.
Figure 320. bxCAN operating modes
1. ACK = The wait state during which hardware confirms a request by setting the INAK or SLAK bits in the
CAN_MSR register
2. SYNC = The state during which bxCAN waits until the CAN bus is idle, meaning 11 consecutive recessive
bits have been monitored on CANRX
Sleep
Normal
Reset
INRQ.SYNC.SLEEP
ai15902
SLAK = 1
INAK = 0
SLAK = 0
INAK = 1
SLAK = 0
INAK = 0
INRQ.ACK
SLEEP.INRQ.ACK
SLEEP.INRQ.ACK
SLEEP.ACK
SLEEP.SYNC.INRQ
Initialization