發布日期:2022-10-09 點擊率:34
基于FS_S5PC100的LM75溫度傳感器驅動程序添加與測試
時間:2017-01-05作者:華清遠見
【實驗內容】
在平臺代碼中添加I2C設備LM75;
在內核配置菜單中配置溫度傳感器LM75驅動程序。編寫應用程序讀取當前溫度;
溫度傳感器芯片位于COM3下方,緊靠藍色的可調電阻旋鈕。
【實驗目的】
熟悉內核中I2C驅動的工作原理,了解sysfs接口的使用方法
【實驗平臺】
主機:Ubuntu 10.10
目標板:FS_S5PC100
目標內核版本:2.6.29
交叉編譯器版本:arm-unknown-linux-gnueabi-gcc-4.2.2
【實驗步驟】
在主機ubuntu環境下:
1、 在內核S5PC100平臺代碼中添加一個I2C設備用來描述LM75:
打開平臺代碼源文件:
$ vim (kernel_dir)/arch/arm/mach-s5pc100/mach-smdkc100.c
在結構體:
static struct platform_device *smdkc100_devices[] __initdata={
…
};
的定義后面添加如下代碼:
static struct i2c_board_info i2c_devs0[] __initdata={
{ I2C_BOARD_INFO("lm75", 0x90 >> 1 ), },
};
在函數smdkc100_machine_init中的
s3c_i2c0_set_platdata(NULL);
s3c_i2c1_set_platdata(NULL);
之后添加如下代碼:
i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
2、在內核源碼根目錄下執行:
$ make menuconfig
進入配置菜單后選擇lm75溫度傳感器的驅動程序:
Location:
-> Device Drivers
-> Hardware Monitoring support (HWMON [=y])
3、重新編譯內核
$ make zImage
4、重新燒寫或者下載內核到開發板
5、將文件夾s5pc100_lm75復制到linux環境中,如:/home/linux/test
$ cp s5pc100_lm75 /home/linux/test –a
$ cd /home/linux/test/s5pc100_lm75
6、$ arm-linux-gcc read_temp.c -o read_temp //編譯應用程序
7、$ sudo cp read_temp /source/rootfs
在開發板的串口終端控制臺下:
8、運行應用程序
#
用手捂住傳感器芯片,可以看到溫度值會持續上升:
lm75 0-0048: Starting lm75 update
Current temperature is: 27.
Current temperature is: 27.
lm75 0-0048: Starting lm75 update
Current temperature is: 28.
Current temperature is: 28.
lm75 0-0048: Starting lm75 update
Current temperature is: 29.
Current temperature is: 29.
9、閱讀驅動源碼:driver/hwmon/lm75.c,理解i2c驅動的注冊方法,lm75的工作原理以及sysfs接口的編程方法
附:
1、溫度傳感器接口原理圖
2、測試程序代碼:
#include
常見問題
信盈達培訓好不好 怎么樣
達內培訓怎么樣 求助
嵌入式和java工資多少?哪個前景較好?
3g嵌入式開發培訓總結3g工程師就業前景
html5培訓就業前景如何?
android驅動培訓需要了解哪些知識
發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
展開全文
基于FS_S5PC100的LM75溫度傳感器驅動程序添加與測試
作者:鄭老師,華清遠見嵌入式學院講師。
【實驗內容】
在平臺代碼中添加I2C設備LM75;
在內核配置菜單中配置溫度傳感器LM75驅動程序。編寫應用程序讀取當前溫度;
溫度傳感器芯片位于COM3下方,緊靠藍色的可調電阻旋鈕。
【實驗目的】
熟悉內核中I2C驅動的工作原理,了解sysfs接口的使用方法
【實驗平臺】
主機:Ubuntu 10.10
目標板:FS_S5PC100
目標內核版本:2.6.29
交叉編譯器版本:arm-unknown-linux-gnueabi-gcc-4.2.2
【實驗步驟】
在主機ubuntu環境下:
1、 在內核S5PC100平臺代碼中添加一個I2C設備用來描述LM75:
打開平臺代碼源文件:
$ vim (kernel_dir)/arch/arm/mach-s5pc100/mach-smdkc100.c
在結構體:
static struct platform_device *smdkc100_devices[] __initdata={
…
};
的定義后面添加如下代碼:
static struct i2c_board_info i2c_devs0[] __initdata={
{ I2C_BOARD_INFO("lm75", 0x90 >> 1 ), },
};
在函數smdkc100_machine_init中的
s3c_i2c0_set_platdata(NULL);
s3c_i2c1_set_platdata(NULL);
之后添加如下代碼:
i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
2、在內核源碼根目錄下執行:
$ make menuconfig
進入配置菜單后選擇lm75溫度傳感器的驅動程序:
Location:
-> Device Drivers
-> Hardware Monitoring support (HWMON [=y])
3、重新編譯內核
$ make zImage
4、重新燒寫或者下載內核到開發板
5、將文件夾s5pc100_lm75復制到linux環境中,如:/home/linux/test
$ cp s5pc100_lm75 /home/linux/test –a
$ cd /home/linux/test/s5pc100_lm75
6、$ arm-linux-gcc read_temp.c -o read_temp //編譯應用程序
7、$ sudo cp read_temp /source/rootfs
在開發板的串口終端控制臺下:
8、運行應用程序
#
用手捂住傳感器芯片,可以看到溫度值會持續上升:
lm75 0-0048: Starting lm75 update
Current temperature is: 27.
Current temperature is: 27.
lm75 0-0048: Starting lm75 update
Current temperature is: 28.
Current temperature is: 28.
lm75 0-0048: Starting lm75 update
Current temperature is: 29.
Current temperature is: 29.
9、閱讀驅動源碼:driver/hwmon/lm75.c,理解i2c驅動的注冊方法,lm75的工作原理以及sysfs接口的編程方法
附:
1、溫度傳感器接口原理圖
2、測試程序代碼:
#include
16年1.5T
故障現象:
車主開車過來檢測故障碼,發動機系統報進氣溫度傳感器電壓過高,故障碼可以清掉,但是跑一會就出來了。
故障分析:
經過測量空氣流量計插頭電源有真負極信號,說明空氣流量計有問題,但是換了還不行,怕這個空氣流量計還有問題,之前遇到過新的是壞的!于是又換了一個空氣流量計,(我還以為他和空氣流量計一體)還不行,就考慮到了有可能和進氣壓力傳感器一體,找了進氣壓力傳感器半天 ,媽的在中冷右管口上方,拆掉下中網,拔插頭測量電源,正常 ,于是發了個進氣壓力傳感器來換,解決問題
解決方案:
更換進氣壓力傳感器
免責聲明
你好,進氣溫度傳感器,肯定在發動機的進氣歧管上,一般是兩根線,有的和空氣流量計裝在一體,主要是給發動機電腦提供進氣空氣溫度信號,使模塊更精確的控制噴油!
進氣軟管上
1、氧傳感器:當氧傳感器故障時,ECU無法獲取這些信息,就不知道噴射的汽油量是否正確,而不合適的油氣空燃比會導致發動機功率降低,增加排放污染;
2、輪速傳感器:它主要是收集汽車的轉速來判斷汽車有沒有打滑的征兆,所以,就有一一個專門收集汽車輪速的傳感器來完成這項工作,一般安裝在每個車輪的輪轂上,而一旦傳感器損壞,ABS會失效;
3、水溫傳感器:當水溫傳感器故障后,往往冷車啟動時顯示的還是熱車時的溫度信號,ECU得不到正確的信號,只能供給發動機較稀薄的混合氣,所以發動機冷車不易啟動,且還會伴隨怠速運轉不穩定,加速動力不足的問題;
4、電子油門踏板位置傳感器:當傳感器失效后,ECU無法測得油門位置信號,無法獲得油門門踏板的正確位置,所以會出現發動機加速無力的現象,甚至出現發動機不能加速的情況;
5、進氣壓力傳感器:進氣壓力傳感器顧名思義就是隨著發動機不同的轉速負荷,感應一系列的電阻和壓力變化,轉換成電壓信號,供ECU修正噴油量和點火正時角度。一般安裝在節氣門邊上,假如故障了會引起點火困難、怠速不穩、加速無力等問題。
你好,進氣支管的傳感器一般都在,進氣管上面,你可以仔細的看一下一個黑色的。
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原