Skip to main content
guenniause
Associate II
April 21, 2023
Question

STM32H730 FDCAN TxDelayCompensation

  • April 21, 2023
  • 2 replies
  • 2112 views

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?

This topic has been closed for replies.

2 replies

Tesla DeLorean
Guru
April 21, 2023
Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
guenniause
Associate II
April 21, 2023

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?