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.

[参考译文] AWR1642BOOST:如何在 EVM 上测试 CAN-FD?

Guru**** 2540720 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/625509/awr1642boost-how-to-test-the-can-fd-on-the-evm

器件型号:AWR1642BOOST

您好!

我的客户正在使用 canfd 演示(C:\ti\mmwave_sdk_01_00_00_05\packages/ti\drivers\canfd)在 EVM 上测试 CAN-FD。  

当他使用 CAN-classic 模式时、调试工具(矢量独木舟)可以识别 CAN 总线传输的数据、这是正常的。

当他使用 CAN-FD 模式时、 调试工具(矢量独木舟)无法识别 CAN 总线传输的数据。 独木舟可以捕获数据、但 它建议出现如下所示的 CRC 错误。

如何 配置独木舟以识别正确的数据? 或者、您能否提供在 EVM 上测试 CAN-FD 的指南和配置?

代码中的参数(mcanBitTimingParams) 与 Canoe 的配置之间有何关系?

谢谢。

此致、

Wesley

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

    Wesley、您好!

    我不熟悉“引导程序独木舟”工具,无法对该工具中要完成的设置进行注释。 但是、Prescalar 值在 Vector Canoe 工具中似乎并不正确。

    但原则上、比特率计算如下所示:

    时钟/((数据波特率预分频 系数+ 1)*(dataTimeSeg1 + dataTimeSeg2 +3))

     

    在标称比特率设置的 SDK 代码中:

    数据波特率预分频值= nomBrp

    dataTimeSeg1 = PropnomSeg+nomPseg1

    dataTimeSeg2 = nomPseg2

    CAN 模块的"时钟"在40MHz 下计时、SDK 示例中的标称位速率设置为1MHz 、采样点为75%。

    类似的计算也适用于数据比特率。 在 SDK 示例代码中,采样点62.5%处的数据比特率设置为5MHz。  

    您将需要设置与 SDK 代码中设置的相同的矢量 Canoe 位时序设置。  

    谢谢、

    Raghu

    ------------------------------------------------------

    如果您的问题得到了解答、请单击此帖子上的"验证答案"按钮。

    ------------------------------------------------------

     

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

    您好 Raghu、

    您提供的比特率计算与 SDK 不同。

    在 SDK (C:\ti\mmwave_sdk_01_00_00_05\packages/ti\drivers\canfd\test\xwr16xx\main.c line1019)中、配置如下所示。

      /*分别将1Mbps 和5Mbps 配置为标称和数据比特率

        传播:8.

        PH 值1:6

        PH 段2:5

        同步跳转:1.

        BRP (波特率预分频器):2.

        标称位速率=(40)/((8+6+5)+1*BRP)=1MHz

        数据比特率的时序参数:

        传播:2.

        pH 值段1:2

        PH 段2:3

        同步跳转:1.

        BRP (波特率预分频器):1.

        标称位速率=(40)/((2+2+3)+1*BRP)=5MHz

      *

      mcanBitTimingParams.nomBrp   = 0x2U;

      mcanBitTimingParams.nomPropSeg = 0x8U;

      mcanBitTimingParams.nomPseg1  = 0x6U;

      mcanBitTimingParams.nomPseg2  = 0x5U;

      mcanBitTimingParams.nomSjw   = 0x1U;

      mcanBitTimingParams.dataBrp  = 0x1U;

      mcanBitTimingParams.dataPropSeg = 0x2U;

      mcanBitTimingParams.dataPseg1 = 0x2U;

      mcanBitTimingParams.dataPseg2 = 0x3U;

      mcanBitTimingParams.dataSjw  = 0x1U;

     

    但您给出的等式是

    比特率=时钟/((数据波特率预分频 系数+ 1)*(dataTimeSeg1 + dataTimeSeg2 +3))

    比特率=时钟/((nomBrp + 1)*(nomPropSeg+nomPseg1+ nomPseg2+3)

    在1MHz 的情况下、比特率= 40/((2+1)*(8+6+5+3)=40/66=0.606MHz

    在5MHz 的情况下、比特率= 40/((1+1)*(2+2+3+3))=40/20=2MHz

    这些0.606MHz 和2MHz 是什么意思?

    此外、如何根据参数计算采样点?

    Canoe 只有62%的采样点、如下所示、这一切对吗?

    谢谢。

    此致、

    Wesley

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

    Wesley、

    这两个公式都正确。 我们只需要考虑在我发送的公式中编程到器件的值。

    在 SDK 代码中,如果选中"CANFD_CONFIGBitTime()函数,则在对寄存器进行编程之前,发送到器件的位时间全部减1。

    根据我发送的公式:

    时钟/((数据波特率预分频 系数+ 1)*(dataTimeSeg1 + dataTimeSeg2 +3))

    因此、对于以下值

    标称比特率:

    传播:8.

       PH 值1:6

       PH 段2:5

       同步跳转:1.

       BRP (波特率预分频器):2.

    标称比特率:40/((BRP - 1)+ 1)*((nomPropSeg+nomPseg1 -1)+(Seg2 -1)+ 3)

    对于1MHz:40/(((((2-1)+1)*((8+6-1)+(5-1)+3))

    对于数据阶段

    传播:2.

       pH 值段1:2

       PH 段2:3

       同步跳转:1.

       BRP (波特率预分频器):1.

    对于5MHz:40/(((1-1)+1)*((2+2-1)+(3-1)+3)

    SDK 中的另一个公式考虑了直接从应用发送的时序编号。

    希望这能帮助您更好地理解。  

    谢谢、

    Raghu

    ------------------------------------------------------

    如果您的问题得到了解答、请单击此帖子上的"验证答案"按钮。

    ------------------------------------------------------

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

    感谢您的回复、这很有帮助。
    我有下面显示的另一个问题。
    如何根据参数计算采样点?
    Canoe 只有62%的采样点、如下所示、这一切对吗?
    谢谢。

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

    Wesley、

    我在 Canoe 中也看到了75%的采样点。 您可以通过更改位时间来更改采样点。

    您可以通过在 SDK 代码中设置以下值来实现数据阶段采样点75%的目标:

    传播:3.

       pH 值段1:2

       PH 段2:2.

       同步跳转:1.

    BRP:1.

    对于5MHz:40/(((1-1)+1)*((3+2-1)+(2-1)+3))

    谢谢、

    -Raghu

    ------------------------------------------------------

    如果您的问题得到了解答、请单击此帖子上的"验证答案"按钮。

    ------------------------------------------------------

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

    感谢你的帮助。
    我理解这一原则。

    此致、
    Wesley。