50.7.5.2 Disabling Low-Power Mode

The CAN controller can be awake after detecting a CAN bus activity. Bus activity detection is done by an external module that may be embedded in the chip. When it is notified of a CAN bus activity, the software application disables Low-power mode by programming the CAN controller.

To disable Low-power mode, the software application must:

  • enable the CAN controller clock. This is done by programming the Power Management Controller (PMC).
  • clear the CAN_MR.LPM field.

The CAN controller synchronizes itself with the bus activity by checking for eleven consecutive “recessive” bits. Once synchronized, the WAKEUP signal in CAN_SR is set.

Depending on the corresponding mask in CAN_IMR, an interrupt is generated while WAKEUP is set. The SLEEP signal in CAN_SR is automatically cleared once WAKEUP is set. The WAKEUP signal is automatically cleared once SLEEP is set.

If no message is being sent on the bus, then the CAN controller is able to send a message eleven bit times after disabling Low-power mode.

If there is bus activity when Low-power mode is disabled, the CAN controller is synchronized with the bus activity in the next interframe. The previous message is lost (see the figure below).

Figure 50-9. Disabling Low-Power Mode