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.
大家好、我有一些关于如何在 TCAN 4550中正确定义一些补偿值的问题:
我们需要微调 CAN FD 的采样点和同步、并且在了解各种参数如何影响时序图方面存在一些问题。
用户指南说明了以下内容:
在启用了 CANFD 和比特率开关的系统中、通常需要一个额外的传播延迟偏移来正确采样位。 该延迟被称为发送器延迟补偿、它具有自己的寄存器 TDCR (0x1048)。 如果此值设置不正确、高速数据有效负载可能会错误地解释数据、或进入错误状态。
但是、该寄存器的正确设置尚不清楚。
发送器延迟补偿偏移
0x00-0x7F -定义与的物体之间距离的偏移值
从 m_can_tx 到 m_can_Rx 和辅助绕组的
来实现。 有效值为0到127mtq。
发送器延迟补偿滤波器窗口长度
0x00-0x7F -定义 SSP 位置的最小值、
m_CAN_Rx 上的主边沿、导致 SSP 更早
对于发送器延迟测量、位置会被忽略。 为
当 TDCF 配置为值大于
不如 TDCO。 有效值为0到127mtq。
根据上述陈述、我们的假设是、TDCR 只会对 TCAN4550生成的数据包起作用、当自补偿设置正确时、它应该验证所有到隐性的转换并正确识别错误状态或卡在显性状态。
我们准确地观察到、移动采样点位置确实在 TX 端有所改善、并且我们消除了我们遇到的时序问题。
不过、我们还观察到了其他行为的变化、在这种情况下、连接到总线的其他"模块"在某些情况下将无法确认、或者 TCAN4550会在总线上看似随机的位置强制执行错误。
我们不希望 TDCR 的变化会影响通信的 RX 侧和/或其他模块的行为。
在下图中、我们可以看到总线状态、以及(外部)发送模块增加的 RX 和 TX。
错误状态由 TCAN4550强制进入、随后是识别错误的其他模块。
这看起来像是在 RX 侧采样点的问题、但它仅在我们调节 TDCR 时发生
总结一下:
阅读其他文章后、我现在已了解 SSP 和 TDCR 的内部工作(还可借助推荐的 Bosch M-CAN 用户指南)
这只会进一步增加我对测量值的怀疑。 当 SSP 缩短1tq 时、上述行为根本不存在、但如果位于接收端、则无关紧要。 我认为某些问题可能与 ACK 响应相关的唯一要点、在同样的情况下(仅使用更长的 SSP)、我们可以从通信的两侧找到确切的一些缺失 ACK、但我无法理解如何调试该问题。
之所以实施此修改是因为一些 TX 错误、这些错误是由 SP 和 SSP 之间的不匹配引起的、通过此修复解决了这一问题、但我们无法解释为什么会出现额外问题、主要是在接收端。
我知道这篇文章可能有点混乱和缺乏信息、但我可以根据该主题中的需要提供更多信息。
谢谢!
尊敬的 Pietro:
如您所知、TCAN4550-Q1使用了 Bosch 开发的 MCAN IP、无需任何形式的修改。 发送器延迟补偿是 MCAN IP 的一部分、TI 对于 TDC 功能没有任何比您在 M-CAN 用户指南中阅读的内容更为详尽的其他信息。
TDC 机制只能在发送器处于活动状态时使用、并且不应影响从其他模块接收到的消息。 当位周期短于环路延迟时、这种机制只是一种验证发送位值的方法、会导致 TX 位和 RX 位的当前值之间不匹配。
我可以了解、如果延迟是在太短或太长的边沿上、TDC 设置值错误会如何导致 TCAN4550在自身的消息上引发错误。 但 TDC 不应以其他模块会将其视为错误的方式影响消息的位周期或格式。
您是否验证了标称和数据位时序参数的总线上所有模块的 SP 是相同的? 比特率切换发生在消息中比特率切换(BRS)位的采样点。 当总线上的模块具有相同的位速率但具有不同的 SP 时、我已经看到很多错误出现。 这是因为位速率发生在带有较高 SP 的模块就绪之前、这会导致第一个 FD 位中出现采样错误、从而导致引发错误。
您有哪些标称和数据位时序配置和时钟频率? 此外、您的 TDC 设置是什么?
此致、
乔纳森
感谢您的快速响应。
整个系统为 CAN 使用不同的拓扑、具体取决于模块的主 uController。
时钟馈送略有不同、模块的大部分都可以受益于80MHz 时钟、而 TCAN4550使用40MHz。
CAN-FD 为不同的相位使用1MHz/8MHz、我们注意匹配所有这些相位的 SP。
根据您的建议、我们将检查各个模块的所有 SP/SSP、以查看是否存在任何错误。
无论如何、我都在此放了一些 CAN FD 规格:
我们在所有模块上使用1MHz/8MHz 的 SP 是60%。
要使 SSP 与 SP 匹配、是否还需要考虑 SYNC tq?
在本例中、我们设置:
时间段1 = 1
TimeSeg2 = 1
预计总数为3/5 tq、即60%。 我们现在将 TDCO 匹配为3、从而匹配 SP。 在此之前、我们将 TDCO 设置为2、这会导致错误回读。
此外、我们将 TDCF = 3设为可滤除早期 边沿。
我现在和我正在检查的一个疑问是 TDCV 在这些错误期间的行为、我想确保上述错误不是由 TDCF 的抑制引起的、因为它等于 TDCO。
在之前的状态下、我们让 TDCO=2、TDCF=3、并且我们测量了 TDCV=8、因此如果需要、我们应该没有什么裕度最终将 TDCF 增加到4。
现在感谢您提供信息、我们发现继续进行测量非常有用、
我将再次回到该主题、并附带上述测试的结果。
此致
彼得罗
尊敬的 Pietro:
我认为您的理解通常是正确的。
TDCV 值包括:内部测得的基于报文中 FDF 位下降沿的环路延迟与基本设置位周期(TDCO)内采样点所需的额外 mtq。
基于 FDF 位下降沿的内部测量环路延迟、理论上将使 TX 位和 RX 位之间位周期的前导沿对齐。 然后、TDCO 的值决定在对该位进行采样之前要等待多少个额外的 mtq。 因此、如果位周期总共为5 mtq、并且你想要一个60%的采样点、TDCO = 3。
由于环路延迟是根据对 FDF 位下降沿的检测来测量的、因此可能会检测到噪声或错误边沿、从而导致在 TDCV 中使用较短的"延迟值"。 因此、可设置一个滤波器(TDCF)来确保使用 SSP 的最小值。
因此、我们希望确保 TDCF 尽可能接近所需的 SSP、而不超过实际理想时间(内部延迟+ TDCO)。 由于我们不知道内部环路延迟测量值是多少、因此我们通常将滤波器设置为等于偏移量(TDCF = TDCO)、这样可确保滤波器绝不会大于总值。 如果有噪声或毛刺导致一个更短的内部延迟测量、SSP 最终将在位周期中更早、这会导致一个位错误。 但是、如果 TDCF 设置太大、则将导致 SSP 在位周期的后期或甚至在位周期完成后、也会导致错误。
报告的 TDCV 值应仅为内部延迟测量值和 TDCO 的总和。 由于 CAN 收发器和 MCAN 控制器位于同一器件内部、因此环路延迟应比 MCAN 位于 MCU 中且外部 CAN 收发器与 TX 和 RX 引脚连接时更短、并且 PCB 布线产生了额外的传播延迟。 因此、我预计您不会在 TCAN4550上看到 TDCV 值有很大差异。
此致、
乔纳森
很抱歉、我花了一点时间进行回复、我有不同的任务、有时它们会重叠。
我忽略了对 FDF 特定位进行延迟采样这一事实、这可能会带来更多的分析点:
由于采样是在仲裁阶段完成的、因此不存在由于高速/长延迟而产生多个边沿的风险、这是一种非常好的行为。
我现在还有一个额外的疑问、需要注意、在我们的系统中、显性位和隐性位之间的转换具有不同的延迟、原因是(我想)由于驱动器的功能、隐性位具有固有的较低驱动强度。
由于采样是在 FDF 位上完成、我认为我们可能会在"理想情况下"补偿延迟、与保守的60%采样点选择相结合、可能会导致数据阶段对隐性位的错误解释。
这是两个由不同收发器完成的测量、使我能够访问 TX 和 RX、我们可以看到延迟测量几乎有50ns 的差异。
假设 tq=25ns:
CAN FD 中的一个位为5tq
该差异为2tq (一个位的40%)
关于上述测试的结果:
我们在8tq 测得的 TDCV 与上述数据一致、8tq + TDCO 3tq 的边沿补偿达到8tq。
老实说,这似乎是一个合理的价值,但我不知道内部收发器的 tcan4550 ,它可能有更多的内部延迟。
此时、我认为可以选择迁移到80% SP、我认为 SP 迁移有助于补偿这种影响并确保样本更稳定。
我需要再次检查60% SP 选择的原因、并询问我的同事迁移的可能性(至少是一次测试)、因为它会影响整个系统。
您是否认为像眼图这样的测试可以帮助确定这个问题? 最近,我在 Keysight 的指导下进行了眼 部测试,没有出现任何问题,但我可能需要审查触发方法和掩膜限制我的应用程序。
尊敬的 Pietro:
我认为、针对 SP 和 SSP 的典型建议在80%范围内、这有助于解决此类与时间相关的问题。 可能是您的60% SP 可能不够、如果您可以使用80%运行测试、我建议您这样做。
隐性边沿并非真正被"驱动"、而是仅依靠总线电阻将信号拉回到共模电压。 在这方面、不同的收发器、不同数量的收发器和不同的线束配置会导致不同量的总线电阻和电容、这可能会影响在隐性边沿下降到低于收发器内用于设置 RX 引脚数字值的比较器阈值所需的时间。 这会产生位宽失真、进而可能导致 SP 问题、因为控制器会根据数字位转换而不是 CANH/L 边沿转换对位进行采样。
此致、
乔纳森