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:tcan4x5x spi0.0 CAN2:MSG 在 rxf0中丢失

Guru**** 2541440 points
Other Parts Discussed in Thread: AM5728, TCAN4550

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1002742/tcan4550-tcan4x5x-spi0-0-can2-msg-lost-in-rxf0

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

您好!

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

 我们尝试以1ms 的频率接收数据、得到 "tcan4x5x spi0.0 CAN2:MSG 在 rxf0中丢失"错误。

然后、我们 在 DTS 文件中使用"Bosch、MRAM-cfg =<0x0 64 64 64 64 64 32 32>;"、然后我们能够每15ms 接收一次 CAN 数据。

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

请建议解决此问题。

此致、
韩文

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

    Han、

    我发送了一封电子邮件、但为了理解、您是使用任何中断从存储器空间读取消息、还是轮询? 设备是否处于写覆盖模式、以便覆盖消息?

    此致、

    Eric Hackett  

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

    尊敬的 Eric:

    感谢您的支持。

    我正在使用 candump 工具接收 canfd 数据,当我们在大约3小时后以1ms 的频率接收 canfd 数据时,
    我们收到"tcan4x5x spi0.0 CAN2:MSG 在 rxf0"错误。

    我不确定模式是什么、这是我的 DTS 配置。

    mcspi3{(&M)
    pinctrl-names ="default";
    pinctrl-0 =<&spi3_PINs>;
    TI、pidd-d0-out-d1-in;
    状态="正常";
    #address-cells =<1>;
    #size-cells =<0>;
    tcan4450:tcan4x5x@1{
    兼容="ti、tcan4x5x";
    RESET-GPIO =<&GPIO6 31 GPIO_ACTIVE_HIGH_>;
    SPI_INT-GPIO =<&GPIO5 19 GPIO_ACTIVE_LOW>;
    reg =<0>;
    SPI-max-frequency =<16000000>;
    Bosch、MRAM-cfg =<0x0 64 64 64 64 32 32>;
    };
    };

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

    您好、Hanc、

    我将查看您的回复、并在明天向您提供更多信息。  

    此致、
    Eric Schott

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

    您好、Hanc、

    您似乎可以使用 TCAN4550正常运行系统一段时间。 仅在运行一段时间后出现此错误。 如果是这种情况、我认为器件配置不存在固有问题。 如果是、它将与系统的其他部分有关、可能取决于接收到的数据、这会导致访问有问题的功能或存储器地址。 在此测试期间、是否有各种数据和处理事件发生? 唯一事件是否可能仅在这段可以从 TCAN4550调用特定函数或功能的延长时间后发生? 例如,如果将过滤器配置为仅在系统长时间运行后才发生的事件接收特定 ID,则可能会发生此类事件。 或者可能是一个不常发生的事件、该事件会填充 FIFO 或缓冲区、但在其溢出之前不会清除该 FIFO 或缓冲区。  

    我不是那么熟悉我们用于此器件的 Linux 库、但 MRAM 的配置看起来非常大;64个扩展 ID 滤波器、2个长度为64的 RX FIFO。 是否确定已填充所有这些滤波器元件? FIFO 元件在被 MCU 读取后是否被清除? 元素存储在 TXD/RXD FIFO 中的频率如何?  

    该 RXF0内存丢失错误听起来像是来自 MCAN 中断寄存器(16'h1050)的中断。 是否可以读取该寄存器的状态来查看是否还有其他标志可帮助确定问题的确切原因? 器件中断寄存器(16'h0820)的内容也是很好的了解。 最后、可以从模式控制寄存器(16'h0800)读取器件的当前模式和一些其他配置。 遇到错误后、请分享这些寄存器的内容。

    请告诉我您在此期间是否有任何其他问题。  

    此致、
    Eric Schott