CAN FD v2.0
71
PG223 December 5, 2018
Chapter 3:
Designing with the Core
d. Wait for interrupt (if enabled) or poll the TRR register to gather the request status.
4. The CAN FD clears the
TRR
bit when a respective buffer request is completed (either due
to transmission, or to cancellation, or due to DAR mode transmission).
5. The Host might read the TX Event FIFO to know the message timestamps and the order
of transmissions.
Note:
The
TXOK
bit in the ISR is set after the core successfully transmits a message. The
ARBLST
bit in the ISR is set if the CAN FD loses bus arbitration while transmitting a message. The
ERROR
bit in the ISR is set if the message transmission encountered any error.
TX – Core Actions
1. The CAN FD figures out the next highest priority buffer to be transmitted. If two buffers
have the same ID, the buffer with the lower index is selected.
2. If enabled, it copies the
ID
and
DLC
fields to the TX Event FIFO and adds a message
timestamp and event type.
3. It clears the respective
TRR
bit when the transmission request is served (either by
successful transmission on the CAN bus, or due to Cancellation, or due to DAR-based
transmission).
4. If enabled through the IETRS and IER, the
TXRRS
bit is set in the ISR register and
interrupt is generated.
Notes
The CAN FD accesses message element space of a buffer in TX block RAM only if the
respective
TRR
bit is set. The Host must respect access rules to avoid memory collisions,
that is, after the Host sets a buffer ready request through the TRR register, it should not read
or write the respective message element space until the respective
RR
bit is in a clear/unset
state.
Transmit Cancellation
Each
CR
bit of the TX Buffer Cancel Request (TCR) register corresponds to a message
element in the TX block RAM (and therefore corresponds to an
RR
bit of the TRR register).
TC – Host Actions
1. Poll the TRR register to check current pending transmission requests.
2. Poll the TCR register to check current pending cancellation requests.
a. Transmit Cancellation for a buffer (TXB_i) can be requested only if there is a
corresponding pending transmission request set in TRR register.
b. If there is already a pending cancellation request for TXB_i, no action is required and
the Host should wait (by poll/interrupt) until the core serves a cancellation request
for TXB_i.