Sleep Mode

Zynq UltraScale+ Device Technical Reference Manual (UG1085)

Document ID
UG1085
Release Date
2022-09-15
Revision
2.3 English

Sleep mode can be used to save a small amount of power during idle times. When in sleep mode, the controller can transition to normal mode or configuration mode. Sleep mode includes the following actions.

When another node transmits a message, the controller receives the message and exits sleep mode.

When there is a new TX request, the controller switches to normal mode and the services the request.

An interrupt can be generated when the controller enters sleep mode.

An interrupt can be generated when the controller wakes up.

Sleep mode is exited by the hardware when there is CAN bus activity or a request in either the TXFIFO or TXHPB. When the controller exits sleep mode, can.MSR[SLEEP] is set to 0 by the hardware and an interrupt can be generated.

The CAN controller enters sleep mode from configuration mode when the [LBACK] bit in the [MSR] is 0, the [SLEEP] bit in the MSR register is 1, and the [CEN] bit in the SRR register is 1. The CAN controller enters sleep mode only when there are no pending transmission requests from either the TXFIFO or the TX high-priority buffer.

The CAN controller enters sleep mode from normal mode only when the [SLEEP] bit is 1, the CAN bus is idle, and there are no pending transmission requests from either the TXFIFO or the TX high-priority buffer (TXHPB).

When another node transmits a message, the CAN controller receives the transmitted message and exits sleep mode. When the controller is in sleep mode, if there are new transmission requests from either the TXFIFO or the TXHPB, these requests are serviced, and the CAN controller exits sleep mode. Interrupts are generated when the CAN controller enters sleep mode or wakes up from sleep mode. From sleep mode, the CAN controller can enter either the configuration or normal modes.