Datasheet
SAM3X / SAM3A [DATASHEET]
Atmel-11057C-ATARM-SAM3X-SAM3A-Datasheet_23-Mar-15
1198
Reception is disabled while the SLEEP signal is set to one in the CAN_SR register. 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 register
Wait for SLEEP signal rising
Now the CAN Controller clock can be disabled. This is done by programming the Power Management Controller
(PMC).
Figure 40-8. Enabling Low-power Mode
40.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 LPM field in the CAN_MR register
The CAN controller synchronizes itself with the bus activity by checking for eleven consecutive “recessive” bits.
Once synchronized, the WAKEUP signal in the CAN_SR register is set.
Depending on the corresponding mask in the CAN_IMR register, an interrupt is generated while WAKEUP is set.
The SLEEP signal in the CAN_SR register is automatically cleared once WAKEUP is set. 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.
SLEEP
(CAN_SR)
MRDY
(CAN_MSR1)
LPM
(CAN_MR)
LPEN= 1
CAN BUS
MRDY
(CAN_MSR3)
Mailbox 1
Mailbox 3
Arbitration lost
WAKEUP
(CAN_SR)
0x0CAN_TIM










