御神楽的学习记录之基于FPGA的AHT10温湿度数据采集

一、AHT10手册解析

1.1 AHT10通信协议
基于标准的I2C协议

串行时钟SCL

​ SCL用于微处理器与AHT10之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCL频率。

串行数据SDA

​ SDA引脚用于传感器的数据输入和输出。当向传感器发送命令时,SDA在串行时钟(SCL)的上升沿有效,且当SCL为高电平时,SDA必须保持稳定。在SCL下降沿之后,SDA值可以被改变。
在这里插入图片描述

1.2 传感器启动
启动传感器

​ 将传感器上电后,电压为所选择的VDD电源电压。需要注意的是,上电后传感器需要最多20毫秒时间(此时SCL为高电平)以达到空闲状态,即做好准备接收由主机(MCU)发送的命令。

启动/停止时序

​ 每个传输序列都是以Start状态作为开始以Stop状态结束,如下图

在这里插入图片描述

Start状态

​ 当SCL为高电平时,SDA由高电平转换为低电平。开始状态是由主机控制的一种特殊的总线状态,指示从机传输开始。

在这里插入图片描述

Stop状态

​ 当SCL高电平时,SDA线上从低电平转换为高电平。停止状态是由主机控制的一种特殊的总线状态,指示从机传输结束。

1.3 发送命令

​ 在启动传输后,随后传输I2C首字节包括7位的I2C设备地址0x38和一个SDA方向位x(读R:‘1’,写W:‘0’)。在第8个SCL时钟下降沿之后,通过拉低SDA引脚(ACK位),指示传感器数据接收正常。在发出初始化命令之后,主机MCU必须等待测量完成。

基本命令集

在这里插入图片描述

状态位说明

在这里插入图片描述

1.4 传感器读取流程

1.上电后要等待40ms,读取温湿度值之前,首先要看状态字的校准使能位Bit[3]是否位1(通过发送0x71可以获取一个字节的状态字),如果不为1,要发送0xE1命令(初始化),此命令参数有两个字节,第一个字节为0x08,第二个字节为0x00

2.直接发送0xAC命令(触发测量),此命令参数有两个字节,第一个字节为0x33,第二个字节为0x00

触发测量数据:
在这里插入图片描述

3.等待80ms待测量完成,忙状态Bit[7]为0,然后可以读取六个字节(发送0x71即可以读取)

读取温湿度数据:

在这里插入图片描述

1.5数据转换

相对湿度转换

​ 相对湿度计算公式:


R H = ( S R H 2 20 ) ∗ 100 RH=(\frac{S_{RH}}{2^{20}})*100% RH=(220SRH)100
温度转换

​ 温度转换公式:


T ( ℃ ) = ( S T 2 20 ) ∗ 200 − 50 T(℃)=(\frac{S_{T}}{2^{20}})*200-50 T()=(

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值