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.

[参考译文] TCAN4550EVM:TCAN4550EVM Linux DTS 覆盖问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1437379/tcan4550evm-tcan4550evm-linux-dts-overlay-problem

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

工具与软件:

尊敬的德州仪器支持团队:

我在使用时遇到困难 TCAN4550 、使用 Raspberry Pi 4B。 我们之前遇到过引用 A 的帖子 DTS 重叠 ,我们试图没有成功。 此帖子可在此处找到: 链接、供您参考

当 DTS 编译成功时、我们无法配置该can0接口。 我们已验证与 TCAN 的 SPI 通信是否成功。 对于内核配置、我们正在处理一个自定义构建、其中我们启用了 CAN 的所有相关配置条目(例如、M_CAN、M_CAN_TCAN4X5X 等)。

是否存在我们可能忽略的任何步骤?

感谢你的帮助。
此致!
Mattia

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

    您好、Mattia、

    很抱歉听到您遇到困难。  很遗憾、我不是 Linux 专家、我的专长是 TCAN4550器件级寄存器配置和物理层属性。  在您引用的帖子中创建我要与之通信的驱动程序的 Linux 开发人员也不再与公司合作、此驱动程序已上传到 Linux 内核中、并且现在 Linux 社区已提供多年的支持。

    TCAN4x5x 驱动程序本质上是一个围绕已在 Linux 中用于处理定制 SPI 寄存器读取/写入接口的 MCAN 驱动程序的包装器。  我认为 CAN0接口实际上是 MCAN 驱动程序的一部分。

    我真的没有任何具体信息来分享您特别需要遵循或可能错过的步骤、因此建议尝试找到一个更面向 Linux 或 Raspberry Pi 的论坛、其中有更多基于 Linux 的专家可以提供帮助。  

    由于您已建立 SPI 通信、因此如果您有任何与器件寄存器相关的问题、无论现在还是将来、我都愿意为您提供帮助。

    此致、

    Jonathan

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

    Jonathan、您好!

    感谢您的答复。 我们设法找出了错误并解决了我们的问题!

    这是我们为通过can0接口使用 TCAN4x5x 而编译的 RaspberryPi 4B 覆盖文件:

    # tcan4x5x-overlay.dts

    /dts-v1/;
    /plugin/;

    / {
        compatible = "brcm,bcm2711";

        fragment@0 {
            target = <&spidev0>;
            __overlay__ {
                status = "disabled";
            };
        };


        fragment@1 {
            target = <&spi0>;
            __overlay__ {
                /* needed to avoid dtc warning */
                #address-cells = <1>;
                #size-cells = <0>;
                tcan4x5x: tcan4x5x@0 {
                    compatible = "ti,tcan4x5x";
                    reg = <0>;
                    spi-max-frequency = <10000000>;
                    bosch,mram-cfg = <0x0 30 0 7 7 0 10 10>;                
                    interrupt-parent = <&gpio>;
                    interrupts = <25 0x2>;
                    wakeup-source;
                };
            };
        };

    };

    编译并安装:

    dtc -@ -I dts -O dtb -o tcan4x5x-overlay.dtbo tcan4x5x-overlay.dts

    sudo cp tcan4x5x-overlay.dtbo /boot/firmware/overlays/

    然后、我们在/boot/firmware/config.txt 中添加了以下行:

    dtparam=spi=on
    dtoverlay=spi-bcm2711
    dtoverlay=tcan4x5x-overlay

    重新启动、ifconfig CAN0应显示该接口!

    希望这对将来的人有所帮助

    Mattia

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

    嗨、Mattia、

    很高兴听到您能够解决您的问题、非常感谢您将解决方案发布回此论坛。  我也希望它将有助于其他人在今后寻求对同一问题的答案。

    此致、

    Jonathan

x 出现错误。请重试或与管理员联系。