FL2440添加DS18B20驱动
来源:互联网 发布:windows日志服务器 编辑:程序博客网 时间:2024/06/05 10:33
FL2440添加DS18B20驱动
linux内核对于各种外设支持非常好,内核已经集成了大部分驱动,DS18B20属于单总线设备,在内核的驱动代码目录(drivers/w1/)下有专门的单总线设备驱动,我们只需要对其稍作修改就能使用。
Dallas 1-wires是Dallas公司的单总线设备,DS18B20(温湿度传感器)就是其中最具代表的设备,只用一根总线与cpu进行通信并且实现数据传输。具有体积小、适用电压宽、经济灵活的特点。它内部使用了onboard专利技术,全部传感元件及转换电路集成在一个形如三极管的集成电路内。DS18B20有电源线、地线及数据线3根引脚线,工作电压范围为3~5.5 V,支持单总线接口。
在mach-smdk2440.c中添加对设备DS18B20的支持
在 arch/arm/mach-s3c2440/mach-smdk2440.c文件中添加以下代码
下面是添加DS18B20支持后的patch文件
--- ../linux-3.0.1/arch/arm/mach-s3c2440/mach-smdk2440.c 2011-08-05 12:59:21.000000000 +0800+++ arch/arm/mach-s3c2440/mach-smdk2440.c 2017-04-23 13:42:37.177734860 +0800 @@ -13,6 +13,9 @@ * */+#include <linux/gpio.h>+#include <linux/w1-gpio.h>@@ -102,6 +161,35 @@ } };+/* DS18B20 added by liwanneng 2017-4-23 13:12:47 */+static void w1_enable_external_pullup(int enable) +{+ if(enable) + {+ s3c_gpio_setpull(S3C2410_GPG(0), S3C_GPIO_PULL_UP); + }+ else+ {+ s3c_gpio_setpull(S3C2410_GPG(0), S3C_GPIO_PULL_NONE); + }+}++static struct w1_gpio_platform_data ds18b20_w1_gpio = {+ .pin = S3C2410_GPG(0),+ .is_open_drain = 0, + .enable_external_pullup = w1_enable_external_pullup, +};+static struct platform_device s3c_ds18b20_device = {+ .name = "w1-gpio", + .id = -1,+ .dev = {+ .platform_data = &ds18b20_w1_gpio,+ },+};@@ -146,29 +234,90 @@ .gpdup_mask = 0xffffffff, #endifstatic struct platform_device *smdk2440_devices[] __initdata = { &s3c_device_ohci, &s3c_device_lcd, &s3c_device_wdt, &s3c_device_i2c0, &s3c_device_iis, &s3c_device_dm9000,+ &s3c_ds18b20_device,/*add ds18b20 device by liwanneng*/ &s3c_device_sdi,/* suport SD card device,Add by liwannneg 2017-4-16 12:38:35 */#ifdef CONFIG_KEYBOARD_GPIO &s3c2440_button_device,/* add fl2440 button to kernel by liwanneng 2017-4-20 15:19:21 */#endif };
添加mak menuocnfig 配置
Device Drivers ---> <*> Dallas's 1-wire support ---> [*] Userspace communication over connector 1-wire Bus Masters ---> <*> GPIO 1-wire busmaster 1-wire Slaves ---> <*> Thermal family implementation
重新编译内核&测试驱动
完成以上修改配置之后,重新编译内核并且烧录到开发板。启动后在/sys/devices/w1 bus master/28-031604d3fcff目录下可以看到有 一个w1_slave文件,该文件保存了采集到的温湿度数据。
0 0
- FL2440添加DS18B20驱动
- FL2440添加DS18B20驱动
- fl2440——DS18B20 驱动编写
- s3c2440添加ds18b20驱动
- fl2440添加USB驱动
- arm+linux fl2440 ds18b20 温度传感器驱动编写及测试
- FL2440—基于platform 模型的DS18B20驱动实例
- FL2440—基于platform 模型的DS18B20驱动实例
- fl2440添加SD卡驱动
- Fl2440内核添加DM9000网卡驱动
- FL2440添加自带led驱动
- fl2440 添加 eeprom驱动,并测试
- FL2440驱动添加(1):hello world 驱动模块添加
- FL2440驱动添加(3)LCD驱动添加学习笔记
- DS18B20驱动
- DS18B20 驱动
- DS18B20驱动
- DS18B20驱动
- css初始化
- keil5在原有工程上修改工程名
- Android 监听 WiFi 开关状态
- java组合排序
- springboot如何接入dubbo
- FL2440添加DS18B20驱动
- Lucene4.4.0几种分词方法
- Java进阶(五)Junit测试
- Ajax网络请求基本用法
- 当在一个方法中需要返回多个参数时的做法
- 遍历显示时一行白色一行灰色效果
- JQuery中$.ajax()方法参数详解
- notepad++设置tab为4个空格
- 【多媒体封装格式详解】---MKV【2】