Control Area Network Interface Peripheral

CAN (AT91S_CAN) 0xFFFD0000 (AT91C_BASE_CAN)
Periph ID AICSymbolDescription
15 (AT91C_ID_CAN)Control Area Network Controller

SignalSymbolPIO controllerDescription
CANTX(AT91C_PA20_CANTX )PIOA Periph: A Bit: 20CAN Transmit
CANRX(AT91C_PA19_CANRX )PIOA Periph: A Bit: 19CAN Receive

FunctionDescription
AT91F_CAN_CfgPMCEnable Peripheral clock in PMC for CAN
AT91F_CAN_CfgPIOConfigure PIO controllers to drive CAN signals


CAN Software API (AT91S_CAN)

OffsetFieldDescription
0x0CAN_MRMode Register
0x4CAN_IERInterrupt Enable Register
0x8CAN_IDRInterrupt Disable Register
0xCCAN_IMRInterrupt Mask Register
0x10CAN_SRStatus Register
0x14CAN_BRBaudrate Register
0x18CAN_TIMTimer Register
0x1CCAN_TIMESTPTime Stamp Register
0x20CAN_ECRError Counter Register
0x24CAN_TCRTransfer Command Register
0x28CAN_ACRAbort Command Register
0xFCCAN_VRVersion Register
0x200CAN_MB0 (CAN_MB)CAN Mailbox 0
0x220CAN_MB1 (CAN_MB)CAN Mailbox 1
0x240CAN_MB2 (CAN_MB)CAN Mailbox 2
0x260CAN_MB3 (CAN_MB)CAN Mailbox 3
0x280CAN_MB4 (CAN_MB)CAN Mailbox 4
0x2A0CAN_MB5 (CAN_MB)CAN Mailbox 5
0x2C0CAN_MB6 (CAN_MB)CAN Mailbox 6
0x2E0CAN_MB7 (CAN_MB)CAN Mailbox 7
0x300CAN_MB8 (CAN_MB)CAN Mailbox 8
0x320CAN_MB9 (CAN_MB)CAN Mailbox 9
0x340CAN_MB10 (CAN_MB)CAN Mailbox 10
0x360CAN_MB11 (CAN_MB)CAN Mailbox 11
0x380CAN_MB12 (CAN_MB)CAN Mailbox 12
0x3A0CAN_MB13 (CAN_MB)CAN Mailbox 13
0x3C0CAN_MB14 (CAN_MB)CAN Mailbox 14
0x3E0CAN_MB15 (CAN_MB)CAN Mailbox 15

FunctionDescription
AT91F_CAN_CfgModeRegConfigure the Mode Register of the CAN controller
AT91F_CAN_InitAbortRequestAbort the corresponding mailboxes
AT91F_CAN_GetMessageDataLowReturn data low value
AT91F_CAN_GetInternalCounterReturn CAN Timer Regsiter Value
AT91F_CAN_EnableItEnable CAN interrupt
AT91F_CAN_CfgBaudrateRegConfigure the Baudrate of the CAN controller for the network
AT91F_CAN_CfgMessageAcceptanceMaskRegProgram the Message Acceptance Mask Register
AT91F_DisableCAN()
AT91F_InitMailboxRegisters()Configure the corresponding mailbox
AT91F_CAN_CfgMessageDataLowProgram data low value
AT91F_CAN_GetMessageDataHighReturn data high value
AT91F_CAN_GetInterruptMaskStatusReturn CAN Interrupt Mask Status
AT91F_CAN_GetMessageStatusReturn CAN Mailbox Status
AT91F_CAN_GetFamilyIDReturn the Message ID Register
AT91F_CAN_IsStatusSetTest if CAN Interrupt is Set
AT91F_CAN_GetErrorCounterReturn CAN Error Counter Register Value
AT91F_CAN_GetMessageModeRegReturn the Message Mode Register
AT91F_CAN_CfgMessageCtrlRequest and config for a transfer on the corresponding mailbox
AT91F_CAN_CfgMessageModeRegProgram the Message Mode Register
AT91F_CAN_IsInterruptMaskedTest if CAN Interrupt is Masked
AT91F_CAN_DisableItDisable CAN interrupt
AT91F_CAN_GetMessageAcceptanceMaskRegReturn the Message Acceptance Mask Register
AT91F_CAN_CfgMessageDataHighProgram data high value
AT91F_CAN_CfgMessageIDRegVersion == 0 for Standard messsage, Version == 1 for Extended
AT91F_CAN_GetBaudrateReturn the Baudrate of the CAN controller for the network value
AT91F_CAN_GetStatusReturn CAN Interrupt Status
AT91F_CAN_InitTransferRequestRequest for a transfer on the corresponding mailboxes
AT91F_CAN_GetModeRegReturn the Mode Register of the CAN controller value
AT91F_EnableCAN()
AT91F_CAN_GetMessageIDRegReturn the Message ID Register
AT91F_CAN_GetTimestampReturn CAN Timestamp Register Value

