0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SHT3x-DIS驱动及应用详解

撞上电子 2024-01-03 08:01 次阅读

SHT3x-DIS是Sensirion新一代的温湿度传感器,精度为±2%RH和±0.3℃,输入电压范围从2.4V到5.5V,采用IIC总线接口,速率可达1MHz。测量温湿度范围分别为是-40℃ ~ 125℃和0 ~ 100%。

一、电路组成

从下图可以看到SHT3x内部集成了湿度传感器和温度传感器,通过ADC采样输入到数据处理和线性化单元,同时带有校正储存器,处理环境对器件测量的影响。通过数字接口IIC读取数据。带警报引脚,可通过修改寄存器的值设定阈值,当测量的温湿度超过阈值时它会被置位。

2c05cd64-a9cb-11ee-9ee2-92fbcf53809c.png

引脚分布如下,1和4号脚是IIC总线接口;2号脚是决定地址的引脚,当ADDR接VSS时芯片地址为0x44,接VCC时芯片地址为0x45;3号脚警报引脚(当不使用时浮空),当温湿度超过设定的阈值则该脚会被置位;5号和8号脚是电源引脚;6号引脚是复位引脚(当不使用时接VDD),低电平有效;7号脚是为了封装而保留的引脚。

2c186398-a9cb-11ee-9ee2-92fbcf53809c.png

下图是设备地址分配情况。

2c2f891a-a9cb-11ee-9ee2-92fbcf53809c.png

典型电路如下,由于SCL和SDA为开漏输出,驱动能力不足,需要接上拉电阻。VDD和VSS之间接一个小电容滤除高频杂波,另外nRESET和ALERT根据情况进行选择,若不需要使用,nRESET接高电平,ALERT浮空。Die Pad接地即可。

2c3e257e-a9cb-11ee-9ee2-92fbcf53809c.png

二、通讯指令说明

写好IIC驱动程序后,便可以开始和SHT3x进行通讯了,下面是SHT3x的所有指令说明。

(一)、单次获取数据指令

单次获取数据指令的详细数据格式如下图。首先从表格最上面开始,Repeatability指的是重复性,Clock Stretching指的是时钟延伸,它们的作用下面再讲述。数据流动过程如下:

1,发送起始信号以及由高7位的器件地址和最低位的写信号(WR=0) 组成的一字节地址,等待应答信号。(注意地址位于高7位,所以传址的时候需要将地址左移一位并加上读1/写0信号,如ADDR<<1 | WR)2,发送指令的高字节并等待应答信号。3,发送指令的低字节并等待应答信号,之后发送停止信号。4,等待一段时间(测量正在进行)。5,发送起始信号以及由高7位的器件地址和最低位的读信号(RD=1) 组成的一字节地址,然后根据选择的Clock Stretching从两个方向选择。假如失能了时钟延长功能,则等待非应答信号,发送停止信号,延迟一段时间(这步很重要!!延迟时间大约为50ms左右)等待转换结束,然后发送八位的应答信号并等待应答信号,之后便是逐字节分别读取温度和湿度的高字节、低字节以及CRC校验字节,每字节接收完都要发送应答信号,最后发送停止信号即可。而如果使能了是时钟延长功能,则总线的SCL由SHT3x控制,我们只需要通过while(SCL==0)阻塞程序,等待其释放总线然后MCU读取数据即可。

2c41e222-a9cb-11ee-9ee2-92fbcf53809c.png

(二)、周期获取数据指令

周期获取数据指令的详细数据格式如下图。周期获取数据需要先配置读取模式然后再进行读取。

1、配置模式

周期读取数据的配置主要是配置重复性和每秒测量次数。数据发送的方式同上。

2c5a3412-a9cb-11ee-9ee2-92fbcf53809c.png

2、读取数据

读取的步骤和上述单次读取数据指令的流程类似,下面大概说一下。

2c668884-a9cb-11ee-9ee2-92fbcf53809c.png

发送起始信号,发送写地址,等待应答信号,注意如果传感器没有测量完,它只会返回非应答信号。发送16位命令0xE000。读取初始数据。

