7 functional description, 1 can controller initialization – Rainbow Electronics AT91CAP9S250A User Manual

Page 696

Advertising
background image

696

6264A–CAP–21-May-07

AT91CAP9S500A/AT91CAP9S250A

Figure 39-9. Disabling Low-power Mode

39.7

Functional Description

39.7.1

CAN Controller Initialization

After power-up reset, the CAN controller is disabled. The CAN controller clock must be acti-
vated by the Power Management Controller (PMC) and the CAN controller interrupt line must
be enabled by the interrupt controller (AIC).

The CAN controller must be initialized with the CAN network parameters. The CAN_BR regis-
ter defines the sampling point in the bit time period. CAN_BR must be set before the CAN
controller is enabled by setting the CANEN field in the CAN_MR register.

The CAN controller is enabled by setting the CANEN flag in the CAN_MR register. At this
stage, the internal CAN controller state machine is reset, error counters are reset to 0, error
flags are reset to 0.

Once the CAN controller is enabled, bus synchronization is done automatically by scanning
eleven recessive bits. The WAKEUP bit in the CAN_SR register is automatically set to 1 when
the CAN controller is synchronized (WAKEUP and SLEEP are stuck at 0 after a reset).

The CAN controller can start listening to the network in Autobaud Mode. In this case, the error
counters are locked and a mailbox may be configured in Receive Mode. By scanning error
flags, the CAN_BR register values synchronized with the network. Once no error has been
detected, the application disables the Autobaud Mode, clearing the ABM field in the CAN_MR
register.

SLEEP

(CAN_SR)

MRDY

(CAN_MSRx)

LPM

(CAN_MR)

CAN BUS

Bus Activity Detected

Message x

Interframe synchronization

WAKEUP

(CAN_SR)

Message lost

Advertising