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:我使用 AWR1642BOOST CANFD 来发送经典帧。

Guru**** 2606725 points
Other Parts Discussed in Thread: AWR1642BOOST, AWR1642, MMWAVE-SDK, AWR1443

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/662752/awr1642boost-i-am-using-awr1642boost-canfd-to-transmit-classic-frame

器件型号:AWR1642BOOST
Thread 中讨论的其他器件: AWR1642MMWAVE-SDKAWR1443

->我正在使用 AWR1642BOOST CANFD 来传输经典帧。我已进行了其他论坛中提到的必要 ECO 更改(移除 R6和 R4、在 R11和 R12中保持0欧姆、并将框架类型更改为经典。我已将 CANFD 代码从"C:\ti\mmwave_sdk_01_00_02\packages/ti\mw 从演示代码中删除并将其从内部代码\mw 转至演示代码 由于我的目的是检查与演示代码的 CAN 通信。我已确保 在这个集成代码中调用 mcanTransmitTest()(通过在 mcanTransmitTest()调用之前向 UART 写入测试字节来验证)。

->在接收器端,我们从 Keil 连接了 MCB2300板(因为目前我们没有矢量独木舟或其他工具)。我们有以下 CAN 模块设置  

#define PCLK           24000000               //外设时钟,取决于 VPBDIV */

针对不同波特率的位时间寄存器的值

  NT =标称位时间= TSEG1 + TSEG2 + 3

  SP =采样点    =((1+TSEG1+1)/(1+TSEG1+1+TSEG2+1))* 100%

                                                  Sam、 SJW、TSEG1、TSEG2、NT、  SP */

const uint32_t CAN_bit_time[]={     0x0001C000、/* 0+1、 3+1、  1+1、  0+1、    4、     75%*/

                                     0x0012C000、/* 0+1、 3+1、  2+1、  1+1、  6、    67%*/

                                      0x0023C000、/* 0+1、 3+1、  3+1、  2+1、  8、  63%*/

                                    0x0025C000、/* 0+1、 3+1、  5+1、  2+1、 10、   70%*/

                                   0x0036C000、/* 0+1、 3+1、  6+1、  3+1、 12、   67%*/

                                  0x0048C000、/* 0+1、 3+1、  8+1、  4+1、 15、   67%*/

                                   0x0049C000、/* 0+1、 3+1、  9+1、  4+1、 16、 69%*/

                               };

 我可以选择上述任何一种配置、而且我也看不到两个不同的配置参数、例如接收器侧板中的标称段和 DataTime 段  

配置。

A)所以 必须是接收器侧的 MCAN 支持板(我不知道 MCB2300板是哪种类型的 CAN)。

B)如果不是、接收器侧的所有 CAN 配置都必须与发送器侧(AWR1642升压- CANFD 经典帧)完全匹配?

示例:外设时钟、波特率等

c)我通过将 CANH、CANL、GND 连接到 MCB2300板 CANH、CANL、GND 引脚进行了测试、并尝试了  

0x0025C000、/* 0+1、 3+1、  5+1 (标称 altseg1=5)、  2+1 (标称 altseg2=2)、 10 (NetworkTime)、   70%(采样点)*/  

但我没有在接收器侧接收到任何 CANRX 中断。  

 

谢谢、

