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.

[参考译文] TCAN4550:在 rxf0中丢失 MSG

Guru**** 2513195 points
Other Parts Discussed in Thread: TCAN4550, TCAN4550-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/935107/tcan4550-msg-lost-in-rxf0

器件型号:TCAN4550

您好!

我们在 IMX6ULL 平台中使用 TCAN4550 CAN 接口。

最初、当我们尝试以1sec 频率接收数据时、我们收到 "tcan4x5x spi0.0 CAN2:MSG 在 rxf0中丢失"错误。

然后我们将 DTS 文件中的"Bosch、MRAM-cfg =<0x0 3 2 1 6 3 10 7>;"更改为"Bosch、MRAM-cfg =<0x0 64 64 64 64 32 32>;"、则我们能够每15ms 接收一次 CAN 数据。

我们的要求是每1ms 重新获取一次 CAN 数据。

当我们尝试在1ms 内从汽车接收 CAN 数据时,我们将得到“tcan4x5x spi0.0 CAN2:MSG 在 rxf0中丢失”。

请建议解决此问题。

此致、
哈吉

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

    Haji、

    感谢您的关注、我能否询问您使用哪种类型的应用?

    为了解释"报文丢失"中断:出现" RX FIFO 中的报文丢失"有几个原因。 RX FIFO 有一个读取和写入指针(获取和放置索引)。 当写指针返回到读取指针并接收到新消息时、如果未启用写覆盖模式、TCAN4550-Q1将会产生报文丢失错误、因为 FIFO 已满、或者至少根据指针它已满。 您必须通过写入 RXF0A (对于 FIFO 0)来调整 RX FIFO 中的读取指针、否则您将会由于 FIFO 已满而收到消息丢失错误。 因此、之所以引发此错误、主要是因为获取和放置索引彼此循环、因为获取索引未更新。

    当您说"接收 CAN 数据"时、这意味着什么? 从 FIFO 中读取数据? 还是实际接收存储到存储器中的消息?

    在初始 MCAN 配置中、您分配了3个11位滤波器元件、2个29位滤波器元件、1个 RX FIFO 0元件、6个 RX FIFO 1元件、3个 RX 缓冲器、10个 TX 事件 FIFO 和7个 TX 缓冲器。 只是为了理解、您是否能够使用此配置更快地接收数据、或者您是否仅尝试1秒的频率?  

    我希望确保我了解您的应用程序中的过程、以便我们能够找到它的底部。

    此致、

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

    您好 Eric、

    感谢您的支持。

    请查看以下信息并告诉我您的意见。

    当分配3个11位滤波器元件、2个29位滤波器元件、1个 RX FIFO 0元件、6个 RX FIFO 1元件、3个 RX 缓冲器、10个 TX 事件 FIFO 和7个 TX 缓冲器时、我们无法以1秒的频率读取数据。 在这之后、我们将其更改为"0x0 64 64 64 64 64 32 32"、我们能够实现10ms 的读取频率。

    我们已将器件连接到汽车的 CAN 总线。 汽车 ECU 将每1ms 发送一次 CAN 数据包(每个条件1000个数据包)。 在器件端、我们运行的是 candump 工具、它使用 Socket CAN 读取数据。 因此、当我们启动汽车时、我们会接收到几毫秒的 CAN 数据包、然后我们将得到超过 msg 丢失的打印、如下所示:

    :~# canndump CAN2

    CAN2 18F1F05A [5] FF 00 BA 4F
    CAN2 08F10581 [8] 04 00 00 7D 00 7D 77 8A
    CAN2 08F10681 [8] 44 00 00 7D 00 7D 77 4A
    CAN2 18F1F813 [8] F5 00 FF 28 00 28 00
    CAN2 18F1D281 [8] 01 00 00 00 00 00 00 AA
    CAN2 08F10581 [8] 04 00 00 7D 00 7D 78 89
    CAN2 08F10681 [8] 44 00 00 7D 00 7D 78 49
    CAN2 08FE6E0B [8] 00 00 00 00 00 00 00 00 00
    CAN2 18F1F05A [5] FF 00 CA 16
    CAN2 18F1F813 [8] F5 00 FF 28 00 28 00
    CAN2 18F1F05A [5] FF 00 DA DB
    CAN2 08F10581 [8] 04 00 00 7D 00 7D 79 88
    CAN2 08F10681 [8] 44 00 00 7D 00 7D 79 48
    CAN2 18F1F813 [8] F5 00 FF 28 00 28 00
    CAN2 18F1F713 [8] 00 7D 30 75 30 75 30 75
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG
    CAN2 18F1F05A [5] FF 00 EA 91
    CAN2 08F10581 [8] 04 00 00 7D 00 7A 87
    CAN2 08F10681 [8] 44 00 00 7D 00 7A 47
    CAN2 08FE6E0B [8] 00 00 00 00 00 00 00 00 00
    CAN2 18F1F813 [8] F5 00 FF 28 00 28 00
    CAN2 18F1F05A [5] FF 00 FA 5C
    CAN2 08F10581 [8] 04 00 00 7D 00 7B 7B 86
    CAN2 08F10681 [8] 44 00 00 7D 00 7B 7B 46
    CAN2 18F1F813 [8] F5 00 FF 28 00 28 00
    CAN2 08F10681 [8] 13 F8 F1 58 00 08 FF
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG
    tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG

    请告知我们用于实现最快通信的 MRAM 配置。

    另外、请告诉我们如何启用突发模式/批量读取。

    此致、
    哈吉

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

    Haji、

    由于这是通过电子邮件处理的、因此我将关闭此主题。

    此致、

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

    您好 Eric、

     我遇到同样的问题:"msg lost in rxf0"。

     您是否想分享如何配置 MRAM 以实现最快的通信。我的电子邮件是 hu1593572@qq.com。

      期待您的回复。

    此致、

    HU