公司以前的人體紅外感應(yīng)的產(chǎn)品功耗較高,聽說E931.96這款芯片功耗很低,所以最近我在做測試,調(diào)試了幾天,發(fā)現(xiàn)這款芯片真的挺不錯的。加上外殼之后,探測距離、靈敏度、誤觸發(fā)等測試的結(jié)果都還行,相比以前的產(chǎn)品功耗也確實低很多,目前還沒發(fā)現(xiàn)有什么問題。所以現(xiàn)在給大家分享一下這款I(lǐng)C。
一、IC介紹
E931.96是一個超低功耗運動偵測控制IC,適用于電池供電的無線運動傳感。目前最常用的PIR人體感應(yīng)傳感器檢測到人時輸出的信號都比較小,需要進行放大、濾波等處理,而E931.96其實就是一款信號處理IC。它的優(yōu)點是可以根據(jù)項目需求自由配置靈敏度,窗口檢測時間等參數(shù),而且所有的信號都是數(shù)字信號,和MCU通訊很方便。另外,它的功耗也很低,E931.96官方給的數(shù)據(jù)是3uA-5uA,PIR(人體感應(yīng)傳感器)一般是8.5uA-24uA,我實際測試stm8L101+E931+PIR最低功耗16uA,功耗確實比以前的類似的產(chǎn)品要低很多,相信以后還會有更低的。
二、引腳定義
Pin | Name | Description |
---|---|---|
1 | VSS | 供電電源負極 |
2 | INT/DOCI | 中斷輸出/數(shù)據(jù)輸出 |
3 | SERIN | 輸入,MCU接口 |
4 | VDD | 供電電源正極 |
5 | VPIR | 穩(wěn)壓器輸出電源(可以給PIR供電) |
6 | NPIRN | PIR輸入正極(接PIR信號輸出) |
7 | PIRN | PIR輸入負極 |
8 | TEST | 測試引腳,接到VSS |
三、通訊方式
通訊方式類似于單總線協(xié)議。MCU的IO口給SERIN引腳發(fā)送數(shù)據(jù)就可以配置E931。E931的INT/DOCI引腳可以作為紅外觸發(fā)的中斷腳,MCU也可以通過這個引腳讀取E931寄存器的數(shù)據(jù)。這個通訊的方式挺簡單的,我們其實只需要通過SERIN引腳配置好參數(shù),然后等待接收INT引腳的中斷就可以了。
SERIN引腳通訊的時序圖如2所示。MCU需要在SERIN引腳上產(chǎn)生一個0到1的跳變(圖2的藍色線條部分),之后跟隨數(shù)據(jù)位(0/1)。數(shù)據(jù)位的電平持續(xù)時間至少為E931.96的2個系統(tǒng)時鐘周期,1個系統(tǒng)時鐘27~35us(具體的時間參考數(shù)據(jù)手冊)。如此循環(huán)發(fā)送25個bit的數(shù)據(jù)即可完成E931的配置(配置的具體內(nèi)容在寄存器詳解)。
注:一旦數(shù)據(jù)傳輸被中斷超過16個時鐘周期,最后被接收到的數(shù)據(jù)將被鎖存到配置寄存器里面。該25位數(shù)據(jù)的傳輸不能被打斷超過15個系統(tǒng)時鐘,因為器件可能在該階段已經(jīng)將數(shù)據(jù)鎖存了。
INT/DOCI引腳輸出的中斷源可以選擇運動檢測或者ADC。若選擇運動檢測,規(guī)定的時間窗口內(nèi)達到脈沖數(shù)則觸發(fā)中斷。若選擇ADC,每512個系統(tǒng)時鐘(約14ms)將產(chǎn)生一個中斷。在MCU訪問該接口時,不會產(chǎn)生任何中斷。
INT/DOCI引腳也可以讀取E931的寄存器,INT/DOCI引腳通訊的時序圖如3所示。讀取數(shù)據(jù)的順序有固定的優(yōu)先級。INT/DOCI引腳讀取數(shù)據(jù)的順序如圖4所示。讀取時不一定要讀完40個bit,可以提前結(jié)束讀取。
四、寄存器詳解
1、配置寄存器(通過SERIN引腳配置)
Bit-No | Register | Remarks |
---|---|---|
[24:17] | [7:0]Sensitivity | 靈敏度/閾值。門限值=[寄存器值]*6.5uV |
[16:13] | [3:0]Blind Time | 盲時間。中斷清除之后,忽略運動的時間,時間=[寄存器值]*0.5s,可以防止反復(fù)觸發(fā) |
[12:11] | [1:0]Pulse Counter | 脈沖計數(shù)器。在規(guī)定的時間窗口內(nèi)達到脈沖數(shù)則觸發(fā)中斷。脈沖數(shù)=[寄存器值]+1??梢苑乐垢蓴_誤報 |
[10:9] | [1:0]Window_Time | 窗口時間。時間=[寄存器值]*4s+4s,用于噪聲干擾環(huán)境 |
[8] | [0]Motion detector Enable | 運動檢測,0:失能,1:使能 |
[7] | [0]Interrupt Source | 中斷源。0:運動檢測,1:ADC抽樣濾波,每14ms產(chǎn)生一次中斷 |
[6:5] | [1:0]ADC/Filter Voltage Source | ADC電壓源。0:PIR信號,BFP輸出,1:PIR信號,LPF輸出,2:芯片供電電壓,3:片內(nèi)溫度傳感器 |
[4] | [0]Supply Regulator Enable | 穩(wěn)壓器VREG的2.2V是否輸出。0:使能,1:失能,可以給PIR供電 |
[3] | [0]Start Sel Test | 自檢。由0變?yōu)?啟動,自檢過程需要2s |
[2] | [0]Sample capacitor | 樣本電容值。1=2*用于自檢的默認電容 |
[1:0] | [1:0]Test modes | 測試模式。保留,默認00 |
2、讀取寄存器(通過INT/DOCI引腳讀?。?/strong>
Bit-No | Register | Remarks |
---|---|---|
[39] | [0] | PIR out of range 指示,傳感器陶瓷被放電 |
[38:25] | [13:0] PIR Voltage, 6.5μV/cnt | LPF或BPF輸出,取決于配置 |
[24:17] | [7:0]Sensitivity | 靈敏度/閾值。門限值=[寄存器值]*6.5uV |
[16:13] | [3:0]Blind Time | 盲時間。中斷清除之后,忽略運動的時間,時間=[寄存器值]*0.5s,可以防止反復(fù)觸發(fā) |
[12:11] | [1:0]Pulse Counter | 脈沖計數(shù)器。在規(guī)定的時間窗口內(nèi)達到脈沖數(shù)則觸發(fā)中斷。脈沖數(shù)=[寄存器值]+1??梢苑乐垢蓴_誤報 |
[10:9] | [1:0]Window_Time | 窗口時間。時間=[寄存器值]*4s+4s,用于噪聲干擾環(huán)境 |
[8] | [0]Motion detector Enable | 運動檢測,0:失能,1:使能 |
[7] | [0]Interrupt Source | 中斷源。0:運動檢測,1:ADC抽樣濾波,每14ms產(chǎn)生一次中斷 |
[6:5] | [1:0]ADC/Filter Voltage Source | ADC電壓源。0:PIR信號,BFP輸出,1:PIR信號,LPF輸出,2:芯片供電電壓,3:片內(nèi)溫度傳感器 |
[4] | [0]Supply Regulator Enable | 穩(wěn)壓器VREG的2.2V是否輸出。0:使能,1:失能,可以給PIR供電 |
[3] | [0]Start Sel Test | 自檢。由0變?yōu)?啟動,自檢過程需要2s |
[2] | [0]Sample capacitor size | 樣本電容值。1=2*用于自檢的默認電容 |
[1] | [0]Clamp Input | 1=鉗位PIR輸出,用于快速偏置測量 |
[0] | [0]User test-modes select | 測試模式。 |
五、參考電路
關(guān)于E931的相關(guān)內(nèi)容就介紹到這里,想要驅(qū)動程序的話可以在下面的鏈接下載,如果還有什么問題,可以留言,如果文章有哪里寫的不對,歡迎指正,謝謝!
驅(qū)動程序下載:https://download.csdn.net/download/ShenZhen_zixian/12019043