ジャンル不定の日記です。

Orange Pi Zeroのspidev

Orange Pi Zeroで制御する感じで3Dプリンタ作ろうといろいろ勉強中だが、
3Dプリンタのホットエンドにはサーミスタがついてて温度によってヒーターのON/OFFを制御しなきゃならない。
サーミスタで温度を取得するのにADコンバータが要るが、Orange Pi Zeroには付いてない。
Raspberry Piでサーミスタ使う情報だと外部のSPI接続のADコンバータを使ってた。

まあそんな感じでSPI接続のADコンバータ使うことになるのかなと思うが、手元のOrange Piではspidevが出てなかった。

Buildrootのパッチ参考に、
sun8i-h2-plus-orangepi-zero.dts
    aliases {
        serial0 = &uart0;
        /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
        ethernet0 = &emac;
        ethernet1 = &xr819;
        spi0 = &spi0;
        spi1 = &spi1;
    };

&spi1 {
    status = "okay";

    spidev@0 {
        compatible = "rohm,dh2228fv";
        reg = <0>;
        spi-max-frequency = <10000000>;
    };
};
dtsをいじってdtbを作り直した。
が、これでまだ出てこない。

menuconfigで、
Device Drivers  --->
  [*] SPI support  --->
    <*>   User mode SPI device driver support
↑ここチェックしないとダメみたい。

/dev/spidev1.0 が出てきた。
これでSPI使えるんだと思う。

だが、SPI使うとGPIOが4本減る・・・
Orange PiじゃなくてESP32とか使うのが賢い気がするが、ソフト作る難易度高くなるしまずはOrange Piでいいかな・・・