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.

[参考译文] MMWAVE-L-SDK:重新初始化 MCAN 接口会将 RX FIFO Put 并将索引设置为不一致状态。

Guru**** 2419530 points
Other Parts Discussed in Thread: MMWAVE-L-SDK

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1526175/mmwave-l-sdk-reinitializing-the-mcan-interface-sets-the-rx-fifo-put-and-get-indices-into-an-inconsistent-state

部件号:MMWAVE-L-SDK

工具/软件:

您好、专家、  

我们使用 mcan.c 中的 MCAN_init 函数来解决我们在使用器件时遇到的一些连接问题。 我们最近发现、如果在 CAN 总线断开连接时 Put 和 Get 索引不为零、则调用 MCAN_init 将导致 Get 和 Put 之间出现不同步。  

下面、我已将观察到的行为分步编写成。  

1.向设备发送五条消息、Get 和 Put 索引均以 5 结尾。

2. CAN 总线断开。

调用 MCAN_INIT 以重新初始化连接。 因此、Get 和 Put 索引会复位为 0。

4.重新建立连接。  

5. GET 和 Put 索引保持为 0。  

6.向设备发送另一条消息。 Put 索引从 0 递增到 1。 Get 索引从 5 递增到 6(返回到前一个位置)。  

7、FIFO 填充级别现在错误 (FifoSize+1)–6。

理想情况下、我们将能够解决不同步问题、因为我们对代码的当前行为感到满意。 SDK 中有一个 MCAN_RESET 函数、但遗憾的是 为空。  

谢谢你