
CAN modules
UM0404
DocID13284 Rev 2
If several interrupts are pending, the CAN Interrupt Register will point to the pending
interrupt with the highest priority, disregarding their chronological order. An interrupt remains
pending until the CPU has cleared it. If
IntId
is different from 0x0000 and
IE
is set, the
interrupt line to the CPU, is active. The interrupt line remains active until
IntId
is back to
value 0x0000 (the cause of the interrupt is reset) or until
IE
is reset.
The Status Interrupt has the highest priority. Among the message interrupts, the Message
Object’s interrupt priority decreases with increasing message number.
A message interrupt is cleared by clearing the Message Object’s
IntPnd
bit. The Status
Interrupt is cleared by reading the Status Register.
Transmission request registers
CAN1TR1 (EF80h)
XBUS
Reset Value: 0000h
CAN2TR1 (EE80h)
XBUS
Reset Value: 0000h
CAN1TR2 (EF82h)
XBUS
Reset Value: 0000h
CAN2TR2 (EE82h)
XBUS
Reset Value: 0000h
These registers hold the TxRqst bits of the 32 Message Objects. By reading out the TxRqst
bits, the CPU can check for which Message Object a Transmission Request is pending. The
TxRqst bit of a specific Message Object can be set/reset by the CPU via the IFx Message
Bit
Function
IntId(15:0)
Interrupt identifier
(the number here indicates the source of the interrupt)
’0000h’: No interrupt is pending.
’0001h’: Message Object 1 caused the interrupt.
’0020h’: Message Object 32 caused the interrupt.
’0021h’: Unused.
’7FFFh’: Unused.
’8000h’: Status Interrupt.
’8001h’: Unused.
’FFFFh’: Unused.
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TxRqst(16:1)
R
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TxRqst(32:17)
R
Bit
Function
TxRqst(32:1)
Transmission Request Bits
(of all Message Objects)
’0’: This Message Object is not waiting for transmission.
’1’: The transmission of this Message Object is requested and is not yet done.