(三)、加快响应时间指令

加快响应时间指令,用于周期读取数据指令,开启后传感器开始采集频率为4Hz的数据。它的使用方法跟上述配置模式相同,在读取之前配置好就可以了。

2c797052-a9cb-11ee-9ee2-92fbcf53809c.png

发送起始信号,发送写地址,等待应答信号。发送16位命令0x2B32,等待应答信号。接着继续配置或者读取数据。

(四)、停止周期读取数据指令

停止周期读取数据指令,有时为了实现低功耗或暂时不需要传感器测量数据,可以通过该指令进行关闭。

2c875ce4-a9cb-11ee-9ee2-92fbcf53809c.png

发送起始信号,发送写地址,等待应答信号。发送16位命令0x3093,等待应答信号,发送停止信号。

(五)、复位

复位(RESET)的方式有很多种。

1、IIC接口复位

当通讯设备丢失时,在接下来的信号序列将会复位串口接口,此序列仅重置接口。状态寄存器保留其内容。SDA线置位,翻转SCL线的电平9次以上。接下来必须在下一个命令之前执行传输开始序列。

2、软复位/重新初始化

软复位/重新初始化的指令格式如下。

2c9f7fea-a9cb-11ee-9ee2-92fbcf53809c.png

发送起始信号,发送写地址,等待应答信号。发送16位命令0x30A2,等待应答信号,发送停止信号。

3、一般呼叫复位指令

发送起始信号,发送通用呼叫地址0x00,等待应答信号。发送第二个字节0x06,等待应答信号。

2ca9b1ea-a9cb-11ee-9ee2-92fbcf53809c.png

4、通过nRESET引脚复位

拉低nRESET引脚的电平(至少350ns)将会产生硬复位信号重置传感器。

5、硬复位

重新上电。

(六)、加热器开启/关闭指令

该指令的用法同上,至于该加热器的作用是什么我也不清楚,明明是测温用的还要加热?!大概是想在温度很低的环境但想要它还能正常工作所以才设置这功能吧。

2cb9fa8c-a9cb-11ee-9ee2-92fbcf53809c.png

(七)、读取状态寄存器

状态寄存器包含有关加热器运行状态、警报模式以及最后一个命令的执行状态和最后一个写序列的信息

2cc3817e-a9cb-11ee-9ee2-92fbcf53809c.png

发送起始信号,发送写地址,发送16位命令。发送起始信号,发送读地址,依次接收状态寄存器的高字节、低字节和CRC校验,每次接收都需要发送应答信号,直到接收的最后一个字节发送非应答信号,发送停止信号。状态寄存器每一位代表的含义如下所示。

2ce44102-a9cb-11ee-9ee2-92fbcf53809c.png

我们试一下读取状态寄存器看返回什么。可以发现二进制数1000 0000 0001 0000 1110 0001都为上面表格的默认值,至于CRC校验要根据给定公式对前两字节进行计算和比较。下面来讲CRC校验。

2d00d86c-a9cb-11ee-9ee2-92fbcf53809c.png

(八)、CRC校验

循环冗余校验(CRC)其实就是一种异或计算(模2运算)。获取的CRC校验码就是模2运算后的余数。

2d0f95dc-a9cb-11ee-9ee2-92fbcf53809c.png

(九)、转换温湿度数据

由于从传感器获取到的数据不是最终的温湿度,所以我们需要根据公式进行转换,转换公式如下,在计算之前我们要对温湿度数据进行整合。

2d18fabe-a9cb-11ee-9ee2-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48093

    浏览量

    740053
  • 驱动
    +关注

    关注

    11

    文章

    1717

    浏览量

    84343
  • DIS
    DIS
    +关注

    关注

    0

    文章

    17

    浏览量

    16399
