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-Q1:TCAN4550-Q1发送和接收问题

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/935743/tcan4550-q1-tcan4550-q1-sending-and-receiving-issue

器件型号:TCAN4550-Q1
主题中讨论的其他器件:TCAN4550、TCAN4550EVM

TCAN4550用于客户的项目。客户当前的软件环境是 Linux 系统。

客户在 Linux 5.8中找到 TCAN4550的驱动程序。 他们希望在 Linux4.14中应用此驱动器。 有几个问题:

(1)由芯片模拟的 CAN 接口用作主动发送接口、运行测试程序、运行其他 CAN 接口进行通信测试、并显示以下错误日志:

[2324.775233] tcan4x5x spi0.0 CAN2:出现消息 RAM 访问故障

[2324.799359] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

发送 id:0x10118f,成功大小:16[2325.758701] tcan4x5x spi0.0 CAN2:CAN_PLOT_ECHO_skb:错误! ECHO_skb 为 o!

 

[2325.771304] tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG

[2325.776120] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

[2325.783622] tcan4x5x spi0.0 CAN2:错误记录溢出

[2325.788947] tcan4x5x spi0.0 CAN2:位错误未更正

[2325.794184] tcan4x5x spi0.0 CAN2:已更正位错误

[2325.799249] tcan4x5x spi0.0 CAN2:达到超时

[2325.803966] tcan4x5x spi0.0 CAN2:出现消息 RAM 访问故障

发送时、它设置为在1秒内发送一个数据包。 在测试中、我看到接口非常不稳定。 有时、在成功发送几个数据包后会出现错误消息、有时在发送数十个数据包后会出现错误消息、显示超时和位错误。 一段时间后,发送停止并退出,退出错误显示时没有发送空间。

(2)芯片模拟的 CAN 接口用作接收接口、运行测试程序和其他 CAN 接口进行通信测试、并显示以下错误日志:

[2227.070794] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

[2227.122134] tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG

[2227.159848] tcan4x5x spi0.0 CAN2:错误记录溢出

[2227.165178] tcan4x5x spi0.0 CAN2:已更正位错误

[2227.179778] tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG

[2227.861403] tcan4x5x spi0.0 CAN2:错误记录溢出

[2227.910141] tcan4x5x spi0.0 CAN2:位错误未更正

[2227.915388] tcan4x5x spi0.0 CAN2:已更正位错误

[2227.920461] tcan4x5x spi0.0 CAN2:达到超时

[2227.979157] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

[2227.999612] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

[2228.011034] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

[2228.049773] tcan4x5x spi0.0 CAN2:由于缺少就绪信号而导致的消息 RAM 看门狗事件

[2228.102673] tcan4x5x spi0.0 CAN2:在 rxf0中丢失 MSG

[2228.107490] tcan4x5x spi0.0 CAN2:错误记录溢出

[2228.112811] tcan4x5x spi0.0 CAN2:位错误未更正

[2228.118051] tcan4x5x spi0.0 CAN2:出现消息 RAM 访问故障

从日志信息中、您可以看到一些位错误和看门狗超时问题、 但是、尽管存在错误、但之后发送的数据包仍然可以接收(数据的内容可能是错误的)、经过一段时间后、接收端不会打印任何消息(表示没有接收到数据包)、 然后主终端的发送也会终止。 错误消息与以前相同、没有发送消息的空间。

有关发送和接收的完整信息可在附件中找到、我们期待您的回复。

e2e.ti.com/.../receive_2D00_log.txt

e2e.ti.com/.../sent_2D00_log.txt

此致

