
GD32A50x User Manual
615
Table 23-8.
Mailbox arbitration value(35 bit) when local priority enabled
IDE 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
PRIO[2:0
]
ID_STD[10:0]
RT
R
ID
E
Reserved
1
PRIO[2:0
]
ID_EXD[28:18]
S
R
R
ID
E
ID_EXD[17:0]
RT
R
Arbitration start delay
Arbitration start delay is configured by ASD[4:0] bits in CAN_CTL2 register to optimize the
transmission performance when the arbitration process ends too early to give a chance for
the CPU to overwrite the winner Tx mailbox, thus the arbitration is restarted and may not be
able to transmit in time.
Shift-out
The shift-out process is the copy operation of the content from a Tx mailbox to the Tx shift
buffer (an internal mailbox descriptor) after the arbitration winner is found. The message on
the Tx shift buffer is transmitted according to the CAN protocol rules.
When the shift-out process is done, write access to the MDES0 word of the corresponding
mailbox is blocked even if MST bit in CAN_CTL0 register is set. The write access to MDES0
word of the corresponding mailbox is recoverd when matching one of the following situations:
After the mailbox is transmitted and the corresponding flag MSx in the CAN_STAT
register is cleared by the CPU.
CAN node enters Inactive mode or Bus Off state.
CAN node loses the bus arbitration or there is an error during the transmission.
The shift-out process starts when matching one of the following situations:
The first bit of Intermission field on CAN bus.
During Bus Idle state.
During Wait For Bus Idle state.
During the shift-out process, the CPU has priority to access the corresponding memory in
Bus Idle state, and the shift-out operation has the lowest priority to access the corresponding
memory.
Abort
To request an abort of the transmission, the recommended operation is setting MST bit in the
CAN_CTL0 register to 1, then writing ABORT (0b1001) to the CODE field of the mailbox.
The writing of ABORT (0b1001) to the mailbox MDES0 word is successfully when the mailbox
is not the arbitration winner, or when the mailbox is the arbitration winner but the shift-out of
the mailbox is not finished yet. In this situation, the corresponding MSx bit in CAN_STAT