CAN Register Description

CAN: AT91_REG CAN_MR Mode Register

OffsetNameDescription
0CAN_CANEN
AT91C_CAN_CANEN
CAN Controller Enable
0 =
1 =
1CAN_LPM
AT91C_CAN_LPM
Disable/Enable Low Power Mode
0 =
1 =
2CAN_ABM
AT91C_CAN_ABM
Disable/Enable Autobaud/Listen Mode
0 =
1 =
3CAN_OVL
AT91C_CAN_OVL
Disable/Enable Overload Frame
0 =
1 =
4CAN_TEOF
AT91C_CAN_TEOF
Time Stamp messages at each end of Frame
0 =
1 =
5CAN_TTM
AT91C_CAN_TTM
Disable/Enable Time Trigger Mode
0 =
1 =
6CAN_TIMFRZ
AT91C_CAN_TIMFRZ
Enable Timer Freeze
0 =
1 =
7CAN_DRPT
AT91C_CAN_DRPT
Disable Repeat
0 =
1 =

CAN: AT91_REG CAN_IER Interrupt Enable Register

OffsetNameDescription
0CAN_MB0
AT91C_CAN_MB0
Mailbox 0 Flag
1CAN_MB1
AT91C_CAN_MB1
Mailbox 1 Flag
2CAN_MB2
AT91C_CAN_MB2
Mailbox 2 Flag
3CAN_MB3
AT91C_CAN_MB3
Mailbox 3 Flag
4CAN_MB4
AT91C_CAN_MB4
Mailbox 4 Flag
5CAN_MB5
AT91C_CAN_MB5
Mailbox 5 Flag
6CAN_MB6
AT91C_CAN_MB6
Mailbox 6 Flag
7CAN_MB7
AT91C_CAN_MB7
Mailbox 7 Flag
8CAN_MB8
AT91C_CAN_MB8
Mailbox 8 Flag
9CAN_MB9
AT91C_CAN_MB9
Mailbox 9 Flag
10CAN_MB10
AT91C_CAN_MB10
Mailbox 10 Flag
11CAN_MB11
AT91C_CAN_MB11
Mailbox 11 Flag
12CAN_MB12
AT91C_CAN_MB12
Mailbox 12 Flag
13CAN_MB13
AT91C_CAN_MB13
Mailbox 13 Flag
14CAN_MB14
AT91C_CAN_MB14
Mailbox 14 Flag
15CAN_MB15
AT91C_CAN_MB15
Mailbox 15 Flag
16CAN_ERRA
AT91C_CAN_ERRA
Error Active Mode Flag
17CAN_WARN
AT91C_CAN_WARN
Warning Limit Flag
18CAN_ERRP
AT91C_CAN_ERRP
Error Passive Mode Flag
19CAN_BOFF
AT91C_CAN_BOFF
Bus Off Mode Flag
20CAN_SLEEP
AT91C_CAN_SLEEP
Sleep Flag
21CAN_WAKEUP
AT91C_CAN_WAKEUP
Wakeup Flag
22CAN_TOVF
AT91C_CAN_TOVF
Timer Overflow Flag
23CAN_TSTP
AT91C_CAN_TSTP
Timestamp Flag
24CAN_CERR
AT91C_CAN_CERR
CRC Error
25CAN_SERR
AT91C_CAN_SERR
Stuffing Error
26CAN_AERR
AT91C_CAN_AERR
Acknowledgment Error
27CAN_FERR
AT91C_CAN_FERR
Form Error
28CAN_BERR
AT91C_CAN_BERR
Bit Error

CAN: AT91_REG CAN_IDR Interrupt Disable Register

