MAX44007环境光传感器,改善黑色玻璃的设计性能

MAX44007环境光传感器,改善黑色玻璃的设计性能,第1张

  黑色玻璃会改变照在环境光传感器上的光线频谱,这是环境光传感器所面临的设计挑战。尤其是黑色玻璃增强了光谱中的红外分量,而人眼看不到这部分光谱。本应用笔记介绍了几种校准/补偿方法,从而对光传感器在不同光源条件下的流明读数进行修正。本文探讨了如何利用MAX44007光传感器的高级模式调节其对可见光、IR通道的响应。利用MAX44007的寄存器可以优化传感器在黑色玻璃下的性能。

  引言

  MAX44007环境光传感器提供高级工作模式,用于优化传感器在黑色玻璃下的性能。

  目前,大多数智能手机、平板电脑、笔记本电脑和TV都有采用黑色玻璃作为LCD屏的框架,这种框架使得终端产品看起来精致、美观。传统设计中,在环境光传感器的位置提供一个清晰的圆形窗口或缝隙。而新型产品中,光传感器的窗口或缝隙被几乎不透明的黑色油墨覆盖,与其周边的颜色浑然一体。制造商的原因很简单:颜色越深,越不容易分散用户注意力,看起来会更加专业,外观更精致!

  不幸的是,深色油墨覆盖环境光传感器后,会在两个方面造成设计复杂。首先,深色油墨将衰减环境光,从而降低传感器接收到的光量。第二,油墨还改变了光线的光谱。从油墨的光谱特性看,几乎全部通过红外入射光,而可见光却衰减到其原来光强的3%至5%。所以,环境光的红外含量被大幅放大。由于深色油墨的实际化学特性会随供应商的不同而有所不同,从而使光信号传输(红外光或环境光)特性进一步复杂化。

  针对黑色玻璃进行校准和补偿

  准确匹配人眼的CIE曲线非常困难。正因如此,大多数高性能环境光传感器(例如MAX9635)具有校准/补偿机制,用于修正不同光源下的流明数。这种修正通过组合两种片上光敏二极管实现,组合后可有效提供准确的光强读数,以消除不同光源条件的影响。由于照射在黑玻璃下方传感器上的光谱发生明显变化,需要进一步调整校准参数。

  需要特别注意光源对黑色玻璃下方传感器的影响,对其进行校准修正。如果光源中红外成分较高,例如太阳光和白炽灯,尤其需要进行校正。白光LED (WLED)和荧光灯照射下,所需调整较小。

  MAX44007具有高级模式,可用于调节对可见光和IR信号的响应。

  一次性预设置,上电设置

  按照以下步骤进行一次性预设置,通常在上电时设置。

  读取4个寄存器中每个寄存器的内容:0x09–0x0C。

  存储变量:分别为Adv1、Adv2、VisibleGain和IRGain。

  将这些变量1的补码保存为新的变量:分别为Adv1C、Adv2C、VisibleGainC和IRGainC。例如,IRGainC = !IRGain;

  如果IRGain = 1010 0110,则IRGainC = 0101 1001。

  向寄存器0x0D写入1000 0001,进入高级模式(将ADV置1)。

  将Adv1C、Adv2C、VisibleGainC和IRGainC分别写入寄存器0x09–0x0C。

  例如,向寄存器0x0C写入0101 1001,其原始值为1010 0110。

  注:随后读取寄存器0x0C (上述写 *** 作之后),仍然读回0101 1001,因为IC在数据保存到这些高级寄存器之前进行了内部自动位翻转。

  保留IRGainC值,供将来使用。

  必要时,为门限定时寄存器0x07设置一个合适的延迟。

  设置INTE = 1 (寄存器0x01),使能中断。

  进入正常工作模式

  按以下步骤进入正常测量模式。

  读取寄存器0x03和0x04,获得12位的流明读数。

  将数值保存为ComboLux。

  向寄存器0x0C写入0000 0000,进入临时测量模式。

  等待至少1.6s (2x 800ms)。

  如果需要,可联系Maxim缩短这一时间。

  读取寄存器0x03和0x04,获得12位的流明读数。

  将数值保存为ApproxLux。

  向寄存器0x0C写入IRGainC,退出临时测量模式。

  计算:ActualLux =ApproxLux - IRFactor × (ApproxLux - ComboLux)

  AcutalLux为实际环境光读数。

  ApproxLux = ComboLux,近似荧光灯和WLED灯。

  ApproxLux > ComboLux,通常为白炽灯和太阳光。

  若需计算合适的IRFactor,请联系Maxim应用支持,并提供玻璃样本。可直接从实验室测试获得数据。

  根据上面计算的ActualLux,设置相应的背光强度。

  将ComboLux作为参考(器件的正常工作模式),设置相应的流明上限(寄存器0x05)和流明下限(寄存器0x06)。

  执行INTS位(寄存器0x00)空读 *** 作,清除所有中断(若之前已置位)。

  等待硬件中断。

  此时程序占用时间最长。

  发生硬件中断后,读取寄存器0x00,确认INTS = 1。

  如果INTS = 1,则转至上面的第7步。

  否则,如果INTS = 0,在检查其它硬件中断源后,返回至第16步。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2497557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存