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
が、これでまだ出てこない。
menuconfigで、
/dev/spidev1.0 が出てきた。
これでSPI使えるんだと思う。
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;
};
dtsをいじってdtbを作り直した。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>;
};
};
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0>;
spi-max-frequency = <10000000>;
};
};
が、これでまだ出てこない。
menuconfigで、
Device Drivers --->
[*] SPI support --->
<*> User mode SPI device driver support
↑ここチェックしないとダメみたい。[*] SPI support --->
<*> User mode SPI device driver support
/dev/spidev1.0 が出てきた。
これでSPI使えるんだと思う。
だが、SPI使うとGPIOが4本減る・・・
Orange PiじゃなくてESP32とか使うのが賢い気がするが、ソフト作る難易度高くなるしまずはOrange Piでいいかな・・・
Orange PiじゃなくてESP32とか使うのが賢い気がするが、ソフト作る難易度高くなるしまずはOrange Piでいいかな・・・