首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在香蕉Pi BPI-M2零上工作的分波器可以帽子

在香蕉Pi BPI-M2零上工作的分波器可以帽子
EN

Unix & Linux用户
提问于 2023-04-10 01:38:47
回答 1查看 165关注 0票数 1

Waveshare为Raspberry Pi (见这里)制作了一个很棒的罐头帽子,但是这些指令只适用于Raspberry Pi操作系统,而不是针对Armbian。Banana Pi BPI-M2 Zero具有与Raspberry Pi相同的引脚头布局,但运行Armbian。如何使用Armbian的覆盖系统来设置Waveshare CAN帽子?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2023-04-10 01:38:47

覆盖在Armbian上的工作方式与在Raspberry Pi操作系统上略有不同。要做到这一点,你需要两件事。首先,您需要启用SPI总线零。这可以通过编辑文件/boot/armbianEnv.txt来完成。将以下两行添加到文件中:

代码语言:javascript
复制
overlays=spi-spidev
param_spidev_spi_bus=0

如果已经有一行表示overlays=,则需要将spi-spidev添加到同一行,因为所有的系统覆盖都必须在同一个命令中指定。

接下来,您需要一个DTS文件,该文件本质上将各种驱动程序参数映射到您正在处理的板上的特定实现。我使用了这个文件 (复制如下),这似乎符合具体的董事会,波形共享船。该文件应该命名为spi-mcp251x.dts。可以使用命令armbian-add-overlay spi-mcp251x.dts编译和安装该文件,该命令还会将其添加到/boot/armbianEnv.txt中。然后,在重新启动时,您应该有一个工作的CAN驱动器!

spi-mcp251x.dts文件的内容如下:

代码语言:javascript
复制
/dts-v1/;
/plugin/;

/ {
    compatible = "allwinner,sun4i-a10", "allwinner,sun7i-a20", "allwinner,sun8i-h3", "allwinner,sun50i-a64", "allwinner,sun50i-h5";
    fragment@0 {
        target-path = "/clocks";
        __overlay__ {
            #address-cells = <1>;
            #size-cells = <1>;
            can0_osc_fixed: can0_osc_fixed {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency  = <12000000>;
            };
        };
    };

    fragment@1 {
        target = <&pio>;
        __overlay__ {
            can0_pin_irq: can0_pin_irq {
                pins = "PA2";
                function = "irq";
                bias-pull-up;
            };
        };
    };

    fragment@2 {
        target = <&spi0>;
        __overlay__ {
            #address-cells = <1>;
            #size-cells = <0>;
            status = "okay";
            mcp2515 {
                reg = <0>;
                compatible = "microchip,mcp2515";
                pinctrl-names = "default";
                pinctrl-0 = <&can0_pin_irq>;
                spi-max-frequency = <2000000>;
                interrupt-parent = <&pio>;
                interrupts = <0 2 8>; /* PA2 IRQ_TYPE_LEVEL_LOW */
                clocks = <&can0_osc_fixed>;
                status = "okay";
            };
        };
    };
};
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/742424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档