单总线

以VIM1为例进行说明。

通过Overlays使能onewire驱动

编辑/boot/env.txtoverlays中添加onewire

例如:

1
overlays=uart4 pwm_ao_a pwm_f i2c0 onewire

关于overlays的详细说明可以参考如何使用device tree overlays

使用单总线

这里以单总线设备DS18B20温度传感器为例进行说明。连接传感器到单总线。

进入驱动目录:

1
2
3
khadas@Khadas:~$ cd /sys/bus/w1/devices
khadas@Khadas:/sys/bus/w1/devices$ ls
28-0119395ebf91 w1_bus_master1

可以看见ds18b20的设备节点是28-0119395ebf91。进入节点目录:

1
2
3
khadas@Khadas:/sys/bus/w1/devices$ cd 28-0119395ebf91
khadas@Khadas:/sys/bus/w1/devices/28-0119395ebf91$ ls
driver id name power subsystem uevent w1_slave

其中读取w1_slave文件就可以读取到模块的温度值:

1
2
3
khadas@Khadas:/sys/bus/w1/devices/28-0119395ebf91$ cat w1_slave 
b1 01 4b 46 7f ff 0c 10 d8 : crc=d8 YES
b1 01 4b 46 7f ff 0c 10 d8 t=27062

单总线物理引脚:

GPIOH5 - PIN37
GPIOH5 - PIN37
GPIOH6 - PIN15
GPIOT19 - PIN37