34.6.9 Sleep Mode Operation

The CAN can operate in IDLE0 sleep mode, but cannot operate in IDLE2 and Standby sleep modes.

The CAN has its own low-power mode that may be used at any time without disabling the CAN. It is also mandatory to allow the CAN to complete all pending transactions before entering stand-by by activating this Low-Power mode. This is performed by writing one to the Clock Stop Request bit in the CC Control register (CCCR.CSR = 1). Once all pending transactions are completed and the idle bus state is detected, the CAN will automatically set the Clock Stop Acknowledge bit (CCCR.CSA = 1). The CAN then reverts to its initial state (CCCR.INIT = 1), blocking further transfers, and it is now safe for CLK_CANx_AHB and GCLK_CANx to be switched off and the system may go to standby.

To leave Low-Power mode, CLK_CANx_AHB and GCLK_CANx must be active before writing CCCR.CSR to '0'. The CAN will acknowledge this by resetting CCCR.CSA = 0. Afterwards, the application can restart CAN communication by resetting the CCCR.INIT bit.