发布日期:2022-10-09 点击率:45
摘要:黑色玻璃会改变照在环境光传感器上的光线频谱,这是环境光传感器所面临的设计挑战。尤其是黑色玻璃增强了光谱中的红外分量,而人眼看不到这部分光谱。本应用笔记介绍了几种校准/补偿方法,从而对光传感器在不同光源条件下的流明读数进行修正。本文探讨了如何利用MAX44007光传感器的高级模式调节其对可见光、IR通道的响应。利用MAX44007的寄存器可以优化传感器在黑色玻璃下的性能。
引言
MAX44007环境光传感器提供高级工作模式,用于优化传感器在黑色玻璃下的性能。
目前,大多数智能手机、平板电脑、笔记本电脑和TV都有采用黑色玻璃作为LCD屏的框架,这种框架使得终端产品看起来精致、美观。传统设计中,在环境光传感器的位置提供一个清晰的圆形窗口或缝隙。而新型产品中,光传感器的窗口或缝隙被几乎不透明的黑色油墨覆盖,与其周边的颜色浑然一体。制造商的原因很简单:颜色越深,越不容易分散用户注意力,看起来会更加专业,外观更精致!
不幸的是,深色油墨覆盖环境光传感器后,会在两个方面造成设计复杂。首先,深色油墨将衰减环境光,从而降低传感器接收到的光量。第二,油墨还改变了光线的光谱。从油墨的光谱特性看,几乎全部通过红外入射光,而可见光却衰减到其原来光强的3%至5%。所以,环境光的红外含量被大幅放大。由于深色油墨的实际化学特性会随供应商的不同而有所不同,从而使光信号传输(红外光或环境光)特性进一步复杂化。
针对黑色玻璃进行校准和补偿
准确匹配人眼的CIE曲线非常困难。正因如此,大多数高性能环境光传感器(例如MAX9635)具有校准/补偿机制,用于修正不同光源下的流明数。这种修正通过组合两种片上光敏二极管实现,组合后可有效提供准确的光强读数,以消除不同光源条件的影响。由于照射在黑玻璃下方传感器上的光谱发生明显变化,需要进一步调整校准参数。
需要特别注意光源对黑色玻璃下方传感器的影响,对其进行校准修正。如果光源中红外成分较高,例如太阳光和白炽灯,尤其需要进行校正。白光LED (WLED)和荧光灯照射下,所需调整较小。
MAX44007具有高级模式,可用于调节对可见光和IR信号的响应。
用于优化玻璃下方传感器性能的寄存器
以下为MAX44007的寄存器,器件数据资料也提供了该寄存器表。
一次性预设置,上电设置
按照以下步骤进行一次性预设置,通常在上电时设置。
1.读取4个寄存器中每个寄存器的内容:0x09–0x0C。
存储变量:分别为Adv1、Adv2、VisibleGain和IRGain。
2.将这些变量1的补码保存为新的变量:分别为Adv1C、Adv2C、VisibleGainC和IRGainC。例如,IRGainC = !IRGain;
如果IRGain = 1010 0110,则IRGainC = 0101 1001。
3.向寄存器0x0D写入1000 0001,进入高级模式(将ADV置1)。
4.将Adv1C、Adv2C、VisibleGainC和IRGainC分别写入寄存器0x09–0x0C。
例如,向寄存器0x0C写入0101 1001,其原始值为1010 0110。
注:随后读取寄存器0x0C (上述写操作之后),仍然读回0101 1001,因为IC在数据保存到这些高级寄存器之前进行了内部自动位翻转。
保留IRGainC值,供将来使用。
5.必要时,为门限定时寄存器0x07设置一个合适的延迟。
6.设置INTE = 1 (寄存器0x01),使能中断。
进入正常工作模式
按以下步骤进入正常测量模式。
7.读取寄存器0x03和0x04,获得12位的流明读数。
将数值保存为ComboLux。
8.向寄存器0x0C写入0000 0000,进入临时测量模式。
9.等待至少1.6s (2x 800ms)。
如果需要,可联系Maxim缩短这一时间。
10.读取寄存器0x03和0x04,获得12位的流明读数。
将数值保存为ApproxLux。
11.向寄存器0x0C写入IRGainC,退出临时测量模式。
12.计算:ActualLux =ApproxLux - IRFactor × (ApproxLux - ComboLux)
AcutalLux为实际环境光读数。
ApproxLux = ComboLux,近似荧光灯和WLED灯。
ApproxLux > ComboLux,通常为白炽灯和太阳光。
若需计算合适的IRFactor,请联系Maxim应用支持,并提供玻璃样本。可直接从实验室测试获得数据。
13.根据上面计算的ActualLux,设置相应的背光强度。
14.将ComboLux作为参考(器件的正常工作模式),设置相应的流明上限(寄存器0x05)和流明下限(寄存器0x06)。
15.执行INTS位(寄存器0x00)空读操作,清除所有中断(若之前已置位)。
16.等待硬件中断。
此时程序占用时间最长。
17.发生硬件中断后,读取寄存器0x00,确认INTS = 1。
如果INTS = 1,则转至上面的第7步。
否则,如果INTS = 0,在检查其它硬件中断源后,返回至第16步。
下一篇: PLC、DCS、FCS三大控
上一篇: 基于FPGA的摄像机传感