38.5.11 Remote Transmit Request (RTR)

The CAN bus system has a method for allowing a host node to request data from another node. The host sends a message with the RTR bit set. The message contains no data, only an address to trigger a filter match.

The filter that is configured to respond to a Remote Transmit Request will point to a FIFO that is configured for transmission and RTREN has to be set.

Automatic remote data requests can be handled without MCU intervention. If a FIFO is properly configured, when a filter matches and points to the FIFO, the FIFO will be queued for transmission.

The FIFO must be configured as follows:
  • Set TXEN to ‘1’.
  • A filter must be enabled and loaded with a matching message identifier.
  • The Buffer Pointer for that filter must point to the TX FIFO (normally, a filter points to an RX FIFO).
  • RTREN bit must be set to ‘1’ to enable RTR.
  • The FIFO must be preloaded with at least one message to be sent.

When an RTR message is received and it matches a filter pointing to a properly configured transmit FIFO, the TXREQ bit is set, queuing the object for transmission according to priorities.

A FIFO will only be transmitted if TXEN and RTREN are set, and if it is NOT empty. When a request for a remote transmission occurs while the FIFO is empty, the event will be treated as an overflow and the RXOVIF bit will be set.