72|3

113

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

【英飞凌XENSIV™ PAS CO2 5V Sensor2Go套件】连接单片机 [复制链接]

    前面是使用的PAS CO2 5V Sensor2Go套件进行测试的,这次准备使用其它单片机直接对传感器进行测量。

 

    根据文档中的要求将单片机和传感器的6个引脚按下图连接:

    实物接好线后如下:

 

 

    主要程序如下。

    IIC地址定义:

#define CO2_READ_Addr  0X28
#define CO2_WRITE_Addr  0X29

 

    IIC初始化:

void IIC0_Init(void)
{
    struct bflb_device_s* gpio;
    
    gpio = bflb_device_get_by_name("gpio");
    /* I2C0_SCL */
    bflb_gpio_init(gpio, GPIO_PIN_0, GPIO_FUNC_I2C0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);
    /* I2C0_SDA */
    bflb_gpio_init(gpio, GPIO_PIN_1, GPIO_FUNC_I2C0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);
    
    /* 通信速率400K */
    i2c = bflb_device_get_by_name("i2c0");
    bflb_i2c_init(i2c, 400000);
}

    读取主要几个寄存器值:

    while (1) 
    {
        IIC_ReadReg(CO2_READ_Addr, 0x01, Buff, 1);
        printf("PASCO2 Reg 01: %d\r\n\r\n",Buff[0]);
        bflb_mtimer_delay_ms(50);
        IIC_ReadReg(CO2_READ_Addr, 0x02, Buff, 1);
        printf("PASCO2 Reg 02: %d\r\n\r\n",Buff[0]);
        bflb_mtimer_delay_ms(50);
        IIC_ReadReg(CO2_READ_Addr, 0x03, Buff, 1);
        printf("PASCO2 Reg 03: %d\r\n\r\n",Buff[0]);
        bflb_mtimer_delay_ms(50);
        IIC_ReadReg(CO2_READ_Addr, 0x04, Buff, 1);
        printf("PASCO2 Reg 04: %d\r\n\r\n",Buff[0]);
        bflb_mtimer_delay_ms(50);
        IIC_ReadReg(CO2_READ_Addr, 0x05, Buff, 1);
        printf("PASCO2 Reg 05: %d\r\n\r\n",Buff[0]);
        bflb_mtimer_delay_ms(50);
        IIC_ReadReg(CO2_READ_Addr, 0x06, Buff, 1);
        printf("PASCO2 Reg 06: %d\r\n\r\n",Buff[0]);

 

        bflb_mtimer_delay_ms(30000);

    }

    程序运行后,连续测量值如下:


    具体分析下01-06寄存器值:

    寄存器01:144,16进制:0x90.

    根据文档描述:

    按照上面的接线方式,ORVS位为何会报错?

 

    寄存器02、03:60

    这是缺省值,表示采集周期为60秒,也即一分钟采集一次。

 

    寄存器04:38,16进制:0x26

    根据文档描述:

 

 

    04寄存器中缺省采集模式为空闲模式,之所以现在是连续采集模式,是因为PWM_DIS引脚接地了。

 

 

    寄存器05、06:CO2浓度值。

    根据文档描述:

    浓度值为2个有符号补码短整型,从实际测量值来看,高字节为负数,和采用套件及配套软件测量值900ppm左右无法对应,后边将抽时间再继续研究下。

 

此帖出自传感器论坛

最新回复

ORVS位报错就说明5V供电超限了     详情 回复 发表于 昨天 17:21
点赞 关注
 
 

回复
举报

6296

帖子

10

TA的资源

版主

沙发
 

你最重要的一个引脚没有接吗?发射器都没有工作吧,这个是利用光学原理的,发射头供电是5V的,要接上

此帖出自传感器论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

6296

帖子

10

TA的资源

版主

板凳
 

上一版本是12V的,要求更高  

此帖出自传感器论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

6296

帖子

10

TA的资源

版主

4
 

ORVS位报错就说明5V供电超限了  

此帖出自传感器论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/3 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表