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.

[参考译文] AWRL6432:将消息接收功能更改为轮询、如何正确配置驱动器?

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1390383/awrl6432-change-the-message-receiving-function-to-polling-how-to-correctly-configure-the-drive

器件型号:AWRL6432

工具与软件:

目前、消息接收模式作为中断触发、中断 更改为轮询。 进行一些更改后、ECU 将在通电后持续重启。

更新 CAN 驱动器配置并生成代码、如下所示

.

2.将 Can_Main 读()和 Can_Main 写()函数添加到5ms 任务中

3.打印日志

那么配置轮询的正确方法是什么?为什么在配置后会重新启动轮询?

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

    嘿、Kai、

    对于轮询、这取决于您使用的是缓冲区还是 CAN 收发器的 FIFO。 对于缓冲区、 您可以  使用 MCAN_getNewDataStatus 函数监控 NDAT 寄存器(新数据-由接收新数据的缓冲区触发)、然后在检测到新数据时调用 Can_Main READ。 对于   Can_Main、可使用 MCAN_getRxFIFOStatus 函数检查 FIFO 状态寄存器(已接收到消息时填充级别应增加)、然后在填充级别等于 FIFO 计数时调用 FIFO_READ。

    此致、

    Kristien

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

    你好、Kristien、

    我有一个问题:Can_Main 如下图所示、MCAN_getNewDataStatus 和 MCAN_getRxFIFOStatus 已在 MCAN_READ 中被调用、那么为什么我们需要在 MCAN_READ 之前调用 MCAN_getNewDataStatus 和 MCAN_getRxFIFOStatus Can_Main?

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

    你好、Kristien、

    我 在调用 ECU_READ 之前添加了 MCAN_getNewDataStatus、并且仅 使用 CAN 收发器的缓冲区或 Can_Main、但 ECU 仍会重新启动。

    插入的代码如下所示:

    日志和可以按如下方式进行跟踪:

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

    嘿、Kai、

    我需要多花一天或两天来研究这个问题。

    感谢您的耐心等待、

    Kristien

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

    嘿、Kai、

    我们使用 您使用的相同 CAN 设置进行了快速测试、发现在轮询模式下的读取或写入操作期间未观察到复位。

    通过测试、我们得到了一些问题和注意事项:

    1. 要确认、ECU 复位在运行 CAN 轮询任务几次后发生、对吗?  
    2. 更正了先前共享的信息: Can_Main 不是一个阻塞 API,因此用户应该使用 If_Rx cabstrocation API来 设置全局标志,并且应该使用该标志在 Can_Main 读取上循环,以了解数据是否已到达。
    3. 请通过 mySecure 更新至 MCAL 的最新版本3.0.5.0。 如果您需要 mySecure 访问权限方面的帮助、请联系我们。

    此致、

    Kristien

x 出现错误。请重试或与管理员联系。