Skip to main content
Visitor II
June 1, 2025
Solved

Stm32 FDCAN (G474) TX FIFO mode canceling message options?

  • June 1, 2025
  • 2 replies
  • 356 views

Reading through the docs for the STM32 G474 FDCAN TX sections, it seems like if FDCAN is in FIFO mode, there is no way to cancel a pending message. The message can only be dequeued from being sent. If this is the case, how should one handle the case of the currently TX'ing message not ever being acked? In this case, if the message is never acked, it cannot ever be dequeued and the FDCAN TX will essentially be stalled for any other messages.

 

I do see the cancellation functionality, but it seems as though none of it applies to FDCAN in FIFO mode?

    This topic has been closed for replies.
    Best answer by mƎALLEm

    Hello;

    Unfortunately, transmit cancellation is not supported in FDCAN FIFO mode. Messages queued in the FIFO are transmitted in the order they are queued. If a message is not acknowledged, it remains in the FIFO until it is successfully transmitted or overwritten by new messages, depending on the configuration.

    In that case, consider using Tx buffers instead of FIFO mode.

    2 replies

    mƎALLEmAnswer
    Technical Moderator
    June 9, 2025

    Hello;

    Unfortunately, transmit cancellation is not supported in FDCAN FIFO mode. Messages queued in the FIFO are transmitted in the order they are queued. If a message is not acknowledged, it remains in the FIFO until it is successfully transmitted or overwritten by new messages, depending on the configuration.

    In that case, consider using Tx buffers instead of FIFO mode.

    Graduate II
    June 9, 2025

    I don't think that this is a "reallife" problem. On the CAN-Bus all valid messages are acked. So if you don't get an ACK for one message all other messages will not get an ACK too.

    ACK is only telling the sending node that there is at least one other properly configured node on the bus, indipendent if this node will "use" the send message.