OffsetNameDescription
0CAN_MB0
AT91C_CAN_MB0
Mailbox 0 Flag
1CAN_MB1
AT91C_CAN_MB1
Mailbox 1 Flag
2CAN_MB2
AT91C_CAN_MB2
Mailbox 2 Flag
3CAN_MB3
AT91C_CAN_MB3
Mailbox 3 Flag
4CAN_MB4
AT91C_CAN_MB4
Mailbox 4 Flag
5CAN_MB5
AT91C_CAN_MB5
Mailbox 5 Flag
6CAN_MB6
AT91C_CAN_MB6
Mailbox 6 Flag
7CAN_MB7
AT91C_CAN_MB7
Mailbox 7 Flag
8CAN_MB8
AT91C_CAN_MB8
Mailbox 8 Flag
9CAN_MB9
AT91C_CAN_MB9
Mailbox 9 Flag
10CAN_MB10
AT91C_CAN_MB10
Mailbox 10 Flag
11CAN_MB11
AT91C_CAN_MB11
Mailbox 11 Flag
12CAN_MB12
AT91C_CAN_MB12
Mailbox 12 Flag
13CAN_MB13
AT91C_CAN_MB13
Mailbox 13 Flag
14CAN_MB14
AT91C_CAN_MB14
Mailbox 14 Flag
15CAN_MB15
AT91C_CAN_MB15
Mailbox 15 Flag
16CAN_ERRA
AT91C_CAN_ERRA
Error Active Mode Flag
17CAN_WARN
AT91C_CAN_WARN
Warning Limit Flag
18CAN_ERRP
AT91C_CAN_ERRP
Error Passive Mode Flag
19CAN_BOFF
AT91C_CAN_BOFF
Bus Off Mode Flag
20CAN_SLEEP
AT91C_CAN_SLEEP
Sleep Flag
21CAN_WAKEUP
AT91C_CAN_WAKEUP
Wakeup Flag
22CAN_TOVF
AT91C_CAN_TOVF
Timer Overflow Flag
23CAN_TSTP
AT91C_CAN_TSTP
Timestamp Flag
24CAN_CERR
AT91C_CAN_CERR
CRC Error
25CAN_SERR
AT91C_CAN_SERR
Stuffing Error
26CAN_AERR
AT91C_CAN_AERR
Acknowledgment Error
27CAN_FERR
AT91C_CAN_FERR
Form Error
28CAN_BERR
AT91C_CAN_BERR
Bit Error

CAN: AT91_REG CAN_IMR Interrupt Mask Register

OffsetNameDescription
0CAN_MB0
AT91C_CAN_MB0
Mailbox 0 Flag
1CAN_MB1
AT91C_CAN_MB1
Mailbox 1 Flag
2CAN_MB2
AT91C_CAN_MB2
Mailbox 2 Flag
3CAN_MB3
AT91C_CAN_MB3
Mailbox 3 Flag
4CAN_MB4
AT91C_CAN_MB4
Mailbox 4 Flag
5CAN_MB5
AT91C_CAN_MB5
Mailbox 5 Flag
6CAN_MB6
AT91C_CAN_MB6
Mailbox 6 Flag
7CAN_MB7
AT91C_CAN_MB7
Mailbox 7 Flag
8CAN_MB8
AT91C_CAN_MB8
Mailbox 8 Flag
9CAN_MB9
AT91C_CAN_MB9
Mailbox 9 Flag
10CAN_MB10
AT91C_CAN_MB10
Mailbox 10 Flag
11CAN_MB11
AT91C_CAN_MB11
Mailbox 11 Flag
12CAN_MB12
AT91C_CAN_MB12
Mailbox 12 Flag
13CAN_MB13
AT91C_CAN_MB13
Mailbox 13 Flag
14CAN_MB14
AT91C_CAN_MB14
Mailbox 14 Flag
15CAN_MB15
AT91C_CAN_MB15
Mailbox 15 Flag
16CAN_ERRA
AT91C_CAN_ERRA
Error Active Mode Flag
17CAN_WARN
AT91C_CAN_WARN
Warning Limit Flag
18CAN_ERRP
AT91C_CAN_ERRP
Error Passive Mode Flag
19CAN_BOFF
AT91C_CAN_BOFF
Bus Off Mode Flag
20CAN_SLEEP
AT91C_CAN_SLEEP
Sleep Flag
21CAN_WAKEUP
AT91C_CAN_WAKEUP
Wakeup Flag
22CAN_TOVF
AT91C_CAN_TOVF
Timer Overflow Flag
23CAN_TSTP
AT91C_CAN_TSTP
Timestamp Flag
24CAN_CERR
AT91C_CAN_CERR
CRC Error
25CAN_SERR
AT91C_CAN_SERR
Stuffing Error
26CAN_AERR
AT91C_CAN_AERR
Acknowledgment Error
27CAN_FERR
AT91C_CAN_FERR
Form Error
28CAN_BERR
AT91C_CAN_BERR
Bit Error

