Skip to main content
Visitor II
May 13, 2024
Solved

STM32G0B1V FDCAN AutoRetransmission

  • May 13, 2024
  • 1 reply
  • 2475 views

Hallo everybody,

I have a question about the FDCAN peripheral of the STM32G0B1VC.

I’m using the STM32Cube_FW_G0_V1.6.0 library and I have initialized the bus with AutoRetransmission:

CanHandle.Init.AutoRetransmission     = ENABLE;

 

During the transmission of a frame, when the ACK is not received the peripheral automatically resends the frame after a minimum delay (about 50 usec).

g0_ScreenDump.png

Is there any way to increase the delay between the frames?

When I repeat the test with a different platform, STM32F072VB and STM32Cube_FW_F0_V1.9.0 library, I have a different behaviour: the frame is retransmitted after 1.7 msec.

f0_ScreenDump.png

Is there any way to increase the delay between the autoretransmitted frames with the STM32G0B1VC?

Many thanks

Thomas

 

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

    Hello,

    The auto-retransmission is managed by the peripheral itself and I don't think there is a way to change that timing. In my opinion the timing between two auto-retransmitted frame that includes the ACK delimiter (1 bit), EOF (7 bits) and IFS (3 bits) which is the minimum before the next frame to start.

    Knowing that F0 has bxCAN cell and G0 has FDCAN cell which don't have the same architecture and implementation.

    Why are you looking for increasing this timing?

    1 reply

    mƎALLEmAnswer
    Technical Moderator
    May 13, 2024

    Hello,

    The auto-retransmission is managed by the peripheral itself and I don't think there is a way to change that timing. In my opinion the timing between two auto-retransmitted frame that includes the ACK delimiter (1 bit), EOF (7 bits) and IFS (3 bits) which is the minimum before the next frame to start.

    Knowing that F0 has bxCAN cell and G0 has FDCAN cell which don't have the same architecture and implementation.

    Why are you looking for increasing this timing?

    Thomas1Author
    Visitor II
    May 13, 2024

    Thank you SofLit.

    The reason to have this delay is that the system must operate communicating with an already available device. It looks like this device in case of communication error will keep failing to send the ACK unless a certain time before the retransmitted frame is added.

    I can surely add a workaround to implement this delay, but I would prefer to let the peripheral to handle this automatically.

    Thomas

    Technical Moderator
    May 13, 2024

    Hello,


    I can surely add a workaround to implement this delay, but I would prefer to let the peripheral to handle this automatically.


    Unfortunately this is not possible.