傳感器應(yīng)用廣泛種類繁多,能快速配置好傳感器并加以使用無(wú)疑會(huì)幫助產(chǎn)品開發(fā)節(jié)省很多時(shí)間,在AMetal中,我們將配置傳感器壓縮成三步,每一步僅一個(gè)函數(shù),幫助工程師快速實(shí)現(xiàn)傳感器使用,本文作詳細(xì)介紹。
人們?yōu)榱藦耐饨绔@取信息,必須借助于感覺器官,而對(duì)于電子產(chǎn)品而言,傳感器就是它們的“感覺器官”。由于傳感器的種類繁多,通訊方式也不盡相同,我們使用傳感器時(shí),必須閱讀相關(guān)的手冊(cè),以獲取它的通訊方式、相關(guān)的寄存器地址以及其對(duì)應(yīng)的描述;配置使用一個(gè)傳感器,基本上一大半的時(shí)間都停留在手冊(cè)上,這對(duì)于產(chǎn)品競(jìng)爭(zhēng)愈演愈烈的時(shí)代來(lái)說(shuō),無(wú)疑有些拖后腿。
AMetal傳感器框架應(yīng)運(yùn)而生!它可以讓你在配置傳感器時(shí),告別傳感器的手冊(cè)!
本次介紹所使用的傳感器為:HTS221。HTS221是一款測(cè)量相對(duì)濕度和溫度的超緊湊型傳感器,可用I2C、SPI兩種通訊協(xié)議。它包括一個(gè)傳感元件和一個(gè)混合信號(hào)ASIC,通過(guò)數(shù)字串行接口傳輸測(cè)量信息。傳感元件由能夠檢測(cè)相對(duì)濕度變化的電容器組成,并使用專用ST工藝制造。HTS221采用HLGA封裝,如圖1所示。
圖1 HTS221封裝
HTS221提供一個(gè)DRDY引腳,該引腳輸出數(shù)據(jù)就緒信號(hào),可配置成中斷接收數(shù)據(jù),連接方式詳見圖2。
圖2 HTS221應(yīng)用電路
硬件上本次采用ZLG116N32A,使用I2C接口與HTS221通訊,該芯片為Cortex-M0內(nèi)核,具有64KB Flash/8K SRAM ,運(yùn)行主頻達(dá)48MHz,支持寬電壓輸入(2.0~5.5V),支持多路UART、SPI、I2C等外設(shè)接口,性價(jià)比相當(dāng)高。
ZLG116的I2C引腳SCL為PB6、SDA為PB7,將這兩個(gè)引腳連接到傳感器,并將DRDY連接至PIOB_0,搭建好硬件電路;我們開始分三步搞定這個(gè)傳感器。
步驟1
初始化傳感器
在AMetal中,初始化一個(gè)外設(shè)后,基本都會(huì)得到一個(gè)返回值:“handle”,這個(gè)handle中包含了該外設(shè)所有的配置信息、操作函數(shù)以及當(dāng)前狀態(tài)。
初始化HTS221的函數(shù)及內(nèi)容為:
__g_hts221_dev為HTS221設(shè)備結(jié)構(gòu)體;
__g_hts221_info為描述了與HTS221傳感器相關(guān)信息的結(jié)構(gòu)體;結(jié)構(gòu)體中僅有HTS221的DRDY引腳和HTS221的I2C從機(jī)地址:
如果客戶在硬件連接上有不一致的地方,直接在此結(jié)構(gòu)體中修改即可。
最后一個(gè)傳入?yún)?shù):I2C標(biāo)準(zhǔn)服務(wù)句柄;ZLG116的I2C初始化服務(wù)函數(shù)為am_zlg116_i2c1_inst_init(),此函數(shù)的返回值即為I2C標(biāo)準(zhǔn)服務(wù)句柄,所以在此處直接調(diào)用此函數(shù)即可。
在硬件連接一致的情況下,可直接調(diào)用HTS221初始化函數(shù)完成傳感器的初始化:
am_sensor_handle_t hts221_handle = am_sensor_hts221_inst_init (void);
步驟2
使能傳感器的通道
某些傳感器都具有兩個(gè)或兩個(gè)以上的采集功能,本次采用的HTS221就支持溫度與濕度的采集。
在AMetal中,將每個(gè)功能劃分為對(duì)應(yīng)的通道;HTS221是溫濕度傳感器,它有兩個(gè)通道,詳見圖3。
圖3 HTS221提供的通道
在使能通道前,應(yīng)該定義兩個(gè)數(shù)組,一個(gè)列舉該傳感器所有的通道,另一個(gè)用于儲(chǔ)存兩個(gè)通道數(shù)據(jù)的緩存:
然后就可以調(diào)用am_sensor_enable使能傳感器的通道了,該函數(shù)有四個(gè)傳入?yún)?shù),詳見圖4。
圖4 使能傳感器通道的函數(shù)傳入?yún)?shù)
根據(jù)之前的代碼,使能傳感器通道的函數(shù)為:
步驟3
獲取傳感器的采樣數(shù)據(jù)
從傳感器指定通道獲取采樣數(shù)據(jù)的函數(shù)為am_sensor_data_get,它的傳入?yún)?shù)應(yīng)與使能傳感器通道的傳入?yún)?shù)一致:
在調(diào)用這個(gè)函數(shù)后,傳感器的采樣數(shù)據(jù)就保存在結(jié)構(gòu)體data中,結(jié)構(gòu)體data的成員函數(shù)詳見圖5,也就是說(shuō),我們從傳感器獲取的采樣數(shù)據(jù)是帶有單位的,客戶只管使用,不用去翻閱手冊(cè)獲取數(shù)據(jù)的單位。
圖5 am_sensor_val_t結(jié)構(gòu)體說(shuō)明
最后AMetal中還提供了單位轉(zhuǎn)換函數(shù):am_sensor_val_unit_convert,該函數(shù)有三個(gè)傳入?yún)?shù),詳見圖6。
圖6 單位轉(zhuǎn)換函數(shù)傳入?yún)?shù)
其中目標(biāo)單位支持10-24~1024,基本以103為間隔,部分目標(biāo)單位如圖7所示。
圖7 部分目標(biāo)單位宏說(shuō)明
三步都已介紹完,我們看一下在AMetal中使用傳感器的完整的代碼:
可以看到在AMetal中使用傳感器所需要寫的代碼是非常非常少的,而且在配置過(guò)程中基本可以告別手冊(cè),客戶只需要做“選擇題”,選擇需要測(cè)試的通道就可以了。
-
傳感器
+關(guān)注
關(guān)注
2560文章
52158瀏覽量
761465 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4364瀏覽量
63807
原文標(biāo)題:AMetal助你三步搞定傳感器
文章出處:【微信號(hào):Zlgmcu7890,微信公眾號(hào):周立功單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
三步學(xué)會(huì)行電子焊接
holykell生產(chǎn)的HPT604投入式液位傳感器的組裝工藝流程
你和CAD大神的距離,只差這三步!
液晶電視選購(gòu)三步曲
冬季保養(yǎng)空調(diào)室內(nèi)外三步曲
只需三步,即可享受智能家居!
整流器的三步和六步PWM性能有什么區(qū)別

華秋DFM-三步搞定特性阻抗
華秋PCB-直接導(dǎo)出PDFTOPBOT層絲印一步搞定
華秋DFM-BOM坐標(biāo)Gerber,一步搞定
三菱FX3U接入MQTT平臺(tái)的三步

ES-PDS32 ES32F654評(píng)測(cè)————第三步: iDesigner的安裝體驗(yàn)

評(píng)論