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.

[参考译文] AWR1843BOOST:具有 CAN 功能的 Out_Of_Box DEMO_AWR1843

Guru**** 2560390 points
Other Parts Discussed in Thread: AWR1843, AWR1642, AWR1843BOOST

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1386830/awr1843boost-out_of_box-demo_awr1843-with-can-functionality

器件型号:AWR1843BOOST
主题中讨论的其他器件:AWR1843AWR1642

工具与软件:

嗨… 、

我们尝试从  Radar Toolbox-2.10.00.04中的 OUT_OF_Demo _1843中添加 CAN 的功能。  

我遵循了文档"向现有的毫米波项目添加 CAN-FD Tx 和 Rx "、但它仍然无法正常工作..... 当我在 OOB 演示中浏览 mmw_cli、c 时、我在这里找到 uart_writePolling 函数。

在 main.c 文件中,我已经完成了所有的过程,作为文件.. 当它不工作时、我深入研究了 out_of_Demo _1843、并在 mmw_cli.c 文件中发现 需要调用 UART_writePolling 函数。  

所以我应该调用 mmw_cli.c 中的 Can_Transmit_Schedule 函数。

谢谢!

Rehman

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

    请观看此演示

    它基于1642器件、但具有您正在尝试实现的 CAN 功能

    C:\data-nobackup\radar_toolbox_2_10_00_04\source\ti\examples\object_data_over_can

    谢谢你

    Cesar

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

    尊敬的 Rehman:

    除了上面的演示之外、还请参阅雷达工具箱中的 AWR1843中程雷达演示:($TOOLBOX_INSTALL_DIR\SOURCE\ti\examples\adas\medium_range_radar)

    该演示实现了 CAN Tx 以及用于处理 mss_main.c 中的 CAN Rx 的基本回调

    请注意、CLI 用于配置、启动和停止传感器。 如果目标是在传感器运行时进行 CAN 通信、则应在邮箱读取任务中调用 Can_Transmit_Schedule。

    谢谢!

    Jin

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

    海劲  

    重点是...、在开箱即用演示中、没有邮箱读取任务。 我还熟悉中距离雷达。。 在中等距离雷达演示中 Transmit_Schedule 、如您所述、邮箱读取任务中会调用 can_Polling 以及 UART_writePolling 函数。。 .

    但在 Out_Of_Box 演示中 ,UART_writePolling 函数被调用,"静态 void MmwDemo_transmitProcessedOutput()",所以我想添加 CAN_MmwDemo_transmitProcessedOutput( Transmit_Schedule )中 的函数"static void MmwDemo_transmitProcessesedOutput()".

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

    尊敬的 Rehman:

    感谢您的澄清。 是的、应在 OOB 演示的 MmwDemo_transmitProcessedOut ()中调用 Can_Transmit_Schedule。 不需要将其添加到 mmw_cli.c 中

    谢谢!

    Jin

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

    此外、请确保按照 EVM 用户指南中的说明将 EVM 配置为提供 CAN-FD 输出。  

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

    尊敬的 Rehman:

    如果 MRR 演示输出 CAN-FD、则交换机配置应正确。  

    您是否可以通过 Can_Initialize ()来确保参数和消息 RAM 被正确初始化?

    之后、请逐步浏览 Can_Transmit_Schedule 以确认消息已正确写入消息 RAM。 存储器浏览器可用于直接查看 RAM。

    谢谢!

    Jin

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

    海劲

    上面提到的两个函数都可以...但有一点怀疑、我有 is...in 给定的文档没有指定如何链接 CAN-FD 驱动程序...只有给出的信息是一个图...

    所以我刚刚复制了图中提到的文件、并粘贴在 ARM 连接器的文件搜索中。。

    如果 TI 按照步骤进行操作而不是提供图形、那就太好了。

    链接 CAN-FD 驱动程序:-最后一步是通过与 CAN-FD 驱动程序链接来构建可执行文件。 如果使用 CCS 项目、可以将 CAN-FD 驱动程序添加到项目的链接器属性中、如图1"  

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

    尊敬的 Rehman:

    参考图("图1. CCS 项目链接器属性")显示了 AWR1642器件的 CAN-FD 库文件。 请确保 canfd 驱动程序包含在库搜索路径中、并且包含 libcanfd_xwr18xx.aer4f。 还请确认您使用的是最新版本的 SDK3。

    为了确认最后一个问题、您可以在存储器中看到消息 RAM 已正确初始化、并且可以 在调用 CANFD_transmitData 时看到消息正在写入?

    谢谢!

    Jin

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

    因此我可以将其复制到仅使用 AWR1843电路板的 MRR 演示中。。

    我应该在调试模式下运行内存操作...当我检查所有寄存器是否都为0时........

    是否有任何说明如何访问 RAM...由于我是第一次进入 CCS、我不太了解如何访问。

    谢谢!

    Rehman

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

    尊敬的 Rehman:  

    从 MRR 演示中复制搜索路径和库文件是一个起点-请检查路径是否正确、以及是否使用了最新的 SDK3。

    有关使用"Memory Browser"视图的信息、请参阅 CCS 中包含的帮助文档:

    帮助->帮助目录-> Code Composer Studio 用户指南->调试->调试应用程序->内存浏览器视图。  

    请检查 CAN-FD 的消息 RAM 正在初始化的位置、以及 在调用 CANFD_transmitData()时发送的消息是否写入消息 RAM 中。

    谢谢!

    Jin

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

    你好、Jin… 、

    我已经完成了路径和库文件的所有必要操作。  

    我还查看了内存浏览器、发现 CAN-FD 的 RAM 已初始化 还能不能来…

    我将分享以下所有的照片。

    1)-路径和文件  

    2)- CANFD 寄存器- 0xFFFFEA10和0xFFFFEA0C (引脚- E14和 D13 RESP)

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

    尊敬的 Rehman:  

    感谢您的更新。 对我来说很好。  

    有关存储器浏览器和调试的一些注释:

    • 在 R4F 中、存储器中的0xFFFFF_EA00至0xFFFFFFFF_EBFF 用于 I/O 引脚多路复用寄存器、而不用于 CAN 数据配置/RAM。  
    • 在 C66中、0x5600_0000至0xFFFFF_FFFF 保留、不应使用。  

    在 R4F 中、0xFF50_0000至0xFF9F_FFFF 保留用于 MCAN RAM 存储器空间- MCAN RAM 地址应在这些范围内。  

    有关更多详细信息、请参阅 AWR18xx TRM (www.ti.com/.../swru520)中的第3.2节。  

    此外、我建议您使用断点逐步执行 CAN-FD 函数、以便您可以看到变量/存储器浏览器更新值。 连续刷新("Memory Browser"窗口右上角的黄色图标)可能是另一种选择、但对调试帮助不大。  

    谢谢!

    Jin

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

    如果使用 AWR1843BOOST、则必须将一个开关设置在 SPI 位置。 有关更多详细信息、请查看 EVM UG。

    谢谢你

    Cesar

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

    我是指从 SPI 转换到 CAN 位置

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

    好的...、我刚刚验证了给定的寄存器:-  0xFF50_0000到0xFF9F_FFFF

     

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

    Hai Cesar、  

    CAN 开关一切正常...我使用 MRR 演示获得 CAN 输出、它是一块电路板、即 AWR1843BOOST、我使用的是具有 CAN 功能的 OOB 演示

    谢谢!

    Rehman

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

    尊敬的 Rehman:

    您是否可以尝试在 CAN_TransmitData ()函数中设置断点,并单步执行以查看内存浏览器中正在更新的值? 我看到屏幕截图中仍在运行演示。  

    您传输的值是否为@ 0xFF9FFFFC 示例数据? 您是否看到它正在更新?  

    谢谢!

    Jin

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

    嗨...

    而不是断点是有办法使用 System_printf()函数....这样我可以看到在哪个函数中 CAN 发生了错误。

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

    尊敬的 Rehman:

    我们不建议使用 printf()、因为它不能很好地处理中断。 如果您在器件中刷写了 ccsdebug.bin 并通过 CCS 运行演示、则使用断点应该不会遇到问题。 请尝试单步执行代码,看看变量/内存在 CAN_TransmitData ()期间被正确更新。

    谢谢!

    Jin

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

    Hai Jin ...、

    很高兴通知您问题已解决。 错误是我们忘记在 MmwDemo_initTask()中添加 Can_Initialize ()函数调用。

    如果你们可以 根据上面给出的信息更新文档"将 CAN-FD Tx 和 Rx 添加到现有的毫米波项目"、那将非常好。

    谢谢!

    Rehman

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

    尊敬的 Rehman:

    很高兴来到这里、感谢您的更新。 将其转发给文档的作者。

    谢谢!

    Jin