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.

[参考译文] TMS320F28388D:有关 CANFD TX 延迟补偿的更多信息

Guru**** 2560390 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/972572/tms320f28388d-additional-information-on-the-canfd-tx-delay-compensation

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARE

我正在尝试使 CANFD 工作、并且在发送和接收方向上都有1Mbps 组帧/2Mbps 数据工作。 但是、当我将数据速率提高到4Mbps 时、会出现许多 CAN 错误、而在8Mbps 时不会出现任何错误。 根据我的读数、我怀疑从 TX 侧到 RX 侧的传播延迟、TDCR 寄存器似乎会影响这些误差。 我已经阅读并重新阅读了这些 TDCO 和 TDCF 的说明、但仍有一些设置不清楚。  

TDCO 是否更改 SSP、因此增大 TDCO 将延迟 TX 之后的 RX 测量?

TDCF 有什么作用? 我知道要发挥作用必须大于 TDCO、但其实际功能不清楚。

我认为我需要在 TX 之后延迟 RX 测量、因为我的 CAN 收发器延迟(对于显性 TX)最大值为170ns。 我曾尝试使用这些 TDCO 和 TDCF、但没有明显的改进。

谢谢、

Jim

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

    Jim、

    正确、对于数据速率较高的170ns 收发器延迟、您需要通过将 MCAN_DBTP.TDC 设置为1来启用 TDC。 请确认您是否正在设置此位。  

    如 TRM 中给出的那样、SSP 位置由测得的 TDCO 加上发送器延迟来定义、TDCF 定义了一个滤波器窗口、以避免延迟测量期间任何毛刺脉冲(显性)导致的提前 SSP 位置。  

    您能否分享以下详细信息、让我们更深入地了解该问题:

    1. 您遇到的错误类型(位/填充等错误)  
    2. 您已用于4Mbps 情况的额定位和日位时序参数

    此致、
    Praveen

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

    Praveen、
    感谢您的快速回复;是的、我将 DBTP.TDC = 1、并且 TDCF/TDCO 设置为与 mCAN_ex2_external_loopback 示例中相同的值。

    我将 PCANView 与 PCAN USB-CANFD 器件搭配使用、在1M 组帧/2M 数据速率时没有显示错误、因此我认为该工具正常。 然而、在1M/4M 时、大约1/2的数据包显示 CM 报告的 BUSWARNING、BUSPASSIVE 和 ESI 错误。  此外、CM 报告 PSR.LEC = 5、这与传播误差理论是一致的。

    很明显、TDCF/TDCO 的分辨率是 CAN_CLK、即120MHz。 它就像将 TDCO 设置为100一样简单、这会使 TX 之后的 RX 测量延迟~830ns (100/120MHz)?

    您是否知道是否有人让28388在1M/8M CANFD 上工作? 如果这些延迟补偿寄存器无法解决该问题、我认为下一步是以40 (甚至20) MHz 的频率运行 CM、从而允许更大的传播延迟。

    谢谢、
    Jim

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

    Jim、

    我将在星期一之前回复您的查询。 同时、如果您可以分享您对该示例所做的修改、则将有助于我们了解正在发生的情况

    此致、
    Praveen

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

    Praveen、

    我已将该示例集成到我的3核应用中、因此所有周围代码都已更改。 此外、我还运行了一个经典 CAN 通道来支持传统 PC 应用、因此 CAN 寻址和滤波已经从示例中发生了变化。 我以120MHz 运行 CM (和 MCAN)、 initParams、 configParams 和 msgRAMConfigParams (滤波器编号和 FIFO 模式除外)都与示例相同。  

    此外、1Mbps 组帧/2Mbps 数据对于两个 TX/RX (同时运行经典 CAN 通道)而言都是100%可靠的、因此从根本上说 MCAN 配置是正确的。 在1M/4M 时、我附加了 PCANView 结果、结果显示数据包的~1/2正常(我必须禁用自动总线关闭检查、以防止 CM 在几十个数据包后停止)。 此日志是我的 CM 每10ms 传输一个数据包(没有 CM 接收)。

    如果需要、我可以向您发送我的整个 MCAN 配置(我只是不想让您输入代码)。

    谢谢、

    Jim

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

    您好!

    不仅 TDC 应该用于更高的比特率、而且对于仲裁和数据比特率、时间份额应该是相同的。  

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

    您好吗?您能告诉我为什么仲裁和数据速率的时间份额必须相同? 我使用一个通用函数来设置这个和 tsegs、我认为它们源自28377的示例代码、并且时间份额将根据比特率而变化。

    请注意、我已经对此问题进行了更新;如果我将 CM_CLK 从120MHz 更改为40MHz、这将允许时间份额(和采样点)增加足够、从而使4Mbps 数据速率正常工作。 不过、这不能解决我的问题、因为对于其余的应用程序代码、40MHz 时钟速度太慢。 我认为这证明了问题是一个 TX 延迟/采样点问题、因此我希望我能够得到正确使用 TDCF 和 TDCO 延迟补偿寄存器的答案。

    谢谢、

    Jim

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

    您好、Jim、

    我还没有在 TMS320上尝试过 CAN FD、但我在不同的架构上使用 CAN FD。 在遵循 以下建议 https://can-newsletter.org/uploads/media/raw/5a08588dc5eef8bbdbf7113ab5537251.pdf 之前、我看到了将相同 MCU 与相同 FW 通信的不良结果 

    其中之一是:

    ◆建议2:将 BRPa 位速率预分频器设置为等于 BRPd、这会导致两个阶段的 tq 值相同。 这可以防止在 CAN FD 数据帧内的比特率切换期间、现有的量化误差会转换为相位误差。

    现在、通信在速率高达8Mbps 时运行良好、即使总线驱动器性能差、也不会出现错误、仅限2Mbps。 这些2Mbps 驱动器焊接在评估板的演示中。 当然、我们的生产器件使用具有低传播延迟的更快总线驱动器。  

    Edward

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

    爱德华

    感谢您提供的详细信息;这很有意义。  

    如果您能够:

    1.您是否必须调整(处理器是否具有)传输延迟补偿? 这是我最初向 TI 提出的问题、因为该寄存器的详细信息不清楚。

    2.你知道你选择了什么总线驱动器吗? 我们已经了解了一些、看起来它们都是(甚至是规定的符合8Mbps 标准的)在每个方向的显性路径中都是~80ns 的延迟。 我甚至可以达到4Mbps 的唯一方法是以40MHz 时钟运行 CPU、这会延长时间份额和 tseg1、从而允许此延迟。

    谢谢、

    Jim

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

    您好、Jim、

    1.根据比特率、传播延迟等计算出的 TDC 设置很好,无需进一步调整。 它是 NXP MCU、因此是 Excel *。xlsm 形式的 NXP 计算器。 我想您也可以对 F28388使用它的计算值、只需确保计算的设置不会超过某些 F28388限制、我想它们不会超过这些限制。 我会寻找专用的 TI 计算器、或许有一个。  

    2、总线驱动器的选择范围为 ON、最高5Mbps、传播延迟约为90ns。 250ns 适用于高达~3Mbps 的无 TDC 比特率。 对于90ns 应用、即使在5Mbps 下也不需要 TDC。 但具有250ns 和适当 TDC 的驱动器在高达8Mbps 的速率下运行良好。  

    Edward

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

    爱德华
    感谢您的建议。

    Jim、

    对以下陈述进行了细微更正:  

    "很明显、TDCF/TDCO 的分辨率是 CAN_CLK、即120MHz。 它就像将 TDCO 设置为100一样简单、这会使 TX 之后的 RX 测量延迟~830ns (100/120MHz)?"

    在 MCANABITCLKSEL 多路复用器(在本例中为 CMCLK)和 CAN_CLK 之间有一个分频器、CAN_CLK 由 CLK_CFG_REGS.AUXCLKDIVSEL.MCANCLKDIV 寄存器从 C28x 侧控制。 设置此配置的 SW 函数为"sysctl_setMCANClk (...)" 配置 C28x 项目下的"Project Project"。 在本示例中、默认情况下将其设置为 DIVBY4、因此 CAN_CLK 实际上为120MHz/4 = 30Mhz。

    使用此分频器、您可以使应用程序以120MHz 的频率从 CM CPU 运行、并让 MCAN clk 以40MHz 的频率运行。

    关于 TDC、硬件使用 FDF 之后的显性位测量往返延迟。 TDCO 偏移被添加到这个测量中以到达最终 SSP 点、如下所示。 我正在与我们的专家核实要在该寄存器中编程的实际值、并将很快返回给您。

    此致、
    Praveen

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

    Praveen、

    太棒了! 我很惊讶时钟系统图中没有显示 CAN_CLK 分频器。 我认为这应该解决我的问题。  

    出于好奇、TX 延迟补偿寄存器应该与这些更高 CANFD 数据速率中的任何一个的示例保持一致?

    谢谢、

    Jim

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

    Jim、

    你是对的。 有关分频器的文档不是很明确。 它在寄存器中给出、但不在图中给出。 我们已经有了修复文档的内部票证。 应该很快解决这个问题。  

    据我了解、TDC 偏移实际上是为了调整位时间内的 SSP 位置。 由于位时间随数据速率而变化、理想情况下、我们应根据位时间重新计算值。 无论如何、我很快会再次检查这个。

    此致、
    Praveen

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

    Praveen、

    您是否有更新的 CM 时钟系统图、或者您是否有可以发送给我的 MCAN 部分的片段? 我可以在60MHz 下运行 CM、并且我的 CAN-Classic 和 CANFD 工作、但如果我将 MCANCLKDIV 分频器更改为/2 (以获得60MHz 的 MCAN CLK)、则无法正常工作。 该 MCANCLKDIV 寄存器块甚至未显示在时钟图中、因此不清楚时钟频率在图中的哪个位置发生变化。  

    为了清零、我更改的全部是 MCANCLKDIV (变为/2)和用于计算 BRP 的频率(从120MHz 到60)。

    谢谢、

    Jim

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

    Jim、

    随附的帮助吗?

    e2e.ti.com/.../clocking_5F00_cm_5F00_mod.pdf

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

    Hareesh、

    是的、谢谢您;这很有帮助。 我想我离得太近了。  

    当设置 MCAN_FCLK 与 MCAN_ICLK 不同时、您是否知道有任何子关系? 下面是我所做的工作:

    1.设置 CM_CLK = 60MHz 且 MCANCLKDIV = 0 (/1)、 因此 MCAN_ICLK = MCAN_FCLK = 60MHz;我的 MCAN 通信以1Mbps (经典模式)的速率工作。  

    2。仅更改:CM_CLK = 120MHz 且 MCANCLKDIV = 1 (/2)、因此 MCAN_ICLK = 120MHz 且 MCAN_FCLK = 60MHz。 无法正常工作(仍为经典模式)

    在这两个示例中、我的代码生成相同的 BRP、tseg1、tseg2和 SJW、这应该是可以的、因为在这两个示例中、位时钟是60MHz。  

    我看不到任何其他受时钟影响的 MCAN 寄存器、我在这里只测试经典 CAN、因此没有 FD 复杂性。 有什么建议吗?

    谢谢、

    Jim

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

    Jim、

    如规范中捕获的那样、MCAN_FCLK 必须小于或等于 MCAN_ICLK。 这是唯一的要求。 我也会在最后尝试一下。

    您是否尝试过其他分频器值? 只有当 MCANCLKDIV = 1时、您才会看到这种情况吗?

    此致、
    Praveen

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

    在时钟图中 MCAN_ICLK 和 MCAN_FCLK 的位置还不清楚、但我相信 MCAN_ICLK 是 CM.MCANA.SYSCLK、MCAN_FCLK 是图中的 MCAN 位时钟。 此外、我的 MCANABITCLKSEL = 0、因此我认为根据定义、由于 MCANDLKDIV 寄存器、FCLK <= ICLK。

    我尝试了40MHz 和60MHz、如果 MCANDLKDIV=0 (ICLK = FCLK)、这两种频率都可以正常工作。  

    谢谢、

    Jim

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

    Jim、

    您对 MCAN_ICLK 和 MCAN_FCLK 正确无误。 这在规格中的表45-2中捕获。

    当 CM_CLK = 120MHz 且 MCANCLKDIV = 1 (/2)、(即 MCAN_ICLK = 120MHz 且 MCAN_FCLK = 60MHz)时、我看到 传统 CAN 和 CAN-FD 帧以1Mbps 比特率成功传输。

    我使用了以下时序参数:

    bitTimes.nomRatePrescalar = 0x2U;//标称波特率预分频器。
    bitTimes.nomTimeSeg1 = 0xEU;//采样点前的标称时间段。
    bitTimes.nomTimeSeg2 = 0x3U;//采样点后的标称时间段。
    

    您能否共享您的时序参数?

    此致、
    Praveen

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

    Praveen、

    我的 BRP、TSEG1和 TSEG2略有不同、但我将其值更改为您的值;我的结果没有变化。  

    当 AUXPLLRAWCLK=60MHz 且 MCANCLKDIV=0时、我相信 MCAN_ICLK 和 MCAN_FCLK 都=60MHz、并且 CAN-Classic 工作正常。

    仅更改这两项: AUXPLLRAWCLK=120MHz 和 MCANCLKDIV=1、我相信 MCAN_ICLK = 120MHz 和 FCLK=60MHz、CAN-Classic 不起作用。  

    您是否必须在这两个实验之间更改任何其他 MCAN 代码?

    谢谢、

    Jim

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

    Jim、

    否、我在这两个设置之间更改了代码。

    您可以共享您的代码吗? 如果无法共享完整代码、请仅共享您在 c2000ware 示例上所做的更改

    此致、
    Praveen

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

    Jim、

    我要附上用于测试的 c2000ware 示例代码。 在 FD 模式= 0和1时、它在我的末尾工作为1Mbps

    e2e.ti.com/.../mcan_5F00_ex2_5F00_external_5F00_loopback.c

    C28x 端的时钟配置为:

    CM_CLK = 120MHz (AUXPLL 锁定在120MHz、CMCLKDIV=BY1)

    MCAN_CLK = 60MHz (MCANBITCLKSEL=AUXPLLCLK、MCANCLKDIV = BY2)

    请尝试一下吗?

    如果您还想修改 C28x、请告诉我。

    此致、
    Praveen

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

    Praveen、

    是的、也请向我发送 C28x 修改。 我将从 mCAN_ex2_external_loopback 开始、看看我是否可以让它在我的板上工作。  

    此示例实际上是否需要将2个28388D 电路板连接在一起、或者我能否在定义了传输的情况下编译此示例、并且电路板会传输到 PCAN 器件?

    谢谢、

    Jim

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

    Praveen、

    现在再也不用担心 C28x 示例应用;也许我们会回到这个问题、但我想我还会讨论一些问题。 在我看来、通过查看实际的 CAN 位宽时间、我应该能够实际测量 CAN 总线上的这些时钟变化、所以我执行了以下操作:

    1) 1)当 CM_CLK = MCAN_CLK = 120MHz 时、一切都正常、因此我的 MCAN 经典传输速率为1Mbps、示波器上的位宽正确为1us。

    2) 2)我只将 CPU1:AUXCLKDIVSEL.MCANCLKDIV 从0更改为1;我预期会发生的是1Mbps 传输看起来像500Kbs、因为实际 MCAN 的时钟速率是一半;令人惊讶的是、我的 MCAN 仍以1Mbps 传输- MCANCLKDIV=1对 MCAN 没有影响。  

    3) 3)然后、我将 CPU1:AUXCLKDIVSEL.MCANCLKDIV 从1更改为2、CAN 总线位宽更改为~333Kbps;它看起来 几乎像 MCANCLKDIV=1不做任何事情;这是可行的吗?

    我会不断地玩这个游戏、我会告诉你我发现了什么。

    谢谢、

    Jim

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

    Praveen、

    这是一个更新--在我的辅助时钟集代码中,似乎有一个错误,它无法在调试器中正确地重新配置 MCANCLKDIV。 上面不起作用的代码--在加载代码和下电上电后起作用。  

    那么,希望最后一个问题-- TI 是否有代码或电子表格来正确设置仲裁和数据位时间(高达8Mbps)与 MCAN 时钟速率? 我在 E2E 中找到了一个 DCAN-CANBTR.xlsx 电子表格和一些用于不同处理器的代码(函数 CAN_setBitTiming)、该处理器在120MHz MCAN 时钟下工作、但它现在在我的 MCAN_CLK = 24MHz 时失败。  

    谢谢、

    Jim

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

    Jim、

    听得好。

    关于计时计算器电子表格、我们正在为 MCAN 获取类似的电子表格、并将向您更新时间表。 目前,您可以使用 Peak systems 的比特率计算工具 。 请注意、要编程到寄存器中的值应该比实际时序值少1

    此致、
    Praveen

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

    Jim、

    希望您的所有问题都能得到解答。 如果是、请通过单击回复中的"验证答案"来关闭此主题。

    此致、
    Praveen

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

    Praveen、

    您是否知道 PCAN 工具生成的数字与 CM/TI 要求的数字有何关系? 我使用40MHz-MCAN_CLK 和1M/4M ARB/DATA 速率作为指南:

    在我的应用中、位时间=(TS1+TS2+3)*(BRP+1/freq)。

    ARB 值=(5+2+3)* 4/40M = 1us

    数据值=(5+2+3)* 1/40M = 0.25us (我知道我的 ARB-BRP!= DATA-BRP、但我会回来的)

    PCAN ARB-Values (BRP/TS1/TS2/SJW)= 1/19/20/20

    PCAN 数据值(BRP/TS1/TS2/SJW)= 1/4/5/5

    Pcan 没有给出它们的公式;我猜是:位时间=(TS1+TS2+1)* BRP/freq,这是有效的--那么我获取 PCAN TSeg1/TSeg2数字并从每个数字中减1吗? 它会使公式对齐、但我猜是这样。

    我还应该按原样使用 PCAN SJW 数字,或者减去1,或者?

    谢谢、

    Jim

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

    Jim、

    你是对的。

    正如我在上一篇文章中所指出的、我们应该从 PCAN 软件得出的值中减去一。 SJW 也是如此。

    此致、
    Praveen

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

    Praveen、

    我有一些进展(最后)。 我能够使用 PCAN 工具值在1MArb/2MegData (40MHz)下工作。 请注意、TI 库中有一个看起来像是错误的限制--在 hw_mcanss.h 中,标称位时间值被人为地限制为小于 NBTP 寄存器所能达到的值。 这些常量被标记为"用户定义的范围"、但随意限制寄存器设置似乎是一个错误。

    因此、我让 PCAN-tool 1MArb/2MegData (40MHz 时)正常工作、但当我尝试使用 PCAN-tool 1MArb/4MegData (40MHz 时)时、它们不起作用。 我使用的值大多与 启用了发送器延迟补偿器的 mCAN_ex2_external_loopback 示例相同--它应该是吗?

    我还把各种 PCAN 工具选项保留为默认选项(如标称值/数据采样点)--它们应该是吗?

    我连接了 mCAN.c;如果您有文件差异工具、则配置与 mCAN_ex2_external_loopback.c 非常相似

    谢谢、

    Jime2e.ti.com/.../mcan.c

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

    Jim、

    我在 hw_mcanss.h 上看到您的观点 让我就此与我们的软件专家进行联系。

    关于时序值、使用所附文件中的值、标称/数据采样点大约为50%。 通常建议使用更高的采样点(>75%)。 您可以尝试更高的采样点吗?

    此致、
    Praveen

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

    Praveen、

    80%的数据采样点(40MHz 时唯一可用的值)工作得更好、但数据包错误率为~20%、这表明配置值有一个小的甜蜜点。 您能为我提供有关如何选择值的任何指导吗? 通过所有可能的值更改 MCAN_CLK 并尝试所有可能的 PCAN-TOOL 值需要很长时间。

    我知道的唯一公式是位时间公式=(TS1+TS2+3)*(BRP+1)/MCAN_CLK、但这不考虑 PCAN-tool 提供的采样点、位速率偏差和位持续时间选项。 是否有一些其他公式可以帮助找到这个小窗口的工作值?

    谢谢、

    Jim

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

    Jim、

    我将链接附加到为 DCAN :Link 开发的比特率计算器应用手册。  您可以将其用作参考。  

    在4Mbps 时、PHY 往返延迟也将开始产生。 如本主题开头所述、最好启用 TDC。

    此致、
    Praveen

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

    Praveen、

    我之前看过比特率计算器应用手册和电子表格、但它仅适用于 CAN-classic、因此使用有限。 您是否知道 TI 是否会更新此电子表格以支持 CANFD 的4/8Meg 数据速率? 我很乐意测试 TI 拥有的任何东西。

    关于 TDC、我们对我最初的问题进行了全方位的讨论;不清楚 TDCO/TDCF 寄存器的值是如何确定的。 以下是我对第一个帖子的问题:

    TDCO 是否更改 SSP、因此增大 TDCO 将延迟 TX 之后的 RX 测量?

    TDCF 有什么作用? 我知道要发挥作用必须大于 TDCO、但其实际功能不清楚。

    我认为我需要在 TX 之后延迟 RX 测量、因为我的 CAN 收发器延迟(对于显性 TX)最大值为170ns。 我曾尝试使用这些 TDCO 和 TDCF、但没有明显的改进。

    Jim

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

    Praveen、
    让我尝试以不同的方式解决这个问题。 我的板载 CAN 收发器具有170ns 的综合延迟、因此我的采样点(SP)必须设置为大于该延迟、对吧?

    此外、如果我的已配置 SP >= 170ns、我不需要传输延迟补偿?

    我有2组1MEG/4Meg 值--一组 I 导出(每{分组差错率}有~1%)和一组 PCAN (每组有~20%)。

    我的 PER 值来自电缆长度小于1英尺的直接连接(USB 转 CAN) PCANFD。

    我希望、如果我能够理解为什么 PCAN 值不太可靠、我可以使用该信息来确定如何设置1MEG/8Meg 值。

    仅考虑数据值(哪些值应该是可以的、对吧?)。 所有这些都处于40MHz MCAN_CLK 下。
    我的寄存器值为 BRP/TS1/TS2/SJW = 0/5/2/2
    TQ = 25ns
    SP =(7*25)= 175ns

    CAN 寄存器的值为 BRP/TS1/TS2/SJW = 0/6/1/1
    TQ = 25ns
    SP =(8*25)= 200ns

    如果我的计算结果是正确的、则较长的 SP 的工作可靠性会降低、即使建议使用<=80%。

    我的价值观是 SJW 的两倍--你认为这是使我的价值观变得更好的价值吗?

    请注意、我的值没有与建议的相同的标称值/数据 BRP、但我想得到它。 那么、如果我的值有任何不可靠的地方呢?

    在评估这两组数字时、还有其他需要考虑的因素吗?

    谢谢、
    Jim

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

    您好、Jim、

    我将附加一个实验 MCAN 位计时参数计算器。 它根据所需的位速率计算 NBTP (B-23)和 DBTP (B-42)寄存器的值。 您能看到这是否有帮助。

    此致、

    Yashwante2e.ti.com/.../CAN_5F00_BitTimingCalculatorMCAN.xls