WaveshareはRaspberry Piのための素晴らしいCAN HATを作ります(参照ここ)、しかし、指示はArmbianではなくRaspberry Pi OSにのみ適用されます。 Banana Pi BPI-M2 ZeroはRaspberry Piと同じピン配置を持っていますが、Armbianを実行しています。 Armbianのオーバーレイシステムを使用してWaveshare CAN HATを設定するには?
答え1
オーバーレイはRaspberry Pi OSとArmbianで少し異なる動作をします。これを行うには、2つのことを行う必要があります。まず、SPIバスゼロを有効にする必要があります。これはファイルを編集することによって行うことができます/boot/armbianEnv.txt
。ファイルに次の2行を追加します。
overlays=spi-spidev
param_spidev_spi_bus=0
overlays=
同じ行に追加する必要があることを示す行がすでにある場合は、spi-spidev
すべてのシステムオーバーライドを同じコマンドに割り当てる必要があります。
次に、デフォルトでは、さまざまなドライバパラメータを使用しているボードの特定の実装にマッピングするDTSファイルが必要です。使ったこのファイル(以下のコピー) Waveshareが提供する特定のボードと一致しているようです。ファイル名はでなければなりません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";
};
};
};
};