郭松珍

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

    松镇

    感谢您的关注、我能不能问客户使用 TCAN4550-Q1的应用是什么类型? 客户是否看过《TCAN4550-Q1软件用户指南》? 如果不是、 这里 是指向它的链接。

    从发送端和接收端的日志信息可以看到 MRAM 配置不正确、RX FIFO 也不正确。 在配置之前、客户是否将整个 MRAM 空间归零? 是否可以共享客户的 RX 和 TX FIFO/缓冲器配置?

    您能详细介绍一下测试环境吗? 我看到您在传输案例中提到、运行了测试程序、运行了其他 CAN 接口以进行通信测试。 这是否意味着与 TCAN4550-Q1一起启动测试的总线上有多个 CAN 节点?

    此致、

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

    尊敬的 Eric:

    非常感谢您的帮助。 以下是更新:

    当前项目是关于 DMS (驾驶员监控系统)。 由于主处理器缺少 CAN 通信接口、因此 需要在 CAN 和 SPI 之间使用转换器。

    2.对于 TCAN4550-Q1软件用户手册文档、客户下载并阅读。 该文档包含 MCU 的示例代码。 但客户使用 Linux 系统来操作芯片。 因此、客户的第一项任务是在 Linux 下实施操作(自行实施)。

    当客户在 Linux 中移植 TCAN4550-Q1的驱动程序时、他们会搜索驱动程序代码、因为他们使用的内核版本是4.14、所以不支持 TCAN4550-Q1的驱动程序。 最后、他们发现 Linux 5.8内核代码支持 TCAN4550-Q1。 代码 URL 如下所示: https://elixir.bootlin.com/linux/latest/source/drivers/net/can/m_can

    然后、客户移植4.14版本内核中显示的文件、对于器件修改、客户参考此链接上的信息:https://e2e.ti.com/support/interface/f/138/p/855657/3166742

    客户的主平台是 IMX8、因此 本节中的此器件也是参考以下网站编写的:https://community.nxp.com/t5/i-MX-Processors/IMX6ULL-TCAN4550-Bringup-issue/m-p/1012753

    最终的器件树信息如下:

    ecspi1{(&E)

                      FSL、SPI-num-chipsects=<1>;

     

                      pinctrl-names ="default";

     

                      pinctrl-0 =<&pinctrl_ecspi1_1>;

     

                      CS-GPIO =<&GPIO4 26 0>;

     

                     状态="正常";

    tcan4x5x:tcan4x5x@0{

                      兼容="ti、tcan4x5x";

                      reg =<0>;

                      #address-cells =<1>;

                      大小单元格=<1>;

                      SPI-max-frequency =<5000000>;

                      Bosch、MRAM-cfg =<0x0 0 0 32 0 1 1>;

                      interrupt-parent =<&GPIO1>;

                      中断=<23 GPIO_ACTIVE_LOW_>;

                      RESET-GPIO =<&GPIO1 22 GPIO_ACTIVE_LOW>;

     };

    };

     您所讨论的 MRAM 未配置。 在配置树中、MRAN 配置被突出显示。 您能否检查配置?

    目前、客户正在使用 TCAN4550EVM 和 IMX8 EVM。   这两个器件之间有 SPI 总线和 CAN 总线。 测试环境如下所示:

    客户在 imx8 EVM 上运行两个任务、一个是任务发送、另一个是任务接收、它是数据循环。 有两个 CAN 节点、一个在 IMX8上、另一个在 TCAN4550-Q1 EVM 上。

    您能给我们一些建议吗? 此案例对客户而言非常紧急。 如果您想了解任何其他信息、请随时与我联系。 谢谢。

     

    此致

    Sognzhen

     

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

    松镇

    很抱歉对此没有答复。  

    客户使用的配置是针对32个 RX FIFO 0元素、1个 TX 事件 FIFO 和1个 TX 缓冲器、这是目的吗? 配置的元件尺寸是多少? 根据客户收到的错误消息、新消息似乎被阻止、因为 FIFO 已满、未被读出、或者元件的大小未正确分配给消息大小。

    此外、未校正的位错误是 CAN 传输前未清除存储器的结果。 存储器空间中的剩余数据可能会阻止消息被接收。 客户能否将所有0写入 RX FIFO 以清除可能存在的任何旧数据并占用元件?

    此致、