PTKRISHNA。

 

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

    您是否检查过示波器、以便通过 CAN 引脚获得正确的信号?

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

    您好、Cesar、

    我已经使用示波器/万用表进行了验证。即使程序正在运行、CANH、GND 之间的电压差似乎始终为2.5V。这似乎是问题所在

    将 CANFD 代码集成到演示代码中。 因此、我想返回到"C:\ti\mmwave_sdk_01_00_02\packages/ti\drivers\canfd\test\xwr16xx"中提供的独立 CANFD 调试代码、测试可以单独进行通信。但在" canfd\test\xwr16xx\main.c"中、测试选择似乎为零。我想更改测试选择

    并重新生成"xwr16xx_canfd_MSS.xer4f"。

    ->请告诉我如何重新编译(调用文件) 重新生成路径中的"xwr16xx_canfd_MSS.xer4f"所需的任何安装(python 等)

    "C:\ti\mmwave_sdk_01_00_02\packages/ti\drivers\canfd\test\xwr16xx"?

    ->完成此操作后,我将把它集成到演示代码中并重新测试。

    谢谢、

    PTKRISHNA。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Cesar、
    在使用示波器/万用表进行验证之后进行的其他调试中、我们始终观察到
    始终生成"MCAN_INTR_SRC_TRANS_CANCELL_FIND"中断(将 UART 日志放入 MCANAppCallback 函数中、并且它始终显示"CANFD_REASE_TX_CANCELed"为 true)。

    ->在某些情况下,如果我只是调用原问题中提到的 mcanTransmitTest()函数,就会生成此中断的任何建议。

    您能否就上述帖子查询以及此问题提出答案。

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

    如果接收器侧不支持 CANFD,则可以在设备侧设置 CANFD 以发送 classic_can 帧。

    在经典_CAN 模式下、对 CANFD 应用程序代码进行的更改非常小、无法发送数据。

    请参阅以下文章、了解在经典 CAN 模式下进行的数据发送修改。
    e2e.ti.com/.../2316239

    如果您需要更多信息、请告诉我。

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

    您好 Raghu、

    我已经看到过这些帖子。正如我在中的上一个帖子 already .main.c 文件中提到的那样、需要以下信息  

    "c:\ti\mmwave_sdk_01_00_02\packages/ti\drivers\canfd\test\xwr16xx"默认情况下、测试选择变量值为0。

    我想将 testselection 更改为程序中的有效值,并重新生成"xwr16xx_canfd_MSS.xer4f"文件。

    ->我想知道如何重新编译,是什么使文件重新编译(需要 python 等)?

    (或者)不重新编译、我是否可以动态地提供 testSelection 值?

    请参见随附的屏幕截图。

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

    您好、Krishna、

    请参阅"MMWAVE-SDK"中的用户指南,并参阅"4.4.3构建演示"部分。 在构建驱动程序或演示之前,请确保已安装所有相关工具。

    然后,您可以对 testselection =4进行硬编码,以执行外部 CAN 通信。

    谢谢、
    Raghu

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

    你好 Raghu、

    我已将测试设置更改为 DCAN 接口、因为我在接收器侧只有 awr1443板。

    发送器侧:awr1642连接到开发包、执行所有必要的 ECO 更改以访问 DevPack (DCAN)上的 CAN2连接器

    并执行"awr16xx.xer4f"的 ti\driver\ccan 测试代码。我们已验证 CANTX 是否在发送器侧发生(示波器中高线和低线的波形)。

    接收器侧:运行"awr14xx.xer4f"的 awr1443板。但在接收器侧 DCAN0、DCAN1 ISR.testselection 在接收器侧为0。

    ->将接收器板置于调试模式以测试从发送器接收到的数据是否正确。(或)我们必须在接收器端刷写二进制文件?

    ->我们已将两块板(连接了 SOP 0跳线,两侧的 SOP1、SOP2均已打开)。已附加下面的设置图片。

    谢谢、

    PTKRISHNA。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Raghu、
    我能够解决上述问题、并在接收器侧 CAN 板上查看 CAN 测试数据。

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

    您这边的问题是什么?

    -Raghu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Raghu、
    作为第一步,我已确保所有 ECO 更改都在两侧完成(发送器:awr1642 DCAN,接收器:awr1443)。然后使用 TI 文件夹下提供的 awr16xx 的 CAN drv 测试代码进行测试。通过示波器可以查看 CAN 引脚上的电压变化。
    在接收器端,加载了 ti 中提供的 CAN drv 测试代码后,我已经做了额外的更改,例如添加了新的测试选择“5”,它执行所有初始化 (类似于 dcantrasmittest()、dcanparitytest()),将 TLV 设置为 DCAN 模式,并等待“grxDoneFlag”的检查为 true。(如果为 true,我正在读取 dcanrx 数组)。

    这可能是在 dcanappcallback()中已经完成的操作。

    谢谢、
    P Tulasi Krishna。