CAN: AT91_REG CAN_SR Status Register


MB0 to MB15: Mailbox 0 to 15 Event.
ERRA: Error Avtive Mode.
ERRP: Error Passive Mode.
BOFF: Bus Off Mode.
SLEEP: CAN controller is in Low Power Mode.
WAKEUP: CAN controller is not in low power mode.
TOVF: Timer Overflow.
TSTP: Timestamp.
OffsetNameDescription
0CAN_MB0
AT91C_CAN_MB0
Mailbox 0 Flag
1CAN_MB1
AT91C_CAN_MB1
Mailbox 1 Flag
2CAN_MB2
AT91C_CAN_MB2
Mailbox 2 Flag
3CAN_MB3
AT91C_CAN_MB3
Mailbox 3 Flag
4CAN_MB4
AT91C_CAN_MB4
Mailbox 4 Flag
5CAN_MB5
AT91C_CAN_MB5
Mailbox 5 Flag
6CAN_MB6
AT91C_CAN_MB6
Mailbox 6 Flag
7CAN_MB7
AT91C_CAN_MB7
Mailbox 7 Flag
8CAN_MB8
AT91C_CAN_MB8
Mailbox 8 Flag
9CAN_MB9
AT91C_CAN_MB9
Mailbox 9 Flag
10CAN_MB10
AT91C_CAN_MB10
Mailbox 10 Flag
11CAN_MB11
AT91C_CAN_MB11
Mailbox 11 Flag
12CAN_MB12
AT91C_CAN_MB12
Mailbox 12 Flag
13CAN_MB13
AT91C_CAN_MB13
Mailbox 13 Flag
14CAN_MB14
AT91C_CAN_MB14
Mailbox 14 Flag
15CAN_MB15
AT91C_CAN_MB15
Mailbox 15 Flag
16CAN_ERRA
AT91C_CAN_ERRA
Error Active Mode Flag
17CAN_WARN
AT91C_CAN_WARN
Warning Limit Flag
18CAN_ERRP
AT91C_CAN_ERRP
Error Passive Mode Flag
19CAN_BOFF
AT91C_CAN_BOFF
Bus Off Mode Flag
20CAN_SLEEP
AT91C_CAN_SLEEP
Sleep Flag
21CAN_WAKEUP
AT91C_CAN_WAKEUP
Wakeup Flag
22CAN_TOVF
AT91C_CAN_TOVF
Timer Overflow Flag
23CAN_TSTP
AT91C_CAN_TSTP
Timestamp Flag
24CAN_CERR
AT91C_CAN_CERR
CRC Error
25CAN_SERR
AT91C_CAN_SERR
Stuffing Error
26CAN_AERR
AT91C_CAN_AERR
Acknowledgment Error
27CAN_FERR
AT91C_CAN_FERR
Form Error
28CAN_BERR
AT91C_CAN_BERR
Bit Error
29CAN_RBSY
AT91C_CAN_RBSY
Receiver Busy
30CAN_TBSY
AT91C_CAN_TBSY
Transmitter Busy
31CAN_OVLY
AT91C_CAN_OVLY
Overload Busy

CAN: AT91_REG CAN_BR Baudrate Register

OffsetNameDescription
2..0CAN_PHASE2
AT91C_CAN_PHASE2
Phase 2 segment
6..4CAN_PHASE1
AT91C_CAN_PHASE1
Phase 1 segment
10..8CAN_PROPAG
AT91C_CAN_PROPAG
Programmation time segment
13..12CAN_SYNC
AT91C_CAN_SYNC
Re-synchronization jump width segment
22..16CAN_BRP
AT91C_CAN_BRP
Baudrate Prescaler
24CAN_SMP
AT91C_CAN_SMP
Sampling mode

CAN: AT91_REG CAN_TIM Timer Register

OffsetNameDescription
15..0CAN_TIMER
AT91C_CAN_TIMER
Timer field

CAN: AT91_REG CAN_TIMESTP Time Stamp Register

OffsetNameDescription
15..0CAN_MTIMESTAMP
AT91C_CAN_MTIMESTAMP
Timer Value

CAN: AT91_REG CAN_ECR Error Counter Register

OffsetNameDescription
7..0CAN_REC
AT91C_CAN_REC
Receive Error Counter
23..16CAN_TEC
AT91C_CAN_TEC
Transmit Error Counter

CAN: AT91_REG CAN_TCR Transfer Command Register


