SHT3x-DIS是Sensirion新一代的溫濕度傳感器,精度為±2%RH和±0.3℃,輸入電壓范圍從2.4V到5.5V,采用IIC總線接口,速率可達1MHz。測量溫濕度范圍分別為是-40℃ ~ 125℃和0 ~ 100%。
一、電路組成
從下圖可以看到SHT3x內(nèi)部集成了濕度傳感器和溫度傳感器,通過ADC采樣輸入到數(shù)據(jù)處理和線性化單元,同時帶有校正儲存器,處理環(huán)境對器件測量的影響。通過數(shù)字接口IIC讀取數(shù)據(jù)。帶警報引腳,可通過修改寄存器的值設定閾值,當測量的溫濕度超過閾值時它會被置位。
引腳分布如下,1和4號腳是IIC總線接口;2號腳是決定地址的引腳,當ADDR接VSS時芯片地址為0x44,接VCC時芯片地址為0x45;3號腳警報引腳(當不使用時浮空),當溫濕度超過設定的閾值則該腳會被置位;5號和8號腳是電源引腳;6號引腳是復位引腳(當不使用時接VDD),低電平有效;7號腳是為了封裝而保留的引腳。
下圖是設備地址分配情況。
典型電路如下,由于SCL和SDA為開漏輸出,驅動能力不足,需要接上拉電阻。VDD和VSS之間接一個小電容濾除高頻雜波,另外nRESET和ALERT根據(jù)情況進行選擇,若不需要使用,nRESET接高電平,ALERT浮空。Die Pad接地即可。
二、通訊指令說明
寫好IIC驅動程序后,便可以開始和SHT3x進行通訊了,下面是SHT3x的所有指令說明。
(一)、單次獲取數(shù)據(jù)指令
單次獲取數(shù)據(jù)指令的詳細數(shù)據(jù)格式如下圖。首先從表格最上面開始,Repeatability指的是重復性,Clock Stretching指的是時鐘延伸,它們的作用下面再講述。數(shù)據(jù)流動過程如下:
1,發(fā)送起始信號以及由高7位的器件地址和最低位的寫信號(WR=0) 組成的一字節(jié)地址,等待應答信號。(注意地址位于高7位,所以傳址的時候需要將地址左移一位并加上讀1/寫0信號,如ADDR<<1 | WR)2,發(fā)送指令的高字節(jié)并等待應答信號。3,發(fā)送指令的低字節(jié)并等待應答信號,之后發(fā)送停止信號。4,等待一段時間(測量正在進行)。5,發(fā)送起始信號以及由高7位的器件地址和最低位的讀信號(RD=1) 組成的一字節(jié)地址,然后根據(jù)選擇的Clock Stretching從兩個方向選擇。假如失能了時鐘延長功能,則等待非應答信號,發(fā)送停止信號,延遲一段時間(這步很重要??!延遲時間大約為50ms左右)等待轉換結束,然后發(fā)送八位的應答信號并等待應答信號,之后便是逐字節(jié)分別讀取溫度和濕度的高字節(jié)、低字節(jié)以及CRC校驗字節(jié),每字節(jié)接收完都要發(fā)送應答信號,最后發(fā)送停止信號即可。而如果使能了是時鐘延長功能,則總線的SCL由SHT3x控制,我們只需要通過while(SCL==0)阻塞程序,等待其釋放總線然后MCU讀取數(shù)據(jù)即可。
(二)、周期獲取數(shù)據(jù)指令
周期獲取數(shù)據(jù)指令的詳細數(shù)據(jù)格式如下圖。周期獲取數(shù)據(jù)需要先配置讀取模式然后再進行讀取。
1、配置模式
周期讀取數(shù)據(jù)的配置主要是配置重復性和每秒測量次數(shù)。數(shù)據(jù)發(fā)送的方式同上。
2、讀取數(shù)據(jù)
讀取的步驟和上述單次讀取數(shù)據(jù)指令的流程類似,下面大概說一下。
發(fā)送起始信號,發(fā)送寫地址,等待應答信號,注意如果傳感器沒有測量完,它只會返回非應答信號。發(fā)送16位命令0xE000。讀取初始數(shù)據(jù)。
(三)、加快響應時間指令
加快響應時間指令,用于周期讀取數(shù)據(jù)指令,開啟后傳感器開始采集頻率為4Hz的數(shù)據(jù)。它的使用方法跟上述配置模式相同,在讀取之前配置好就可以了。
發(fā)送起始信號,發(fā)送寫地址,等待應答信號。發(fā)送16位命令0x2B32,等待應答信號。接著繼續(xù)配置或者讀取數(shù)據(jù)。
(四)、停止周期讀取數(shù)據(jù)指令
停止周期讀取數(shù)據(jù)指令,有時為了實現(xiàn)低功耗或暫時不需要傳感器測量數(shù)據(jù),可以通過該指令進行關閉。
發(fā)送起始信號,發(fā)送寫地址,等待應答信號。發(fā)送16位命令0x3093,等待應答信號,發(fā)送停止信號。
(五)、復位
復位(RESET)的方式有很多種。
1、IIC接口復位
當通訊設備丟失時,在接下來的信號序列將會復位串口接口,此序列僅重置接口。狀態(tài)寄存器保留其內(nèi)容。SDA線置位,翻轉SCL線的電平9次以上。接下來必須在下一個命令之前執(zhí)行傳輸開始序列。
2、軟復位/重新初始化
軟復位/重新初始化的指令格式如下。
發(fā)送起始信號,發(fā)送寫地址,等待應答信號。發(fā)送16位命令0x30A2,等待應答信號,發(fā)送停止信號。
3、一般呼叫復位指令
發(fā)送起始信號,發(fā)送通用呼叫地址0x00,等待應答信號。發(fā)送第二個字節(jié)0x06,等待應答信號。
4、通過nRESET引腳復位
拉低nRESET引腳的電平(至少350ns)將會產(chǎn)生硬復位信號重置傳感器。
5、硬復位
重新上電。
(六)、加熱器開啟/關閉指令
該指令的用法同上,至于該加熱器的作用是什么我也不清楚,明明是測溫用的還要加熱?!大概是想在溫度很低的環(huán)境但想要它還能正常工作所以才設置這功能吧。
(七)、讀取狀態(tài)寄存器
狀態(tài)寄存器包含有關加熱器運行狀態(tài)、警報模式以及最后一個命令的執(zhí)行狀態(tài)和最后一個寫序列的信息。
發(fā)送起始信號,發(fā)送寫地址,發(fā)送16位命令。發(fā)送起始信號,發(fā)送讀地址,依次接收狀態(tài)寄存器的高字節(jié)、低字節(jié)和CRC校驗,每次接收都需要發(fā)送應答信號,直到接收的最后一個字節(jié)發(fā)送非應答信號,發(fā)送停止信號。狀態(tài)寄存器每一位代表的含義如下所示。
我們試一下讀取狀態(tài)寄存器看返回什么??梢园l(fā)現(xiàn)二進制數(shù)1000 0000 0001 0000 1110 0001都為上面表格的默認值,至于CRC校驗要根據(jù)給定公式對前兩字節(jié)進行計算和比較。下面來講CRC校驗。
(八)、CRC校驗
循環(huán)冗余校驗(CRC)其實就是一種異或計算(模2運算)。獲取的CRC校驗碼就是模2運算后的余數(shù)。
(九)、轉換溫濕度數(shù)據(jù)
由于從傳感器獲取到的數(shù)據(jù)不是最終的溫濕度,所以我們需要根據(jù)公式進行轉換,轉換公式如下,在計算之前我們要對溫濕度數(shù)據(jù)進行整合。
-
傳感器
+關注
關注
2566文章
53008瀏覽量
767635 -
驅動
+關注
關注
12文章
1918瀏覽量
86950 -
DIS
+關注
關注
0文章
17瀏覽量
16647
發(fā)布評論請先 登錄
SHT3x系列溫濕度傳感器的驅動設計與實現(xiàn)

SHT2x系列溫濕度傳感器的驅動設計與實現(xiàn)

SHT1x系列溫濕度傳感器的驅動設計與實現(xiàn)

基于單片機的SHT11的溫濕度監(jiān)測
STM32+SHT11測溫濕度,輸出顯示0
stm32 iic收不到器件應答溫,傳感器是sht3x-dis
ISO/DIS 9000:2000質(zhì)量管理體系的要求詳解
SHT1x/SHT7x數(shù)字溫濕度傳感器
STM32F1 & SHT3x溫濕度模塊

可編程USB轉串口適配器開發(fā)板

SHT3x-DIS溫濕度傳感器數(shù)據(jù)手冊
數(shù)字溫濕度傳感器技術手冊SHT1x(SHT10SHT11SHT15)

評論