OrangePi-PCを使ってみる

Debian Stretchでの1 Wire通信

Debian Stretchの1Wire通信を紹介します。
使用したデバイスはDS18B20のディジタル温度計です。

1Wireの有効化はarmbian-configを使って行います。
armbian-configを起動し以下の手順で進めます。




ここでw1-gpioを有効にします。


< Save > を押して < Exit >を押すと以下のスクリーンになります。


ここで<Reboot>を選ぶとリブートします。
再起動が完了すると1Wireデバイスが使えるようになります。
デバイスのポートは以下のコマンドで調べることができます。
$ sudo cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-223, parent: platform/1c20800.pinctrl, 1c20800.pinctrl:
 gpio-15  (                    |orangepi:red:status ) out lo
 gpio-110 (                    |w1                  ) in  hi
 gpio-166 (                    |cd                  ) in  lo
 gpio-204 (                    |usb0_id_det         ) in  hi IRQ

gpiochip1: GPIOs 352-383, parent: platform/1f02c00.pinctrl, 1f02c00.pinctrl:
 gpio-354 (                    |usb0-vbus           ) out lo
 gpio-362 (                    |orangepi:green:pwr  ) out hi

回路は以下のようになります。


GPIO110(Pin#12)にDS18B20のデータラインを接続してリブートするとデバイスを認識します。
$ ls /sys/bus/w1/devices/
28-0417012b36ff  w1_bus_master1

$ cat /sys/bus/w1/devices/28-0417012b36ff/w1_slave
5b 01 4b 46 7f ff 0c 10 07 : crc=07 YES
5b 01 4b 46 7f ff 0c 10 07 t=21687

$ cat /sys/bus/w1/devices/28-0417012b36ff/w1_slave
5b 01 4b 46 7f ff 0c 10 07 : crc=07 YES
5b 01 4b 46 7f ff 0c 10 07 t=21687



/boot/armbianEnv.txt に1Wireのポートを指定すると、別のポートで1Wireデバイスが使えるようになります。
verbosity=1
logo=disabled
console=both
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
rootdev=UUID=3d863bb3-b616-4229-94e7-8c92ac95501a
rootfstype=ext4
overlays=i2c0 i2c1 i2c2 spi-spidev w1-gpio
param_w1_pin=PA14
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

上記の修正を行ったのちにリブートするとGPIO14(Pin#10)が1Wireのポートになります。
$ sudo cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-223, parent: platform/1c20800.pinctrl, 1c20800.pinctrl:
 gpio-14  (                    |w1                  ) in  lo
 gpio-15  (                    |orangepi:red:status ) out lo
 gpio-166 (                    |cd                  ) in  lo
 gpio-204 (                    |usb0_id_det         ) in  hi IRQ

gpiochip1: GPIOs 352-383, parent: platform/1f02c00.pinctrl, 1f02c00.pinctrl:
 gpio-354 (                    |usb0-vbus           ) out lo
 gpio-362 (                    |orangepi:green:pwr  ) out hi


次回はオンボード上にあるIR(赤外線)受信機の使い方を紹介 しま す。