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.
- 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.