EDN China > 设计实例 > 测试与测量 > 通用测试仪器 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于光强传感器TSL256x的感测系统设计

来源:单片机与嵌入式系统应用/华中科技大学 姜连祥 汪小燕?? 2007年01月22日 ?? 收藏0

  4.2 软件设计

  微控制器可以通过I2C总线协议对TSL2561进行读写。写数据时,先发送器件地址,然后发送要写的数据。TSL2561的写操作过程如下: 先发送一组器件地址;然后写命令码,命令码是指定接下来写寄存器的地址00h~0fh和写寄存器的方式,是以字节、字或块(几个字)为单位进行写操作的;最后发送要写的数据,根据前面命令码规定写寄存器的方式,可以连续发送要写的数据,内部写寄存器会自动加1。对于I2C协议具体的读写时序,可以参考相关资料,在此不再赘述。TSL2561的软件设计流程如图4所示。

  软件设计流程
??????????????????????????????? 图4 软件设计流程

  限于篇幅,在此给出对TSL2561读写操作的部分程序

unsigned char TSL2561_write_byte( unsigned char addr, unsigned char c) {
unsigned char status="0";
status=twi_start();//开始
status=twi_writebyte(TSL2561_ADDR|TSL2561_WR);//写TSL2561地址
status=twi_writebyte(0x80|addr);//写命令
status=twi_writebyte(c);//写数据
twi_stop( );//停止
delay_ms(10);//延时10 ms
return 0;
}
unsigned char TSL2561_read_byte( unsigned char addr, unsigned char *c) {
unsigned char status="0";
status= twi_start( );//开始
status=twi_writebyte(TSL2561_ADDR|TSL2561_WR);//写TSL2561地址
status=twi_writebyte(0x80|addr);//写命令
status=twi_start( );//重新开始
status=twi_writebyte(TSL2561_ADDR|TSL2561_RD);//写TSL2561地址
status=twi_readbyte(c,TW_NACK);//写数据
twi_stop( );
delay_ms(10);
return 0;
}

  当积分式A/D转换器转换完成后,可以从通道0寄存器和通道1寄存器读取相应的值CH0和CH1,但是要以Lux(流明)为单位,还要根据CH0和CH1进行计算。对于TMB封装,假设光强为E(单位为Lux),则计算公式如下:

  ① 0E=0.030 4×CH0-0.062×CH0×(CH1/CH0)1/4
② 0.50E=0.022 4×CH0-0.031×CH1
③ 0.61E=0.012 8×CH0-0.015 3×CH1
④ 0.80E=0.001 46×CH0-0.001 12×CH1
⑤ CH1/CH0>1.30
E=0

  对于CHIPSCALE封装,计算公式可以查看相应的芯片资料。

  5 结论

  采用TSL256x实现光强度实时监测的系统,具有精度高、成本低、体积小等优点。芯片内部集成了积分式A/D转换器,采用数字信号输出,因此抗干扰能力比同类芯片强。该芯片在光强监测控制领域已得到广泛应用。

  参考文献

[1] Texas Advanced Optoelectronic Solutions Inc. TSL2560,TSL256 LIGHTTODIGITAL CONVERTER, 2005.
[2] http://www.smbus.org/specs.
[3] http://www.semiconductors.philips.com/logic/i2c

  


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

传感器? TSL256x? 感测?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