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.

[参考译文] AWR2944:MCAN 比特率计算

Guru**** 2553260 points
Other Parts Discussed in Thread: AWR2944

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1079660/awr2944-mcan-bit-rate-calculation

部件号:AWR2944

大家好,团队

请帮您检查一下,我的 MCAN 波特率计算是否正确? 谢谢。

配置来自 C:\ti\mmWave_mcuplus_SDK_04_02_00_02\MCU_plus_SDK_awr294x_08_01_01_06\sources\drivers\mcan\V0\mcan.c

公式是 TDA 处理器代码的副本。

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

IF (比特时间!= NULL)

/*初始化位计时*/
bitTimes-> nomRatePrescalar = 0x7U;
比特时间->nomTimeSeg1 = 0x5U;
bitTimes-> nomTimeSeg2 = 0x2U;
BitTimes-> nomSynchJumpWidth = 0x0U;
BitTimes->dataRatePrescalar = 0x1U;
比特时间->dataTimeSeg1 = 0x3U;
比特时间->dataTimeSeg2 = 0x2U;
比特时间->dataSynchJumpWidth = 0x0U;
}


比特率计算:
位速率=((mcan_clk /预校准)/(计时参数总和))
nomRate,mcan_clk = 80 MHz,预校准=(nomRatePrescalar + 1)= 8,计时参数总和=(nomTimeSeg1 + TimenomSeg2 + 3)= 10
比特率=(80MHz / 8)/ 10 = 1000 kbps

datarate,mcan_clk = 80 MHz,预校准=(nomRatePrescalar + 1)= 2,计时参数总和=(nomTimeSeg1 + TimenomSeg2 + 3)= 8
比特率=(80MHz / 2)/ 8 = 5000 kbps

谢谢  

韦斯利

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

    您好,Weasely,

            请让我一天。 我可以检查并返回您的计算是否正确。

    谢谢,此致,

    阿克沙伊。

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

    您好,Weasely,

             MCAN 位速率计算可在 TIREX 的汽车工具箱中找到(您需要下载整个工具箱来进行此操作)。 转至文件: C:\ti\mmWave_Automotic_toolbox_3_6_0__all\mmWave_Automotic_toolbox_3_6_0\labs\lab0005_object_data_over_can\odoc-target\MSS\MSS_main.c (行号:2345-2361)。 我已将代码中的行粘贴到副本中:

      

               请您浏览上述代码/建议,如果您有任何疑问,请告诉我。

    谢谢,此致,

    阿克沙伊。

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

    您好, Akshay,

    我要问的是 AWR2944。 不是 AWR1x。

    请确认您的回复与 AWR2944平台相匹配。

    谢谢。

    韦斯利

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

    您好,Weasely,

             第一代使用的 MCAN IP 与 AWR2944使用的相同。 因此,这一计算应该与 AWR2944平台匹配,但让我有时间与团队内部进行双倍检查,然后再返回。

    谢谢,此致,

    阿克沙伊。           

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

    您好,Weasely,

             对延误表示歉意。 上述附录的 snip 显示了 AWR2944的数据和额定比特率计算。 内部团队今天确认了这一点。

             如果您有任何疑问,请告诉我。

    谢谢,此致,

    阿克沙伊。

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

    您好,Akshay,

    请告诉我哪一个是正确的吗?  

    我发布的是什么? 还是您的帖子?

    谢谢。

    韦斯利

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

    您好,Weasely,

             我发布的(来自 TIREX 的) snip 是正确的。

    谢谢,此致,

    阿克沙伊。

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

    您好,Akshay,

    好的。 那么,请告诉我下面显示的 AWR2944 SDK 代码如何计算1Mbps 和5Mbps? 谢谢。

    配置来自  C:\ti\mmWave_mcuplus_SDK_04_02_00_02\MCU_plus_SDK_awr294x_08_01_01_06\sources\drivers\mcan\V0\mcan.c

    第2293-2312行。

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

    IF (比特时间!= NULL)

    /*初始化位计时*/
    bitTimes-> nomRatePrescalar = 0x7U;
    比特时间->nomTimeSeg1 = 0x5U;
    bitTimes-> nomTimeSeg2 = 0x2U;
    BitTimes-> nomSynchJumpWidth = 0x0U;
    BitTimes->dataRatePrescalar = 0x1U;
    比特时间->dataTimeSeg1 = 0x3U;
    比特时间->dataTimeSeg2 = 0x2U;
    比特时间->dataSynchJumpWidth = 0x0U;
    }

    我用你的 snip 公式做不到。

    谢谢,

    韦斯利

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

    您好,Weasely,

             你是对的。 计算 CAN 驱动器位速率(标称和数据)的方法有两种,似乎是针对 MCAL CAN 和非 MCAL MCAN (普通 MCAN)。 请您仔细阅读以下主题(Karan 的回答): https://e2e.ti.com/support/processors-group/processors/f/processors-forum/920090/faq-tda4vm-can-how-is-bit-rate-calculated-for-can ,以获得详细的理解(因为这两种情况下的实施略有不同)。 因此,从这个线程中可以清楚地看到,我从 TIREX 发布的 snip 是用于 MCAL MCAN 版本,而您已复制粘贴的 snip 是用于普通 MCAN (C:\ti\mmWave_mcuplus_SDK_04_02_00_02\MCM_plus_SDD_awr294x_08_01_01_MCAN 中存在的 snip 基于源驱动程序的计算)

             如果您还有其他问题,请告诉我。

    谢谢,此致,

    阿克沙伊。