Other Parts Discussed in Thread: TCAN4550
器件型号: TCAN4550
分别使用 ECSPI1 和 ECSPI3 配置两个 CAN 接口 (CAN0 和 CAN1)。 两个接口都基于 ti、tcan4x5x 驱动程序 (https://github.com/nxp-imx/linux-imx/blob/lf-6.6.y/drivers/net/can/m_can/tcan4x5x-core.c)、CAN 通信通过在 CAN0CAN1 之间连续传输数据进行测试。
在长时间 CAN 流量测试期间、反复观察到以下错误:
写入:没有可用的缓冲区空间
此问题在长时间运行 CAN 接口后发生、而短时测试可以正常运行。
以下是用于 CAN0 的器件树配置(ecspi3 上的 CAN1 采用了类似的配置):
&ecspi1{/* ECSPI3:TCAN4550 CAN-FD2 */
#address-cells =<1>;
#size-cells =<0>;
FSL、spi-num-chipselects =<1>;
pinctrl-names =“default";“;
pinctrl-0 =<&pinctrl_ecspi3 &pinctrl_ecspi3_cs>;
CS-GPIO =<&GPIO5 25 GPIO_ACTIVE_LOW>;
状态=“正常“;
tcan4x5x1:tcan4x5x@0{
兼容=“ti、tcan4x5x“;
reg =<0>;
pinctrl-names =“default";“;
#address-cells =<1>;
#size-cells =<1>;
Interrupt-parent =<&GPIO1>;
中断=<15 IRQ_TYPE_LEVEL_LOW>;
SPI-max-frequency =<18000000>;
Bosch、MRAM-cfg =<0x0 3 2 12 10 0 26 1>;
Clocks =<&hclk>、<&cclk>;
时钟名称=“hclk",“,"cclk"、"cclk";“;</s>“
数据就绪 GPIO =<&GPIO1 15 GPIO_ACTIVE_HIGH>;
RESET-GPIO =<&GPIO3 20 GPIO_ACTIVE_HIGH>;
状态=“正常“;
};
};
它是否与 TCAN4550 驱动器中的 MRAM 配置、中断处理、SPI 吞吐量或 TX 队列饱和有关。
请就我们应如何向前推进提供建议。