# TDA4VM: Calculation method of the second sampling point of MCU CANFD communication？

Part Number: TDA4VM

Hi, expert：

As shown in the two variables in the figure above, what is the relationship between tdcf, tdco, and the second sampling point of MCU CANFD?

Regards.

• Hello,

Transmitter Delay Compensation Filter Window is essentially the minimum position for the Secondary Sampling point to avoid an early dominant glitch. Therefore, it is recommended to be at least equal to the compensation offset value i.e. tdcf = tdco.

Beware of having the tdcf value too high (i.e. tdcf should not be higher than tdco + transmitter delay) in which case the actual compensation value will be tdcf rather than the desired value.

tdco <= tdcf <= tdco + transmitter delay

Regards

Tarun Mukesh

• HI, expert：

If I want the secondary sampling point to be 70%, how do I set the values of tcdo and tcdf?

Regards

Thanks.

• Hi,expert:

I think both the nominal domain and the data domain have a second sampling point.

• Hello,

The SSP position is typically specified as a percentage of the total bit time. In the CAN protocol, the SSP can be adjusted to account for variations in transmission delay across different nodes on the network. This is done using the Transmission Delay Compensation Offset (TDCO) and Transmission Delay Compensation Filter (TDCF) values.

The formula to calculate the SSP position in terms of TDCO and TDCF is as follows:

SSP = (TDCO + TDCF) / 2

Where:

• TDCO (Transmission Delay Compensation Offset) is the offset value used to compensate for the transmission delay.
• TDCF (Transmission Delay Compensation Filter) is a filter value used to smooth out variations in transmission delay.

To calculate the TDCO and TDCF values for a secondary sampling point of 70%:

1. Determine the desired SSP position as a percentage of the total bit time. In this case, it's 70%.

2. Set TDCO to half of the desired SSP position: TDCO = 70% / 2 = 35%

3. Set TDCF to zero initially. If there are known variations in transmission delay that need to be compensated for, a non-zero value may be used.

So, for a secondary sampling point of 70%, the TDCO would be 35%, and the TDCF would typically be zero unless specific delay filtering is required. These values are then used to configure the CAN controller's sampling point.

Regards
Tarun Mukesh
• Regards

Tarun Mukesh

• Hi,expert:

When the TDCO is 35%and the TDCF is zero, it  is working, thank you!

But, I have a question that the formula to calculate the SSP position is SSP = (TDCO + TDCF) / 2,  if TDCO is 35% and TDCF is 0, SSP is not 70% Obviously， why it is working?

Regards.

• Hello,

sorry I didn't get you here.You told it is working and again asking why not?

Regards

Tarun

• Hi,

yes!

When the TDCO is 35%and the TDCF is zero, it  is working. But the value of TDCO and TDCF doesn't match a formula that SSP = (TDCO + TDCF) / 2.

Why?

Regards

• Hello,

In the CAN protocol, the Secondary Sampling Point (SSP) is usually defined as a fixed percentage of the total bit time, with TDCO representing the offset from the start of the bit time to the SSP and TDCF representing any additional compensation needed.

Here's why the formula SSP = (TDCO + TDCF) / 2 doesn't match:

1. TDCO (Transmitter Delay Compensation Offset): This represents the offset from the start of the bit time to the desired SSP. It's set as a percentage of the total bit time. For example, if the desired SSP position is 70%, then TDCO = 70% / 2 = 35%. This means that the SSP is located 35% into the bit time.

2. TDCF (Transmitter Delay Compensation Factor): This is used for fine-tuning the SSP if there are known variations in transmission delay that need to be compensated for. It's typically set to zero initially but can be adjusted if necessary.

The formula SSP = (TDCO + TDCF) / 2 is not a standard formula in CAN communication. Instead, the SSP is determined solely based on TDCO, and TDCF is an additional adjustment factor if needed. Therefore, comparing the sum of TDCO and TDCF divided by 2 to SSP might not be relevant in this context.

Regards

Tarun Mukesh