SI1133传感器是基于I2C通信的,关于I2C部分请参考:
关于传感器初始化参数的说明:
PARAM_CHAN_LIST:配置通道,从bit0到bit5,分别代表通道0到5,共六个通道,最高两位无效;
PARAM_ADCCONFIGx:半导体功能配置,0x78表示配置成UV紫外线检测,积分时间基数短24.4us,即CFG_RATE_SHORT|CFG_UV,其余见datasheet;
PARAM_ADCSENSx:检测信号范围,最高位置1表示高,可防止结果溢出,低4位表示积分时间;
PARAM_ADCPOSTx:测量结果设置,0x00表示结果为16位模式,0x40表示24位模式;
PARAM_MEASCONFIGx:计数器选择,0x00表示不设置,0x40设置计数器0,0x80设置计数器1,0xc0设置计数器2
PARAM_MEASRATE_H:采样频率设置高位
PARAM_MEASRATE_L:采样频率设置低位
REG_IRQ_ENABLE:开启通道中断
按照SI1133_init()中的设置,积分时间基数为24.4us,积分时间t = 24.4us * 2^0x09 = 12.5ms,采样频率f = 1250Hz/0x09c4 = 0.5Hz;
关于结果:
根据以上配置,传感器检测结果保存在REG_HOSTOUT0-REG_HOSTOUT11中,每个通道占用两个字节,高位在前;
CH0H,CH0L,CH1H,CH1L..............
如设置了24位模式,则结果如下:
关于传感器初始化参数的说明:
PARAM_CHAN_LIST:配置通道,从bit0到bit5,分别代表通道0到5,共六个通道,最高两位无效;
PARAM_ADCCONFIGx:半导体功能配置,0x78表示配置成UV紫外线检测,积分时间基数短24.4us,即CFG_RATE_SHORT|CFG_UV,其余见datasheet;
PARAM_ADCSENSx:检测信号范围,最高位置1表示高,可防止结果溢出,低4位表示积分时间;
PARAM_ADCPOSTx:测量结果设置,0x00表示结果为16位模式,0x40表示24位模式;
PARAM_MEASCONFIGx:计数器选择,0x00表示不设置,0x40设置计数器0,0x80设置计数器1,0xc0设置计数器2
PARAM_MEASRATE_H:采样频率设置高位
PARAM_MEASRATE_L:采样频率设置低位
REG_IRQ_ENABLE:开启通道中断
按照SI1133_init()中的设置,积分时间基数为24.4us,积分时间t = 24.4us * 2^0x09 = 12.5ms,采样频率f = 1250Hz/0x09c4 = 0.5Hz;
关于结果:
根据以上配置,传感器检测结果保存在REG_HOSTOUT0-REG_HOSTOUT11中,每个通道占用两个字节,高位在前;
CH0H,CH0L,CH1H,CH1L..............
如设置了24位模式,则结果如下:
CH0H,CH0L,CH1H,CH1M,CH1L........
头文件:
#ifndef __SI1133_H__
#define __SI1133_H__
#include "tim.h"
#include "i2c.h"
#define SI1133_PART_ID 0xAA
//*******************************************************//
//* ADCCONFIGx *//
//*******************************************************//
//=========================================================
// measurement rate,Offsets for Parameter Table ADCCONFIGx
//=========================================================
#define CFG_RATE_SHORT 0X60 //24.4us
#define CFG_RATE_NORMAL 0X00 //48.8us
#define CFG_RATE_LONG 0X20 //97.6us
#define CFG_RATE_VLONG 0X40 //195us
//==========================================================
// Photodiodos select,Offsets for Parameter Table ADCCONFIGx
//==========================================================
#define CFG_SMALL_IR 0X00
#define CFG_MEDIUM_IR 0X01
#define CFG_LARGE_IR 0X02
#define CFG_WHITE 0X0B
#define CFG_LARGE_WHITE 0X0C
#define CFG_UV 0X18
#define CFG_UV_DEEP 0X19
//------------------------END------------------------------
//*******************************************************//
//* MEASCONFIGx *//
//***********************************************