This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TCAN4550-Q1:延迟补偿设置

Guru**** 2763595 points

Other Parts Discussed in Thread: TCAN4550-Q1, TCAN4550

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1223498/tcan4550-q1-delay-compensation-setting

器件型号:TCAN4550-Q1
主题中讨论的其他器件: TCAN4550

大家好、

客户发现项目中存在一些故障框架问题、他们希望调整延迟补偿寄存器来解决此问题。 您能帮助分享吗

1.是否需要在 TDCO 和 TDCF 寄存器下面设置指南?

2. mtq 有多长?

3. TDCO、TDCF 和 TDCV 之间的关系是什么

*使用外部40M 晶体振荡器

谢谢你

Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    Unknown 说:
    1. 如果要将任何准则设置为 TDCO 和 TDCF 寄存器以下?

    通常、TDCO 和 TDCF 寄存器的值应设置为与使用的 DTSEG1值相匹配。  请注意、DTSEG1寄存器的值比实际值多1、因为不允许值为0。  不过、TDCO 和 TDCF 寄存器的值不会比实际值多1。

    Unknown 说:
    2. mtq 有多长?

    一个最小时间量子(mtq)等于一个 CAN 时钟周期。  如果使用40MHz 晶振、那么1mtq = 25ns。

    时间量子(tq)可以等于 mtq 的倍数、并且取决于定义位时序时使用的位速率预分频器(BRP)。  如果使用的 BRP 为1、则1tq = 1mtq。  但是、如果 BRP=2、则1tq = 2mtq、等等

    TDCO 和 TDCF 始终以 mtq 为单位进行配置。  因此、如果 BRP=1、那么 TDCO 和 TDCF 的设置可以被设置为与 DTSEG1相同数量的 tq (或者比 DTSEG1高一个值、因为 DTSEG1被解释为比实际值大1)。  但是、如果 BRP 大于1、那么必须计算适当数量的 mtq、以等于 DTSEG1 tq。

    Unknown 说:
    3. TDCO、TDCF 和 TDCV 之间有什么关系

    TCAN4550-Q1使用由 Bosch 开发的 MCAN CAN FD 控制器 IP、我建议您参阅 MCAN 用户手册 、了解有关 MCAN 控制器功能的更多详细信息。

    MCAN 用户手册的第3.1.4节 讨论了发送器延迟补偿电路的详细信息、以及如何对其进行配置以创建所需的二次采样点(SSP)。

    发送器延迟补偿由两个不同延迟值之和组成。  第一个延迟值是实际的发送器环路延迟、由器件在 FDF 位的下降沿到 RES 位的每个发送 CAN FD 帧上测量。  这会通过消除环路延迟来对齐 TX 位和 RX 位的开头。

    第二个延迟由寄存器值中配置的 TDCO mtq 设置。  对于 SSP、TDCO 的值等于 SSP 之前的 tq 个数、与数据位时序和预分频器(DBTP)寄存器中的 DTSEG1值基本相同。  这就是我们通常将 TDCO 设置为与 DTSEG1相同的值的原因。

    发送器实际延迟补偿值(TDCV)是环路延迟与 TDCO 的总和。

    发送器延迟补偿滤波器(TDCF)窗口定义 SSP 位置的最小值。  此值是为了防止噪声或干扰在 FDF 期间被解释为有效位转换以测量位延迟、此测量可能导致 SSP 位置早期。  这本质上是 TDCV (或延迟时间+ TDCO)的最小值。  

    如果 TDCV (或 Delay Time + TDCO)< TDCF、则 SSP 将等于 TDCF 值。  但是、如果 TDCV (或延迟时间+ TDCO)> TDCF、则 SSP 将等于 TDCV (或延迟时间+ TDCO)。

    通常、我们希望 TDCF 尽可能接近但不大于 TDCV (或延迟时间+ TDCO)、以确保 SSP 始终为 TDCV 值。  但我们并不总是知道延迟时间是多少、它可能会根据外部因素产生一些波动、因此建议将 TDCF 的值设置为等于 TDCO。  如果延迟时间已知、或者观察到一些位错误、可以调整该值、这些错误可以从更长的滤波器窗口中移除。

    作为总结和一般性建议、DTSEG1、TDCO 和 TDCF 都设置为相同的 tq (mtq)量。  这将建立一个良好的基本通信、可以针对每个特定的系统进行改进和调整。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    非常感谢您的详细答复。  对于 CAN FD 电缆长度是否与 SSP 有任何关系以及如何调整 SSP、您有何评论?

    谢谢你

    Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    电缆长度可能是一个需要考虑的因素、因为电缆越长、环路延迟就越长、并且在对显性到隐性转换中产生更多的"振铃"、而这种转换必须在对该位进行采样之前消除。  

    该器件将自动测量环路延迟、但振铃需要将采样点移至位的末尾、以便让信号有时间稳定。  但这与接收其他节点传输的数据时需要考虑的注意事项没有什么不同。

    所以我想说、在这方面、在调整 SSP 和正常位时序采样点(SP)时没有根本区别。

    要调整 SSP、请首先将 TDCO 和 TDCF 设置为与 DTSEG1值等效、该值是采样点(SP)之前的时间份额数。  请注意、通常建议采样点为80%。  然后可以进行调整、以增加 TDCO、TDCF 和 DTSEG1/DTSEG2的值、从而优化 SP 和 SSP 位置、同时监控发送器和接收器错误计数器(TEC 和 REC)。  

    用一个示波器监视 CANH 和 CANL 信号也有助于确定是否有需要使用之后的 SP 和 Ssp %避免的过多振铃。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:  

    对于 CANFD 2M 电缆3m 长度外壳、  

    1.未启用 TDC 时:

    a)当环路延迟短于400ns 时、SP 设置为80%采样点、仍可以获得 RX 信号

    b) 当环路延迟超过400ns 时、无法覆盖80% SP、是否会报告故障帧?

    2.当 TDC 启用时

    a)当环路延迟短于400ns 时、 SP 设置为80%采样点、仍可以获得 RX 信号

    B)当环路延迟大于400ns 时、由于 TCAN4550启用了 TDC、TCAN4550可以自动检测 TX RX 环路延迟。 SSP 设置为80%或 TDCO 16mtq 相等。? 如何设置 TDCF TDCV?

    谢谢你

    Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    建议在所有比特率下使用 CAN FD 通信时启用 TDC。 如果没有 TDC、则位速率必须足够慢、确保在发送器完成传输该位之前出现环路延迟和采样点、从而正确验证接收到的数据是否与传输的数据匹配。  CAN FD 比特率越快、位周期就越小、如果没有 TDC、就无法保证 RX 与 TX 的相关性。

    对于较短的环路延迟和某些比特率、您仍然可以在某些比特率下成功通信、但与其他比特率相比、您会收到错误。

    CAN 位时序是根据时间量子(tq)的概念设置的、该量子是等于整数个时钟周期的时间长度。 每个位周期由4个或者更多的 tq 组成、通过在 SP 之前和之后分配一定数量的 tq 来创建采样点(SP)。  位速率取决于该位所用的 tq 总数、其中 tq 决定了位周期的长度、进而决定了位速率或频率。

    根据定义、最小时间量子(mtq)是器件能够使用的最小时间长度、根据定义、它等于一个时钟周期的时间长度。

    当以较慢比特率使用快速时钟时、该位中可能有很多 mtq、有时最好每位使用较少数量的 tq。  在这种情况下、可以对时钟应用预分频器以增加时钟周期数或每个 tq 的 mtq。

    因此、当预分频器= 1时:

    1 tq = 1 mtq

    但是、当预分频器= 2时:

    1 tq = 2 mtq

    在标称位时序和预分频器(NBTP)以及数据位时序和预分频器(DBTP)寄存器中进行位时序配置、具体取决于 SP 之前和之后使用的 tq 数量。  使用的预分频器将决定每个 tq 的时长。

    发送器延迟补偿寄存器仅接受 mtq 作为输入。  因此、如果数据位速率预分频器(DBRP)设置为1、1 tq = 1 mtq、并且在您的示例中、16 mtq 将等于16 tq。 但如果您的 DBRP = 2、16mtq = 8tq。

    建议将 TDCO 和 TDCF 寄存器设置为与 DBTP 寄存器中的 DTSEG1寄存器等效的时间量。  因此、您需要根据使用的 DBRP 将 DTSEG1寄存器的 tq 转换为等效的 mtq。

    另请注意、DTSEG1会将寄存器中设置的值解释为大于1、因为不允许值为零。 但是、TDCO 和 TDCF 寄存器允许值为零、因此在设置这些寄存器时、您需要确保"DTSEG1的解释值"以及 TDCO 和 TDCF 值都有等量的 mtq。

    发送器延迟补偿值(TDCV)由器件计算并可以回读。  它只是测得的环路延迟与已配置的 TDCO 值之和。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    非常感谢您的详细答复。  今天我与客户进行了一些讨论、我们有如下跟进问题、期待您的反馈。

    1. 我们要向您确认 TDCV= Loop delay +TDCO、我们的理解是否正确?

    2.我们的建议是将 TDCF 设置为与 TDCO 相同的值,因此当环路延迟大于0时,SSP 将始终采用 TDCV 值(环路延迟+ TDCO)。 那么、如果不使用此滤波器函数、设置 TDCF 寄存器位有什么意义?

    3.当环路延迟很小时(如上图所示), SP 和 SSP 均可采样有效值。 我们想知道我们是否启用了 TDC 并可以在 SP 处对有效信号进行采样、TCAN4550是否也能保持采样 SSP? 它将从两个样本中获取哪个值?

    4.是否始终建议启用 TDC、那么为什么默认情况下禁用 TDC?  

    谢谢你

    Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    1.  我们要向您确认 TDCV=环路延迟+TDCO、我们对下图的理解是否正确?

    是的。

    2.我们的建议是将 TDCF 设置为与 TDCO 相同、因此当循环延迟大于0时、SSP 将始终采用 TDCV 值(环路延迟+ TDCO)。 那么、如果不使用该滤波器函数、设置 TDCF 寄存器位有什么意义呢?

    通过将 TDCF 值设置为等于 TDCO、则使用滤波器功能确保 SSP 至少等于 TDCO。  

    通过测量在发送输出时 FDF 位的下降沿与在接收输入时 FDF 位的下降沿之间的时间来计算每个发送帧的环路延迟。

    在接收的输入中存在显性干扰的情况下、 或可能导致电压在 FDF 位实际下降沿之前转换的某种噪声、延迟计数将小于导致较早 SSP 的物理收发器环路延迟。  

    为了避免这一情况、TDCF 位被置位以定义最小 SSP 位置、从而忽略任何可能根据噪声误检测到的早期显性边沿。  SSP 被计算为其点 至少 并在其中观察到接收到的 FDF 到 RES 位的下降沿。

    3. 当环路延迟非常小时(如上图所示)、SP 和 SSP 都可以采样有效值。 我们想知道我们是否启用了 TDC 并可以在 SP 处对有效信号进行采样、TCAN4550是否也能保持采样 SSP? 它将从两个样本中获取哪个值?

    如果启用了 TDC、将始终在 SSP 采样位置对 RX 位进行采样、因为 SP 仅与从 CAN 总线上不同收发器传输的数据一同使用。  

    请记住," 发送器 延迟补偿"包含在名称本身中。  用于错误检测的 CAN 协议要求发送节点监控接收到的数据并将位与发送的位进行比较。  如果它检测到任何位的接收方式与发送的不同、则需要发送一个错误帧来提醒 CAN 总线上的其他节点发生了传输错误、并由于该报文包含不良数据而丢弃该报文。

    为了消除环路延迟并使接收到的位与发送的位对齐、使用发送器延迟补偿电路创建一个仅用于检查发送的位是否有错误的辅助采样点(SSP)。

    采样点(SP)仅用于从其他节点发送的已接收位。  由于我们希望确保在位上的任何振铃噪声减弱后对位进行采样、因此我们将 SP 设置为位周期的大约80%。  这通常会实现最佳性能和最少的位错误。

    为了保持这种做法、我们还尝试将 SSP 设置为与 TDC 延迟的接收位的80%位置相同。  这就是我们将 TDCO 值设置为等于 DTSEG1值的原因。  为此、我们在位周期内设置相同的80%采样点、因为器件会自动测量并消除环路延迟。

    但是、只有在环路延迟测量值过小的情况下、发送器延迟补偿滤波器才会确保至少 SSP 将等于 TDCO 值。  这将导致 SSP 的采样点早于正常值、但应仍在位周期内。

    4. 是否始终建议启用 TDC、那么为什么默认禁用 TDC?  [/报价]

    这个问题问得好、我不知道、因为 MCAN 控制器 IP 是由 Bosch 开发的、并且获得了 TI 的使用许可、可以在这种器件中使用。  我们不得不问 Bosch、为什么他们选择在默认情况下禁用 TDC 位、即使始终建议将其与 FD 数据速率一起使用。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    非常感谢您提供详细快速的回复。

    我想在 Point3上与您确认。 无论 TDC 是否启用、SP 始终用于对 CAN 总线上其他节点(其他节点的 TX?)发出的位进行采样。 未启用 TDC 时、RX 上不会对 SSP 采样。 如果 TDC 被启用、SSP 将在 RX 上被采样、以在传输过程中检查错误位。 我的理解是否正确?  

    谢谢你

    Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    您的理解是正确的。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    客户还要求提供一个图表来显示 TDV=DELAY +TDO 之间的关系(与我绘制的图类似、但不正确)。 我的理解是很难画出、因为延迟是根据 FDF 位的下降沿计算的、而 TDV 实际上是针对其余数据位计算的。 是否想向您确认我的理解是否正确? 如果您能帮助共享工程图呢?

    此外、是否有任何关于 TDC 和 SSP 的应用手册? 客户还想在整个团队中分享理论以及如何通过整个团队的软件进行配置。

    谢谢你

    Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    这是 Bosch 开发的 MCAN 控制器 IP 的一个功能、因此我建议他们参考 MCAN 用户手册第3.1.4节中的示意图和说明。  本节讨论了发送器延迟补偿电路的详细信息、以及如何配置它以创建所需的二次采样点(SSP)。

    此致、

    Jonathan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    我能否使用下面两张图片来理解 TDCV (第一张图片取自 MCAN 文档、第二张图片由我自己绘制)? 谢谢你

    谢谢你

    Scarlett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Scarlett:

    是的、您的工程图看起来是正确的。

    此致、

    Jonathan