50.7.5.1 Enabling Low-Power Mode

A software application can enable Low-power mode by setting the LPM bit in the CAN_MR global register. The CAN controller enters Low-power mode once all pending transmit messages are sent.

When the CAN controller enters Low-power mode, the SLEEP signal in CAN_SR is set. Depending on the corresponding mask in CAN_IMR, an interrupt is generated while SLEEP 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.

Reception is disabled while the SLEEP signal is set to one in CAN_SR. It is important to note that those messages with higher priority than the last message transmitted can be received between the LPM command and entry in Low-power mode.

Once in Low-power mode, the CAN controller clock can be switched off by programming the chip’s Power Management Controller (PMC). The CAN controller drains only the static current.

Error counters are disabled while the SLEEP signal is set to one.

Thus, to enter Low-power mode, the software application must:

  • set LPM field in the CAN_MR,
  • wait for SLEEP signal rising.

Now the CAN controller clock can be disabled. This is done by programming the Power Management Controller (PMC).

Figure 50-8. Enabling Low-Power Mode