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