Power Down (Sleep Mode)

The CAN can be set into power down mode via setting CC Control Register CCCR.CSR = ‘1’. When all pending transmission requests have completed, the CAN waits until bus idle state is detected. Then the CAN sets then CCCR.INIT to ‘1’ to prevent any further CAN transfers. Now the CAN acknowledges that it is ready for power down by setting CCCR.CSA to ‘1’. In this state, before the clocks are switched off, further register accesses can be made. A write access to CCCR.INIT will have no effect. Now the module clock inputs CLK_CAN_APB and GCLK_CAN may be switched off.

To leave power down mode, the CPU has to turn on the module clocks before resetting CC Control Register CCCR.CSR = ‘0’. The CAN will acknowledge this by resetting CCCR.CSA = ‘0’. Afterwards, the application can restart CAN communication by resetting bit CCCR.INIT.