海思linux内核,基于海思linux4.9内核的DS18B20温度芯片测量温度

DS18B20是一款常用的单线串行测温芯片,linux内核上的w1总线可以挂接这种类型的设备,所以考虑在当前海思linux4.9内核上挂接该设备。

配置分为几个步骤

1、内核的配置

启用w1子模块,也可以编译进内核,但是考虑调试的方便性,编译成模块更合适一些。

eab099909df154ad9887a65b7c5816e9.png

在该子系统的内部,又分为两部分,一部分是master一部分是slave,其中master部分我们当前海思的芯片上没有硬件相关的控制器,我们是采用gpio模拟的方式,

所以也需要gpio的模块支持。考虑应用层访问数据的话,也需要打开Userspace communication over connector选项

d34a2620a68f2e145cb6c3b5f06569ba.png

master部分

c8cd0987776c1e799c58fb626922547d.png

slave部分

f52abf2a9d6fc4f93f324db66c6bf81e.png

其中第一个选项里面就包含DS18B20的支持

2、设备树的配置

根据硬件电路图的连接,需要使用GPIO3_6

275e3b9c56ade4c3adc24e7c1b3c484a.png

修改hi3519av100-smp-emmc.dts文件,在后面追加如下内容

&soc {

wire1@0 {

compatible = "w1-gpio";

gpios = ;

status = "okay";

};

};

3、挂接成功后温度的读取

内核会周期性扫描总线,如果扫描到设备,根据设备ID,会在用户文件系统的目录/sys/devices/w1_bus_master1/下出现一个slave设备目录

/sys/devices/w1_bus_master1/28-00000b19d368

其中28代表DS18B20设备,00000b19d368是芯片的id

通过读取该目录下的w1_slave文件,就能够读取到温度

ba2646eddc10bf8f496624a2837175d5.png

编辑:hfy

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值