MB0 to MB15: Transfer Request for Mailbox 0 to 15.
OffsetNameDescription
0CAN_MB0
AT91C_CAN_MB0
Mailbox 0 Flag
1CAN_MB1
AT91C_CAN_MB1
Mailbox 1 Flag
2CAN_MB2
AT91C_CAN_MB2
Mailbox 2 Flag
3CAN_MB3
AT91C_CAN_MB3
Mailbox 3 Flag
4CAN_MB4
AT91C_CAN_MB4
Mailbox 4 Flag
5CAN_MB5
AT91C_CAN_MB5
Mailbox 5 Flag
6CAN_MB6
AT91C_CAN_MB6
Mailbox 6 Flag
7CAN_MB7
AT91C_CAN_MB7
Mailbox 7 Flag
8CAN_MB8
AT91C_CAN_MB8
Mailbox 8 Flag
9CAN_MB9
AT91C_CAN_MB9
Mailbox 9 Flag
10CAN_MB10
AT91C_CAN_MB10
Mailbox 10 Flag
11CAN_MB11
AT91C_CAN_MB11
Mailbox 11 Flag
12CAN_MB12
AT91C_CAN_MB12
Mailbox 12 Flag
13CAN_MB13
AT91C_CAN_MB13
Mailbox 13 Flag
14CAN_MB14
AT91C_CAN_MB14
Mailbox 14 Flag
15CAN_MB15
AT91C_CAN_MB15
Mailbox 15 Flag
31CAN_TIMRST
AT91C_CAN_TIMRST
Timer Reset Field

CAN: AT91_REG CAN_ACR Abort Command Register


MB0 to MB15: Abort Request for Mailbox 0 to 15.
OffsetNameDescription
0CAN_MB0
AT91C_CAN_MB0
Mailbox 0 Flag
1CAN_MB1
AT91C_CAN_MB1
Mailbox 1 Flag
2CAN_MB2
AT91C_CAN_MB2
Mailbox 2 Flag
3CAN_MB3
AT91C_CAN_MB3
Mailbox 3 Flag
4CAN_MB4
AT91C_CAN_MB4
Mailbox 4 Flag
5CAN_MB5
AT91C_CAN_MB5
Mailbox 5 Flag
6CAN_MB6
AT91C_CAN_MB6
Mailbox 6 Flag
7CAN_MB7
AT91C_CAN_MB7
Mailbox 7 Flag
8CAN_MB8
AT91C_CAN_MB8
Mailbox 8 Flag
9CAN_MB9
AT91C_CAN_MB9
Mailbox 9 Flag
10CAN_MB10
AT91C_CAN_MB10
Mailbox 10 Flag
11CAN_MB11
AT91C_CAN_MB11
Mailbox 11 Flag
12CAN_MB12
AT91C_CAN_MB12
Mailbox 12 Flag
13CAN_MB13
AT91C_CAN_MB13
Mailbox 13 Flag
14CAN_MB14
AT91C_CAN_MB14
Mailbox 14 Flag
15CAN_MB15
AT91C_CAN_MB15
Mailbox 15 Flag

CAN: AT91_REG CAN_VR Version Register

CAN: AT91S_CAN_MB CAN_MB0 CAN Mailbox 0

CAN: AT91S_CAN_MB CAN_MB1 CAN Mailbox 1

CAN: AT91S_CAN_MB CAN_MB2 CAN Mailbox 2

CAN: AT91S_CAN_MB CAN_MB3 CAN Mailbox 3

CAN: AT91S_CAN_MB CAN_MB4 CAN Mailbox 4

CAN: AT91S_CAN_MB CAN_MB5 CAN Mailbox 5

CAN: AT91S_CAN_MB CAN_MB6 CAN Mailbox 6

CAN: AT91S_CAN_MB CAN_MB7 CAN Mailbox 7

CAN: AT91S_CAN_MB CAN_MB8 CAN Mailbox 8

CAN: AT91S_CAN_MB CAN_MB9 CAN Mailbox 9

CAN: AT91S_CAN_MB CAN_MB10 CAN Mailbox 10

CAN: AT91S_CAN_MB CAN_MB11 CAN Mailbox 11

CAN: AT91S_CAN_MB CAN_MB12 CAN Mailbox 12

CAN: AT91S_CAN_MB CAN_MB13 CAN Mailbox 13

CAN: AT91S_CAN_MB CAN_MB14 CAN Mailbox 14

CAN: AT91S_CAN_MB CAN_MB15 CAN Mailbox 15