Waveshare为Raspberry Pi (见这里)制作了一个很棒的罐头帽子,但是这些指令只适用于Raspberry Pi操作系统,而不是针对Armbian。Banana Pi BPI-M2 Zero具有与Raspberry Pi相同的引脚头布局,但运行Armbian。如何使用Armbian的覆盖系统来设置Waveshare CAN帽子?
发布于 2023-04-10 01:38:47
覆盖在Armbian上的工作方式与在Raspberry Pi操作系统上略有不同。要做到这一点,你需要两件事。首先,您需要启用SPI总线零。这可以通过编辑文件/boot/armbianEnv.txt来完成。将以下两行添加到文件中:
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文件的内容如下:
/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";
};
};
};
};https://unix.stackexchange.com/questions/742424
复制相似问题