Datasheet

Table Of Contents
A Dedicated Tx Buffer allocates Element Size 32-bit words in the Message RAM (refer to table below).
Therefore the start address of a dedicated Tx Buffer in the Message RAM is calculated by adding transmit
buffer index (0…31) • Element Size to the Tx Buffer Start Address TXBC.TBSA.
Table 39-7. Tx Buffer / FIFO / Queue Element Size
TXESC.TBDS[2:0] Data Field [bytes] Element Size [RAM words]
000 8 4
001 12 5
010 16 6
011 20 7
100 24 8
101 32 10
110 48 14
111 64 18
39.6.6.3 Tx FIFO
Tx FIFO operation is configured by programming TXBC.TFQM to ‘0’. Messages stored in the Tx FIFO are
transmitted starting with the message referenced by the Get Index TXFQS.TFGI. After each transmission
the Get Index is incremented cyclically until the Tx FIFO is empty. The Tx FIFO enables transmission of
messages with the same Message ID from different Tx Buffers in the order these messages have been
written to the Tx FIFO. The CAN calculates the Tx FIFO Free Level TXFQS.TFFL as difference between
Get and Put Index. It indicates the number of available (free) Tx FIFO elements.
New transmit messages have to be written to the Tx FIFO starting with the Tx Buffer referenced by the
Put Index TXFQS.TFQPI. An Add Request increments the Put Index to the next free Tx FIFO element.
When the Put Index reaches the Get Index, Tx FIFO Full (TXFQS.TFQF = ‘1’) is signaled. In this case no
further messages should be written to the Tx FIFO until the next message has been transmitted and the
Get Index has been incremented.
When a single message is added to the Tx FIFO, the transmission is requested by writing a ‘1’ to the
TXBAR bit related to the Tx Buffer referenced by the Tx FIFO’s Put Index.
When multiple (n) messages are added to the Tx FIFO, they are written to n consecutive Tx Buffers
starting with the Put Index. The transmissions are then requested via TXBAR. The Put Index is then
cyclically incremented by n. The number of requested Tx buffers should not exceed the number of free Tx
Buffers as indicated by the Tx FIFO Free Level.
When a transmission request for the Tx Buffer referenced by the Get Index is canceled, the Get Index is
incremented to the next Tx Buffer with pending transmission request and the Tx FIFO Free Level is
recalculated. When transmission cancellation is applied to any other Tx Buffer, the Get Index and the
FIFO Free Level remain unchanged.
A Tx FIFO element allocates Element Size 32-bit words in the Message RAM (refer to Table 39-7).
Therefore the start address of the next available (free) Tx FIFO Buffer is calculated by adding Tx FIFO/
Queue Put Index TXFQS.TFQPI (0…31) • Element Size to the Tx Buffer Start Address TXBC.TBSA.
39.6.6.4 Tx Queue
Tx Queue operation is configured by programming TXBC.TFQM to ‘1’. Messages stored in the Tx Queue
are transmitted starting with the message with the lowest Message ID (highest priority). In case that
SAM D5x/E5x Family Data Sheet
CAN - Control Area Network
© 2019 Microchip Technology Inc.
Datasheet
DS60001507E-page 1223