我们解读一个芯片,首先要对照相应手册了解,一些主要地方譬如芯片功能,引脚定义,电路图,工作电压,数据怎么计算等等。
一主体介绍
目录
湿度和温度传感器支持完全校准,线性化,和温度补偿数字输出;
工作电压宽电源电压范围,从2.4 V到5.5 V;
I2C接口与通信速度高达1 MHz和两个用户可选择的设备地址;
典型的精度2 %RH和0.3°C;
非常快的启动和测量时间;
封装小8针引脚DFN包;(由此可知共有8个引脚)
二目录介绍
在内容Content当中我们主要看
1.传感器性能
主要讲述SHT3X系列测量精度和测量范围及误差;
误差可以自己看一下,需要测量温度大概就是在10°~90°误差最小;如果需要对误差精度要求可以仔细看;
2.规格介绍
主要讲述一些功能例如数据测量,发热模式(当设备测量周围温度过低,导致芯片无法正常测量其就会开启发热模式保证芯片温度)一些工作模式的工作时候需要的电压电流等等参数。
3.主要介绍引脚定义
详细介绍各个引脚的功能作用。以及实际连接时候,线路怎么连接。
这里有介绍从机的地址可以调节,当ADDR引脚接高电平从机7位地址就是0x44,当ADDR接低电平从机7位就是0x45。如果你购买的是SHTX-DIS传感器模块一般都是封装好的接高电平0x44。如果和自己其他从机地址冲突需要自己设计电路接低电平。
4.数据读取
在了解改该芯片是I2C通信以后,我们需要了解数据读取的过程。一般对照芯片手册写
这样既方便自己检察又方便自己改写。
SHT30支持两种数据读取方法。1.单次读取数据;2.周期性读取数据;
这里需要注意的地方,单次是指SHT30测量一次数据,周期是指SHT30不断测量数据放在对应寄存器。
单次数据读取:
首先要向从机发起数据测量命令:
首先当中的最左边,高中低对应的是我们的测量重复性(重复性就是多次测量数据取重合度最高的也可以理解取平均值)一般取较高方便减小误差。
我们要发送指令测量:对应0X2C06
其中空白部分代表主机需要发送,阴影部分代表从机发送给主机接收的数据。
中间部分代表着开启时钟和不开启时钟的读取区别需要注意。后面就是读取的过程,需要注意的地方就是最后的NACK非应答部分。
周期读取:
我们首先需要对SHT30从机写入周期测量的命令,具体是高重复性还是低重复需要根据实际自己选择。我们一般选择高重复性。
需要注意当我们发送完指令以后不能立刻读取,因为周期测量需要一定时间,在读取之前要延长一段时间。可以看中间时间mps结合自己选择的测量重复性进行延时。
如果没有等待延时完成,很可能会出现寄存器读取值为满的情况。
后面的部分主要是对于一些复位,发热,报警部分的介绍,由于没有使用就没有介绍。
大地步骤都是,发送7位从机地址加上读写位然后要操作寄存器的地址,需要写入的数据。对照拼接完整即可。
后面有我采用模拟I2C测量的源码:http://t.csdnimg.cn/3PmzB
5.读取完数据以后,从上面不难发现所读取的是16位寄存器数据
按照芯片手册给出来的计算公式其中ST主要就是我们从寄存器读取地数据。
在实际计算过程中,由于温湿度实际值都是小数,需要注意C语言当中浮点数的计算
带入数据计算就可以得到温湿度实际测量值。
补充:一般来说我们利用该芯片主要是读取温湿度数据,对于其他一些功能,比如报警,复位,加热等等。可以通过引脚触发,但如果买的是传感器模块也就是线路连接好的。一般只有四个引脚,所以不好通过硬件读取,所以我们可以通过软件写入数据进行相应的操作。
当然如果设置报警阈值也可以自己在单片机找空闲的ROM区例如STM32的空闲FLASH区我们设置具体参考实际。