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.

[参考译文] TCAN4550EVM:CAN Rx 问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1386672/tcan4550evm-can-rx-problem

器件型号:TCAN4550EVM
主题中讨论的其他器件: TCAN4550

工具与软件:

大家好、团队成员:

我已经连接了 STM32和 TCAN4550EVM。

CAN Tx 工作正常、但 Rx 无法工作。

当我发送数据到 TCAN4550时、mcan_ir.RF0N == 1表示 RX FIFO 中有数据。

但是、我在尝试读取下一个 FIFO 时无法读取数据。

但是、如果我在调用之前发送第二个 CAN 数据TCAN4x5x_MCAN_ReadNextFIFO

我能够接收第一个 CAN 数据。

如何解决此问题?  

下图显示我发送的第一条消息为33、第二条消息为44、但仅收到33。

此致、

Hsinyu

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

    尊敬的 HSINYU:

    您启用了多少个 RX FIFO 0元素?

    在此过程之前和之后、您是否可以尝试验证 RX FIFO 0 Get 和 Put 索引值?  Get 索引通常用于根据为每个 RX 缓冲器元素分配的字节数、计算作为起始地址偏移量的 MRAM 地址。

    您是否还可以尝试验证第一次读取 RX 消息的 MRAM 地址、以便我们可以根据 Get 索引验证它是否与 RX FIFO 元素的正确地址匹配?

    如果第一条消息"Read"未能返回消息数据、但第二条消息返回第一条消息、则 Get 索引似乎有问题、它可能会被关闭1、或者计算 MRAM 地址不正确。

    如果您尝试发送3条消息、第三条已读消息是否会返回第二条消息?  如果是、这会指示一种模式。

    如果可能、您还可以读取 MRAM RX FIFO 0地址空间并手动验证将字节放置在正确的位置。  这将有助于找到是否存在起始地址问题、索引计算问题等

    此致、

    Jonathan