查看: 973|回复: 0

[评测分享] 【Silicon Labs EFR32xG24 开发套件】-6-驱动温湿度传感器

[复制链接]
  • TA的每日心情
    奋斗
    2024-6-21 17:19
  • 签到天数: 358 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2022-12-6 15:10:32 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 SensorYoung 于 2022-12-6 15:29 编辑

    EFR32xG24开发板上传感器资源丰富,除了上篇文章中介绍的VEML6035环境光传感器,本文我将继续探索板卡自带的温湿度传感器Si7021.从板卡的用户手册可以看到具体的型号是:Si7021-A20。其上一代产品是A10,Si7021-A10是芯科科技推出的一款低功耗的温湿度传感器,它采用了Silicon Labs的第二代RH感测解决方案,温度测量范围从-40~+125℃,精度高达±0.4℃;相对湿度可以从0~80%RH进行准确测量。

    与之前的A10版本相比,Si7021-A20器件是硅金属版本(silicon metal revisions),完全引脚兼容,并且与之前的A10版本软件兼容。 对于Si7021器件,用户寄存器写入后的电源电流从20μA(典型值)降至0.06μA(典型值)的正常待机电流。 更高的测试覆盖率可降低潜在的缺陷率并提高制造产量。 对可靠性没有影响。


    与VEML6035环境光传感器一样,这个温湿度传感器也是通过I2C总线挂载到同一个总线上,这也充分利用了I2C总线的特性,只要每个器件的地址唯一,可以大大简化硬件电路设计。
    1.png

    下面打开SSV5,添加Si7021相关的驱动并自动生成代码。首先双击slcp文件,然后在Board Control下面使能温湿度传感器。
    2.png

    然后安装传感器驱动库:
    3.png

    然后点击官方文档链接,熟悉相关API接口。 4.png
    编写主要代码,其实官方已经贴出了相关的参考代码:

    1. #include "sl_i2cspm_instances.h"
    2. #include "sl_si70xx.h"

    3. int main( void )
    4. {

    5.   ...

    6.   int32_t temp_data;
    7.   uint32_t rh_data;

    8.   sl_si70xx_init(sl_i2cspm_sensor, SI7021_ADDR);
    9.   sl_si70xx_measure_rh_and_temp(sl_i2cspm_sensor, SI7021_ADDR, &rh_data, &temp_data);

    10.   ...

    11. }
    复制代码


    编译下载:
    5.png

    串口输出结果:
    7.png

    其中需要注意的是:温度 需要除以1000换算成摄氏度,湿度需要除以1000才是百分比。
    6.png

    修改后的串口显示结果:
    串口调试助手sscom32_kVZ4J620Hh.gif

    SSV5强大的图形化配置功能,SiliconLabs完善的开发文档使得传感器的获取变得非常简便!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 17:08 , Processed in 0.114034 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.