Information
As the PRIO field is the most significant part of the arbitration value Mailboxes with low
PRIO values have higher priority than Mailboxes with high PRIO values regardless the
rest of their arbitration values.
Note that the PRIO field is not part of the frame on the CAN bus. Its purpose is only to
affect the internal arbitration process.
45.4.2.3 Arbitration process (continued)
After the arbitration winner is found, its content is copied to a hidden auxiliary MB called
Tx Serial Message Buffer (Tx SMB), which has the same structure as a normal MB but is
not user accessible. This operation is called move-out and after it is done, write access to
the corresponding MB is blocked (if the AEN bit in MCR is asserted). The write access is
released in the following events:
• After the MB is transmitted
• FlexCAN enters in Freeze mode or Bus Off
• FlexCAN loses the bus arbitration or there is an error during the transmission
At the first opportunity window on the CAN bus, the message on the Tx SMB is
transmitted according to the CAN protocol rules. FlexCAN transmits up to eight data
bytes, even if the Data Length Code (DLC) field value is greater than that.
Arbitration process can be triggered in the following situations:
• During Rx and Tx frames from CAN CRC field to end of frame. TASD value may be
changed to optimize the arbitration start point.
• During CAN BusOff state from TX_ERR_CNT=124 to 128. TASD value may be
changed to optimize the arbitration start point.
• During C/S write by CPU in BusIdle. First C/S write starts arbitration process and a
second C/S write during this same arbitration restarts the process. If other C/S writes
are performed, Tx arbitration process is pending. If there is no arbitration winner
after arbitration process has finished, then TX arbitration machine begins a new
arbitration process.
• • If there is a pending arbitration and BusIdle state starts then an arbitration
process is triggered. In this case the first and second C/S write in BusIdle will
not restart the arbitration process. It is possible that there is not enough time to
finish arbitration in WaitForBusIdle state and the next state is Idle. In this case
the scan is not interrupted, and it is completed during BusIdle state. During this
arbitration C/S write does not cause arbitration restart.
• Arbitration winner deactivation during a valid arbitration window.
• Upon Leave Freeze mode (first bit of the WaitForBusIdle state). If there is a re-
synchronization during WaitForBusIdle arbitration process is restarted.
Functional description
K20 Sub-Family Reference Manual, Rev. 1.1, Dec 2012
1152
Preliminary
Freescale Semiconductor, Inc.
General Business Information
