cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H730 FDCAN TxDelayCompensation

guenniause
Associate II

I use FDCAN in STM32H730 for communication over CAN-FD.

At the moment it works with 500kBit/2000kBit without TxDelayCompensation. But we want to communicate with 1000kBit/4000kBit too. Therefore I want to enable TxDelayCompensation.

I'm not sure how I should configurate the TxDelayCompensation, I didn't find hints in the documentation.

In a discussion in found the following recommendation:

/* Configure and enable Tx Delay Compensation : TdcOffset = DataTimeSeg1*DataPrescaler */

HAL_FDCAN_ConfigTxDelayCompensation(&hfdcan1, DataTimeSeg1*DataPrescaler, 0);

If I enable TxDelayCompensation at 500kBit/2000kBit with the configuration above, the communcation doen't work anymore. The transceiver stops at the first bit.

Does anyone have experience with configuring the TxDelayCompensation?

2 REPLIES 2

https://community.st.com/s/question/0D53W000029VHDTSA4/stm32h7-fdcan-8-mbits-setup-docum-unclear-syncseg

Couple examples of use in CubeH7 board examples

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
guenniause
Associate II

Thank you.

Sorry, it was my mistake.

I only inserted DataPrescaler. If I use DataTimeSeg1*DataPrescaler it works.

In the example the third parameter(TdcFilter) of function HAL_FDCAN_ConfigTxDelayCompensation is 0.

Is 0 always a sufficient vaule? Or it is depending on the settings of data timing?