这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 如何实现基于NXPiMX.RT1021的BH1730采集

共5条 1/1 1 跳转至

如何实现基于NXPiMX.RT1021的BH1730采集

菜鸟
2024-04-24 10:39:44     打赏

1.BH1730的内部框架


BH1730手册


(图一 BH1730手册)

 BH1730采用光敏二极管,经过单反馈积分运算放大电路调整,将输入的光照信号采集静ADC采集,并经过离散、量化处理成16bit的数据存储在内部寄存器。光敏二极管本身光压曲线是非线性光线,可以参考以下的曲线:

AF143816549.jpg

光敏二极管原理和特性曲线

65143818983.jpg

(图二 光二极管特性曲线)

上图取自PD333-3B的数据手册的厂家数据,光敏二极管对于不同的波长的感度不同,总体呈现反二次关系,最佳光感带集中在900nm波附近(远远超出人眼感光范围(390nm~700nm))。当然,因为这是一个红外特征管,本身制造就是针对这段人眼无法感知的信号。由于BH1730并未提供关于内部红外管的特性曲线(至少我查看的ROHM的手册没有),所以只能借助其他厂家的手册去解释。恒定电压情况下,光电流与照度在10^1-10^4Lux之间近似直线,该电流与二极管两端电压也正相关。可惜没有查找到某厂家可以体现完整的光二极管的特性曲线图,毕竟制造出来的二极管在特定范围内必然要近似线性。只能借助下面一篇文章来参考

[光敏二极管传感器]    https://read.qq.com/read/1000680327/51 

光敏二极管本身是光生伏特效应,光子会激发电子能量,形成光电流的关系,所以实际的BH1730电路有很复杂的过程实现光电流到光电压的过程,实际光敏二极管可以近似为非线性电流源,一般经过电阻实现电压转换。由于没有找到具体厂家的数据体现完整的光敏二极管曲线,所以只能在理论层面去解释。光敏二极管与普通二极管的区别主要体现在光伏特效应的介入,在普通二极管的固定电压的基础上,控制变量变成了光照强度,但是并不能改变二极管非线性的特点。但是一段范围内,两者的结合可以近似直线,具体实现原理此处不做解释。

2.控制方法

img

上图是我从BH17手册中总结出来的BH1730的编程逻辑,包括:控制流程图、指令格式、寄存器地址、物理值换算关系、示例。

BH1730是由作为基本电路的光电二极管、电流电压转换电路、A/D转换器、控制逻辑电路以及接口电路等构成的环境光亮度传感器IC,采用标准的I^2C\ Bus协议与外界传输数据。

3.代码

do{
   reVal = BH1730_Write_Command();
   vTaskDelay(100);
}while(reVal != kStatus_Success);
reVal = kStatus_Fail;
do{
   reVal = BH1730_Read_Data();
   vTaskDelay(100);
}while(reVal != kStatus_Success);
  • 读取指令函数 - BH1730_Write_Command()

  • 延时 - vTaskDelay(100),代码本身是搭在FreeRTOS上的,所以采用的是任务延时

  • 读取数据函数 - BH1730_Read_Data()

  • 延时 - vTaskDelay(100)

  • 主机作为I2C,每次I2C的操作都需要判断应答,保证数据传输正常。第二个读取数据的应答主要是判断从设备是否数据处理完成,主机可以调起传输数据过程

  • 具体实现过程可以参考控制方法的下面部分的Example,流程图是依据本段代码编写的。

4.效果图

1713926772687830.jpg




关键词: iMX.RT1021     BH1730    

专家
2024-04-24 21:14:04     打赏
2楼

不错啊


工程师
2024-04-25 09:28:18     打赏
3楼


专家
2024-04-26 07:54:24     打赏
4楼

谢谢分享


工程师
2024-04-30 09:20:07     打赏
5楼

谢谢分享。


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]