论坛» 活动中心» 板卡试用

【换取手持数字示波器】如何实现基于NXPiMx.RT1021的NSHT30的通讯方法

菜鸟
2024-04-24 13:46 1楼
1.NSHT30的框架

image.png

(图1 NSHT30实物图)

[AN-12-0010]https://www.novosns.com/files/ApplicationNote_wenshiduchuanganqiNSHT30shiyongshejizhinan.pdf

纳芯微的手册并没有提供直接的框图可以参考,但是有一段介绍 “NSHT30是一款基于CMOS-MEMS的相对湿度 (%RH)和温度(T)传感器。它在单芯片上 集成了一个完整的传感器系统,包括电容式的相对湿度传感器、CMOS温度传感器(手册中有错误: COMS温度传感器 )和信号处理器以及I2C数字通信接口,采用 2.5mm×2.5mm×0.9mm的DFN空腔封装。 其I2C接口的通信方式、极小的封装和低功耗 特性使得NSHT30可以更广泛地集成到各种应 用中。”,我们可以提取关键信息:

  • 湿度采集:电容式的 相对湿度传感器

  • 温度采集:CMOS温度传感器

  • 通讯方式:I2C-Bus总线

CMOS温度传感器原理

基于CMOS晶体管的温度特性来进行温度测量,在CMOS晶体管中,晶体管的阈值电压与温度成反比,利用这个特性,通过对一串串联的CMOS晶体管(宽度和长度相同、类型相同),注入不同的电流,则晶体管的阈值电压与温度呈现线性关系,从而可以得出温度的近似值。

由NSHT30得知其中温度传感器采用的是CMOS温度传感器,于是我们选用TI的LMT70手册去分析CMOS温度传感器的特性。

image-20240424132320527

(图2 LMT70数据)

由图可以分析,对于CMOS温度传感器可以具体观测到精度与温度的关系,整体趋向曲线近似平行,总体在40℃附近精度最高,但是整体精度也没有太大波动。后面图片没有包括手册全部数据,选取了在不同温度上,内部查表的精确度和频率集中点。可以看出来主要的查找点集中在无误差的点上。该款芯片采用的是内部线性查表的方式建立温度和电压的关系,实现温度的线性。由于NSHT30并没有给具体的资料,所以我们只能以LMT70类比,猜测NSHT30也是采样LUT的方式实现温度线性采集。

电容式的 相对湿度传感器

湿敏材料是一种高分子聚合物,它的介电常数随着环境的相对湿度变化而变化。选用湿敏材料作为电容的介质,可以通过获取电容的容值变化来获得湿度。内部机理涉及:露点、电路温度补偿、电路的线性校正等,最终获取的是相对湿度,即湿度数据受温度影响。

2.控制方法

img

上图由NSHT30数据手册获取,控制方法包括:CRC校验方法、I2C数据与温湿度参数转换公式、I2C通讯过程、寄存器参数配置。

3.代码
do{
reVal=NSHT30_Write_Command();
vTaskDelay(100);
}while(reVal!=kStatus_Success);
reVal=kStatus_Fail;
do{
reVal=NSHT30_Read_Data();
vTaskDelay(10);
}while(reVal!=kStatus_Success);

代码主要是IIC写入读写温湿度指令,然后等待一段时间,再IIC读取传感器传回的温湿度数据,具体通讯过程可以参考控制方法里的I2C通讯过程。

4.效果展示

img



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]