主题中讨论的其他器件: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 数据。
请建议解决此问题。
此致、
韩文
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.
您好!
我们正在 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 数据。
请建议解决此问题。
此致、
韩文
尊敬的 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、
您似乎可以使用 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