收藏 人收藏

    评论

    相关推荐

    基于单片机的SHT11的温湿度监测

    unsigned int#define uiong unsigned long***it DAT=P2^7;//SHT11数据***it SCK=P2^6;//SHT11时钟***it lcden=P3
    发表于 05-13 19:55

    STM32+SHT11测温湿度,输出显示0

    ();TIM3_Int_Init(1,2880);//25000 hz的计数频率,0.08ms 1 2880 while(1){err += SHT10_Measure(&temp_val
    发表于 05-20 21:22

    stm32 iic收不到器件应答温,传感器是sht3x-dis

    最近在用stm32调iic,用iic读取sht3x-dis温湿度传感器的数值,iic的配置和一些基本函数是照搬原子的例程,以下是我写的,大家帮忙看一下,挑了好久,没反应,很伤。
    发表于 10-17 15:57

    STM32应用实例五:与SHT1X温湿度传感器通讯

    本帖最后由 foxclever 于 2017-3-7 22:05 编辑 在这次项目开发中应用到了SHT1X温湿度传感器,该系列有SHT10、SHT11和
    发表于 03-07 21:54

    高精度温湿度传感器SHT2x的应用有哪些

    新一代Sensirion温湿度传感器SHT2x,采用适于回流焊的双列扁平无引脚DFN无铅封装,底面3 mm×3mm,高度1.1 mm,具有超小型的体积,特别适合移动测量设备。传感器输出经过标定
    发表于 04-29 06:05

    怎样使用C51去驱动SHT3X温湿度模块呢

    SHT3X 温湿度模块 C51驱动SHT3X 温湿度模块图示基于蓝桥C51开发板驱动使用方法C51驱动S
    发表于 12-10 06:25

    如何在IIC0口上实现读取SHT3x温湿度传感器的温湿度功能呢

    如何在IIC0口上实现读取SHT3x温湿度传感器的温湿度功能呢?SHT3x温湿度传感器模块是怎样进行连线的?
    发表于 02-16 07:29

    【赛昉科技昉·星光RISC-V单板计算机试用体验】SHT3X温湿度计使用

    sht3x.c:要在 昉·星光RISC-V单板计算机 编译C代码,需要对应的工具链:#Fedora系统$ sudo dnf install gcc-riscv64-linux-gnu
    发表于 06-05 10:04

    控制台输入sht3x probe i2c0 pd指令后卡住如何解决

    sht3x软件包下载后,控制台输入sht3x probe i2c0 pd指令后卡住,i2c0是ok的,已经挂载了rtc而且在RT studio工具里点亮模拟I2C的图标后,为啥deivers文件夹里面有I2C的文件
    发表于 11-23 10:44

    怎么解决控制台输入sht3x probe i2c0 pd指令后卡住的问题?

    sht3x软件包下载后,控制台输入sht3x probe i2c0 pd指令后卡住,i2c0是ok的,已经挂载了rtc而且在RT studio工具里点亮模拟I2C的图标后,为啥deivers文件夹里面有I2C的文件
    发表于 03-06 09:50

    可编程USB转串口适配器开发板

    可编程 USB 转串口适配器开发板  SHT3x-DIS 温湿度传感器芯片 可编程 USB 转串口适配器开发板  SHT3x-DIS 温湿度传感器芯片 可编程USB转 UART/I2C
    的头像 发表于 09-02 09:02 592次阅读
    可编程USB转串口适配器开发板

    温湿度传感器SHT30-DIS功耗测评

    温湿度传感器SHT30-DIS有两种工作转换模式。一种是单次转换模式,另一种是周期转换模式。
    的头像 发表于 05-10 13:44 1073次阅读
    温湿度传感器<b class='flag-5'>SHT30-DIS</b>功耗测评

    CW32L083实现SHT30驱动

    CW32L083驱动SHT30,并显示到LCD屏上。
    的头像 发表于 06-22 09:57 2388次阅读
    CW32L083实现<b class='flag-5'>SHT</b>30<b class='flag-5'>驱动</b>

    SHT11驱动

    SHT11驱动
    的头像 发表于 07-17 09:28 386次阅读

    SHT3x-DIS温湿度传感器数据手册

    SHT3x-DIS是盛思锐的下一代温度和湿度传感器。它基于新的CMOSens®传感器芯片,该芯片是Sensirion新的湿度和温度平台的核心。与其前代产品相比,SHT3x-DIS提高了智能性、可靠性
    发表于 08-31 11:17 0次下载