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.
您好、TI 团队、
在我们的器件中、我们使用2# TCAN4550RGYRQ1 IC 进行 CAN 通信、
通常、我们不会遇到任何通信问题。
唤醒后、我们没有接收到来自第二个 CAN 的 CAN 数据在第一个 CAN 中未观察到问题
因此,请告诉我们需要在设备树中更改的任何内容 ,
下面是绘制在设备树中的
&lpspi2{ pinctrl-names ="default"; pinctrl-0 =<&pinctrl_lpspi2> ;fsl、spi-num-chipselves = <1>;spi-max-frequency =<40000000>;cs-gpio_gpio4 22 gpio_high>; status ="oke";
tcan4x5x0:tcan4x5x@0{ compatible ="ti、tcan4x5x"; reg =<0> ;pinctrl-names ="default";#address-cells =<1>; #size-cells =<1>; SPI-max-frequency =<5000000>; Bosch、MRAM-cfg =<0x0 3 2 32 10 1 32 7>; Clocks =<&hclk>、<&cclk>; Clock-names ="hclk"、"cclk"; INTERRUPT-PARENT =<&lsio_GPIO3> ;INTERRUPT =<12 GPIO_ACTIVE_HIGH>;DATA-READ-GPIOs =<&lsio_GPIO3 12 GPIO_ACTIVE_HIGH>;RESET-GPIO=<&exp2 12 GPIO_ACTIVE_HIGH>;iW-tCAN-PROP; WAKE-SOURCE; STATUS ="确定"; }; };
&lpspi3{ pinctrl-names ="default"; pinctrl-0 =<&pinctrl_lpspi3> ;fsl、spi-num-chipselves = <1>;spi-max-frequency =<40000000>;cs-gpio_gpio0 16 gpio_high>; status ="oke";
tcan4x5x1:tcan4x5x@0{ compatible ="ti、tcan4x5x"; reg =<0> ;pinctrl-names ="default";#address-cells =<1>; #size-cells =<1>; SPI-max-frequency =<5000000>; Bosch、MRAM-cfg =<0x0 3 2 32 10 1 32 7>;//<0x0 3 2 32 10 0 26 12>;//<0x0 3 2 32 10 1 32 7 > 时钟=<&hclk> 、<&cclk>;时钟名称="hclk"、"cclk"、"cclk";<&lsio; 中断=<18 GPIO_ACTIVE_HIGH>; DATA-READ-GPIO =<&lsio_GPIO3 18 GPIO_ACTIVE_HIGH>; RESET-GPIO =<&EXP2 11 GPIO_ACTIVE_HIGH>; iW-tCAN-prop; WAKEUP-SOURCE; 状态="确定";
}; }; pinctrl_lpspi3:lpspi3grp{ fsl、pins =<
IMX8DXL_SPI3_SCK_ADMA_SPI3_SCK 0x6000040 / 0x0600004c / IMX8DXL_SPI3_SDO_ADMA_SPI3_SDO 0x6000040 IMX8DXL_SPI3_SDIM_ADMA_SPI3_SPI3_SPI3_SDI 0x6000040
发现的问题打印件
root@imx8dxl-iwg46s:~# candump can4
[MSG 12:14:54][ 310.255222] tcan4x5x spi3.0 can4: 2024年01月19日 丢失了 rxf0
[ 2024年01月19日12:14:55][ 310.952451] tcan4x5x spi3.0 can4: MSG 在 rxf0中丢失
[MSG 12:14:56][ 311.504395] tcan4x5x spi3.0 can4: 2024年01月19日 丢失 rxf0
[ 2024年01月19日12:14:56][ 311.971422] tcan4x5x spi3.0 can4: MSG 在 rxf0中丢失
我希望我们很快就能收到该问题的解决方案
谢谢
此致、
Dhiraj
尊敬的 Dhiraj:
这是一个 TCAN4550器件支持论坛、而不是 Linux 支持论坛、我的专长是 TCAN4550器件、而不是 Linux 驱动程序。 但我会努力帮你
我没有看到您的设备树配置明显有任何问题。 我确实注意到、观察到的问题打印中显示的"msg lost in rxf0"消息表明、如果您的 RX FIFO 配置为阻塞模式、则可能已满、并且不再能够接收消息。 它们也可以被配置为覆盖模式、这将导致 FIFO 中最早的未读消息被新消息写覆盖、而新消息将导致旧消息丢失。
您能解释更多关于发生了什么事吗? 我假设您是通过某种唤醒方法唤醒两个 TCAN4550器件、然后处理器会重新配置所有寄存器、再尝试发送和接收 CAN 消息。 问题是其中一个电路板按预期发送消息、但另一个电路板未发送消息。 我的理解是否正确?
可以通过监视各种状态、中断、模式配置和错误计数器寄存器来查看器件在错误发生期间的状态吗?
如果可能、我想知道发生错误时以下寄存器的值:
0x000C -状态
0x0800 -模式配置
0x0820 -器件中断
0x0824或0x1050 - MCAN 中断
0x1018 -控制寄存器
0x1040 -错误计数器寄存器
0x1044 -协议状态寄存器
0x1098 -新数据1
0x10A4 - RX FIFO 0状态
0x10B4 - RX FIFO 1状态
0x10C4 - TX FIFO/队列状态
0x10CC - TX 缓冲器请求挂起
0x10D8 -发生 TX 缓冲区添加请求传输
此致、
乔纳森