DS18B20是一款常用的單線串行測溫芯片,linux內核上的w1總線可以掛接這種類型的設備,所以考慮在當前海思linux4.9內核上掛接該設備。
配置分為幾個步驟
1、內核的配置
啟用w1子模塊,也可以編譯進內核,但是考慮調試的方便性,編譯成模塊更合適一些。
在該子系統的內部,又分為兩部分,一部分是master一部分是slave,其中master部分我們當前海思的芯片上沒有硬件相關的控制器,我們是采用gpio模擬的方式,
所以也需要gpio的模塊支持。考慮應用層訪問數據的話,也需要打開Userspace communication over connector選項
master部分
slave部分
其中第一個選項里面就包含DS18B20的支持
2、設備樹的配置
根據硬件電路圖的連接,需要使用GPIO3_6
修改hi3519av100-smp-emmc.dts文件,在后面追加如下內容
&soc {
wire1@0 {
compatible = "w1-gpio";
gpios = <&gpio_chip3 6 0>;
status = "okay";
};
};
3、掛接成功后溫度的讀取
內核會周期性掃描總線,如果掃描到設備,根據設備ID,會在用戶文件系統的目錄/sys/devices/w1_bus_master1/下出現一個slave設備目錄
/sys/devices/w1_bus_master1/28-00000b19d368
其中28代表DS18B20設備,00000b19d368是芯片的id
通過讀取該目錄下的w1_slave文件,就能夠讀取到溫度
編輯:hfy
-
Linux
+關注
關注
87文章
11345瀏覽量
210406 -
DS18B20
+關注
關注
10文章
780瀏覽量
81120 -
海思
+關注
關注
43文章
466瀏覽量
116624
發布評論請先 登錄
相關推薦
評論