黑色玻璃会改变照在环境光传感器上的光线频谱,这是环境光传感器所面临的设计挑战。尤其是黑色玻璃增强了光谱中的红外分量,而人眼看不到这部分光谱。本应用笔记介绍了几种校准/补偿方法,从而对光传感器在不同光源条件下的流明读数进行修正。本文探讨了如何利用MAX44007光传感器的高级模式调节其对可见光、IR通道的响应。利用MAX44007的寄存器可以优化传感器在黑色玻璃下的性能。
引言
MAX44007环境光传感器提供高级工作模式,用于优化传感器在黑色玻璃下的性能。
目前,大多数智能手机、平板电脑、笔记本电脑和TV都有采用黑色玻璃作为LCD屏的框架,这种框架使得终端产品看起来精致、美观。传统设计中,在环境光传感器的位置提供一个清晰的圆形窗口或缝隙。而新型产品中,光传感器的窗口或缝隙被几乎不透明的黑色油墨覆盖,与其周边的颜色浑然一体。制造商的原因很简单:颜色越深,越不容易分散用户注意力,看起来会更加专业,外观更精致!
不幸的是,深色油墨覆盖环境光传感器后,会在两个方面造成设计复杂。首先,深色油墨将衰减环境光,从而降低传感器接收到的光量。第二,油墨还改变了光线的光谱。从油墨的光谱特性看,几乎全部通过红外入射光,而可见光却衰减到其原来光强的3%至5%。所以,环境光的红外含量被大幅放大。由于深色油墨的实际化学特性会随供应商的不同而有所不同,从而使光信号传输(红外光或环境光)特性进一步复杂化。
针对黑色玻璃进行校准和补偿
准确匹配人眼的CIE曲线非常困难。正因如此,大多数高性能环境光传感器(例如 MAX44009)具有校准/补偿机制,用于修正不同光源下的流明数。这种修正通过组合两种片上光敏二极管实现,组合后可有效提供准确的光强读数,以消除不同光源条件的影响。由于照射在黑玻璃下方传感器上的光谱发生明显变化,需要进一步调整校准参数。
需要特别注意光源对黑色玻璃下方传感器的影响,对其进行校准修正。如果光源中红外成分较高,例如太阳光和白炽灯,尤其需要进行校正。白光LED (WLED)和荧光灯照射下,所需调整较小。
MAX44007具有高级模式,可用于调节对可见光和IR信号的响应。
用于优化玻璃下方传感器性能的寄存器
以下为MAX44007的寄存器,器件数据资料也提供了该寄存器表。
REGISTER | BIT | REGISTER ADDRESS | POWER-ON RESET STATE | R/W | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||
STATUS | |||||||||||
Interrupt Status | INTS | 0x00 | 0x00 | R | |||||||
Interrupt Enable | INTE | 0x01 | 0x00 | R/W | |||||||
CONFIGURATION | |||||||||||
Configuration | CONT | MANUAL | CDR | TIM[2:0] | 0x02 | 0x03 | R/W | ||||
LUX READING | |||||||||||
LUX high byte | E3 | E2 | E1 | E0 | M7 | M6 | M5 | M4 | 0x03 | 0x00 | R |
LUX low byte | M3 | M2 | M1 | M0 | 0x04 | 0x00 | R | ||||
THRESHOLD SET | |||||||||||
Upper Threshold—High Byte | UE3 | UE2 | UE1 | UE0 | UM7 | UM6 | UM5 | UM4 | 0x05 | 0xFF | R/W |
Lower Threshold—High Byte | LE3 | LE2 | LE1 | LE0 | LM7 | LM6 | LM5 | LM4 | 0x06 | 0x00 | R/W |
Threshold Timer | T7 | T6 | T5 | T4 | T3 | T2 | T1 | T0 | 0x07 | 0xFF | R/W |
ADVANCED MODE REGISTERS | |||||||||||
Adv1 Register | 0x09 | 0x00 | R/SW | ||||||||
Adv2 Register | 0xA | 0x00 | R/SW | ||||||||
Visible Gain Register | 0xB | 0x00 | R/SW | ||||||||
IR Gain Register | 0xC | 0x00 | R/SW | ||||||||
Trim Enable Register | 1 | ADV | 0xD | 0x80 | R/W |
一次性预设置,上电设置
按照以下步骤进行一次性预设置,通常在上电时设置。
读取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)
ActualLux为实际环境光读数。
ApproxLux = ComboLux,近似荧光灯和WLED灯。
ApproxLux > ComboLux,通常为白炽灯和太阳光。
若需计算合适的IRFactor,请联系Maxim应用支持,并提供玻璃样本。可直接从实验室测试获得数据。
根据上面计算的ActualLux,设置相应的背光强度。
将ComboLux作为参考(器件的正常工作模式),设置相应的流明上限(寄存器0x05)和流明下限(寄存器0x06)。
执行INTS位(寄存器0x00)空读操作,清除所有中断(若之前已置位)。
等待硬件中断。
此时程序占用时间最长。
发生硬件中断后,读取寄存器0x00,确认INTS = 1。
如果INTS = 1,则转至上面的第7步。
否则,如果INTS = 0,在检查其它硬件中断源后,返回至第16步。
全部0条评论
快来发表一下你的评论吧 !