0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MAX9635环境光传感器的接口代码实现

星星科技指导员 来源:ADI 作者:ADI 2023-03-06 13:51 次阅读

本应用笔记描述了在智能手机和平板电脑等便携式设备中正确使用MAX9635环境光传感器的中断输出功能进行LCD背光管理。中断功能允许调整多个照明区域的光阈值,而无需反复轮询光传感器。如果使用得当,此功能允许系统保持低功耗睡眠模式或将其他资源专用于其他用户定义的任务。中断功能显著提高了能源效率、系统性能和用户在不同照明条件下的体验。本文还给出了一个用于对中断进行编程的I²C C伪代码示例。

介绍

MAX9635环境光传感器采用先进的技术检测环境光的亮度。该器件可用于多种应用,包括但不限于便携式和家用电子产品以及室内照明中的显示 LCD 背光调节。MAX9635具有极低的工作功耗(仅为0.65μA)和1.8V工作电压(设计用于方便与微控制器I/O端互),使其非常适合用于许多传感器和安全应用。背光调节和低工作功耗可延长电池寿命并提高照明应用的能源效率。

MAX9635最有价值的特性之一是高度通用的中断输出引脚。此引脚允许系统保持低功耗休眠状态或将资源专用于其他用户有价值的任务。

本应用笔记解释了如何对此中断输出功能进行编码,以确保最佳系统性能。给出了一些示例 C 风格的伪代码。

寄存器预设

下表显示了MAX9635的寄存器图,以及上电复位(POR)状态。

注册 寄存器地址 上电复位状态 R/W
7 6 5 4 3 2 1 0
地位
中断状态 INTS 0x00 0x00 R
中断使能
INTE
0x01 0x00 R/W
配置
配置 CONT MANUAL CDR T 0x02 0x03 R/W
LUX reading
LUX high byte M3 M2 M1 M0 0x04 0x00 R
阈值集
上限阈值高字节 UE3 UE2 UE1 UE0 UM7 UM6 UM5 UM4 0x05 0xFF R/W
下限阈值高字节 LE3 LE2 LE1 LE0 LM7 LM6 LM5 LM4 0x06 0x00 R/W
阈值计时器 T7 T6 T5 T4 T3 T2 T1 T0 0x07 0xFF R/W

预设寄存器包括配置、中断使能和阈值定时器

配置寄存器(地址 0x02)、CONT=0 和 MANUAL=0 的上电设置足以满足大多数用户应用的需求。这些设置告诉MAX9635根据适当的环境光水平自动调整其灵敏度。

为了启用中断功能,主机(即微控制器)首先向中断启用寄存器(地址 1x0)写入 01。

然后,主机将适当的延迟写入阈值定时器寄存器(地址0x07)。通常,此设置不会更改。编写此阈值延迟有两个主要原因。首先,将非零值写入此寄存器可防止由于光照条件的短暂或瞬时变化而导致的误跳闸。当用户手势或设备移动后,阴影经过光传感器时,可能会发生短暂的光线变化。其次,显示器亮度响应的有意延迟为定义的用户界面算法留出了时间。这方面的一个例子是像iPad™设备这样的移动应用程序。在这个例子中,人们不希望显示器亮度在通过黑暗的走廊(如被周期性灯光打断的地铁)时快速波动。

阈值寄存器设置

在正常操作期间,用户重复编程上限阈值寄存器(地址0x05)和下限阈值寄存器(地址0x06)。当环境光水平超过这些寄存器定义的窗口电平时,将触发中断(寄存器0x00中的INTS位设置为1,/INT硬件引脚被拉低)。此中断的持续时间将超过阈值计时器寄存器(地址 0x07)定义的延迟。

为了对阈值寄存器设置进行编程,主机首先从数据寄存器中读取勒克斯计数,LUX高字节(地址0x03)和LUX低字节(地址0x04),以找到当前工作区。然后,主站设置适当的上限阈值寄存器和下限阈值寄存器计数。

背光控制算法示例

人眼以对数方式感知亮度,其方式与人耳感知响度的方式大致相同。因此,背光强度通常经过编程,使其也以对数方式响应环境光水平。因此,在低光水平下有更精细的步进,而在明亮的环境条件下,背光强度变化不大。理想情况下,主机处理器还将实现其他高级图像处理算法,例如基于此环境光水平信息的对比度和颜色调整。

典型的亮度控制算法可能有五个控制阈值级别。通常,界面玻璃的类型和物理开口的大小可以将光传感器“看到”的光减少到外部环境光的5%至10%。在设置阈值水平时,应考虑此缩放。

下表是背光强度以及上限和下限阈值的一个示例。要将阈值勒克斯转换为阈值计数,只需将目标勒克斯设置除以 0.045。

照明区 外部照度(典型值) 背光强度(%) 外部勒克斯,下限阈值(典型值) 外部勒克斯,上限阈值(典型值) 下限阈值(10% 玻璃) 上限阈值(10% 玻璃)
黑暗 4 25 < 0 > 10 < 0 > 1
20 45 < 10 > 50 < 1 > 5
100 65 < 50 > 200 < 5 > 20
办公室 400 85 < 200 > 1000 < 20 > 100
阳光 > 2000 100 < 1000 >最大值 < 100 >最大值

随外部照明条件改变背光强度。

实现中断

下图显示了主微控制器实现的流程图的典型示例。

算法阈值水平和环境测量:计数与勒克斯

根据计数而不是勒克斯值实现算法更直接。这样做无需使用任何浮点数学运算,并允许简单的定点微控制器代码。

环境光计数 2^(指数) × 尾数
指数 = 8xE3 + 4xE2 + 2xE1 + E0
尾数 = 128xM7 + 64xM6 + 32xM5 + 16xM4 + 8xM3 + 4xM2 + 2xM1 + M0
上限阈值计数 2^(指数) × 尾数
指数 = 8xE3 + 4xE2 + 2xE1 + E0
尾数 = 128xM7 + 64xM6 + 32xM5 + 16xM4 + 15
较低的阈值计数 2^(指数) × 尾数
指数 = 8xE3 + 4xE2 + 2xE1 + E0
尾数 = 128xM7 + 64xM6 + 32xM5 + 16xM4

使用上表中所需的阈值,可以计算阈值寄存器字节,以用作每个照明区域的伪代码中的限制。这些阈值与根据上述公式计算的环境光计数进行了简单比较。

下限阈值,10% 玻璃 (勒克斯) 上限阈值,10% 玻璃(勒克斯) 所需的下限阈值计数 所需的阈值上限计数 下限阈值寄存器字节 上限阈值寄存器字节 实际下限阈值计数 实际上限阈值计数 实际下限阈值 实际上限阈值
黑暗 < 0 > 1 0 22 0000
0000
0000
0001
0 31 < 0 > 1.395
< 1 > 5 22 111 0000
0001
0000
0110
16 111 < 0.72 > 4.995
< 5 > 20 111 556 0000
0110
0010
1001
96 636 < 4.32 > 28.62
办公室 < 20 > 100 556 2222 0010
1001
0100
1000
576 2288 < 25.92 > 102.96
阳光 < 100 >最大值 2222 4177920 0100
1000
1110
1111
2048 4177920 < 92.16 > 188006

应该注意的是,如果工作光水平非常接近定义的照明区域的边界,背光水平可能会更频繁地波动并给用户带来不适。因此,在一个照明区域的上限阈值和下一个较高照明区域的下限阈值之间定义了一个小的重叠区域。这提供了一个自然的滞后,作为对小光波动的屏蔽。如果需要,可以进一步扩展这些重叠。

这里描述的算法只是背光亮度控制的一种可能实现的一般准则。那些精通背光控制技术的人已经开发了许多不同的算法,为最终用户提供复杂而透明的感觉。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2548

    文章

    50642

    浏览量

    751731
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4411

    浏览量

    167042
收藏 人收藏

    评论

    相关推荐

    BME680环境传感器的驱动设计与实现

    环境传感器是一类我们很常用的传感器。它可以方便我们获取压力、温度、湿度以及空气质量等数据。在这一篇中,我们将分析BME680环境传感器的功能
    发表于 12-08 15:41 2266次阅读
    BME680<b class='flag-5'>环境</b><b class='flag-5'>传感器</b>的驱动设计与<b class='flag-5'>实现</b>

    功耗最低的环境传感器MAX9635

    MAX9635环境传感器提供I²C数字输出,可理想用于智能手机、笔记本电脑、工业传感器等便携产品。器件工作电流小于1µ
    发表于 02-25 23:03

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

      MAX44007环境传感器提供高级工作模式,用于优化传感器在黑色玻璃下的性能。  目前,大多数智能手机、平板电脑、笔记本电脑和TV都有
    发表于 11-05 11:06

    MAX9635环境传感器接口程序

    摘要:这篇应用笔记介绍了如何合理使用MAX9635环境传感器的中断输出功能,适用于智能手机、平板电脑等便携设备的LCD背光。利用中断功能可以针对多个照明区间设置不同的门限值,无需重复
    发表于 11-13 11:12

    功耗最低的环境传感器MAX9635

    MAX9635环境传感器提供I²C数字输出,可理想用于智能手机、笔记本电脑、工业传感器等便携产品。器件工作电流小于1µA,是业内功耗最低的
    发表于 12-04 15:24

    数字环境传感器MAX9635相关资料下载

    数字环境传感器MAX9635资料下载内容主要介绍了:MAX9635引脚功能MAX9635内部方
    发表于 03-25 06:19

    MAX9635,pdf (环境传感器)

    The MAX9635 ambient light sensor features an I²C digital output that is ideal for a number
    发表于 09-13 08:13 111次下载

    MAX9635中文资料,功耗最低的环境传感器

    MAX9635环境传感器提供I2C数字输出,可理想用于智能手机、笔记本电脑、工业传感器等便携产品。
    发表于 01-13 00:33 138次下载
    <b class='flag-5'>MAX9635</b>中文资料,功耗最低的<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>

    MAX9635内置ADC的环境传感器

    MAX9635环境传感器提供I²C数字输出,可理想用于智能手机、笔记本电脑、工业传感器等便携产品。器件工作电流小于1µ
    发表于 02-11 10:20 1479次阅读

    MAX44009环境传感器LCD背光亮度的控制应用

    本应用笔记主要讲述采用MAX44009环境传感器控制便携式设备(譬如智能手机和平板电脑)背光亮度的应用
    发表于 05-03 09:47 5121次阅读
    <b class='flag-5'>MAX</b>44009<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>LCD背光亮度的控制应用

    MAX44007环境传感器

    MAX44007环境传感器提供I²C数字输出,理想用于智能手机、笔记本电脑、工业传感器等便携产品。器件工作电流小于1µA,是业内功耗最低的
    发表于 07-08 11:59 1517次阅读
    <b class='flag-5'>MAX</b>44007<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>

    三合一(温湿)传感器设计

    本设计采用SHT11温湿度传感器芯片和一款集成了ADC的环境传感器MAX9635实现温、湿度
    发表于 07-16 10:38 4341次阅读
    三合一(温湿<b class='flag-5'>光</b>)<b class='flag-5'>传感器</b>设计

    MAX44009环境传感器的原理框图

    MAX44009环境传感器的原理框图
    发表于 08-26 22:22 1618次阅读
    <b class='flag-5'>MAX</b>44009<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>的原理框图

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

    不同光源条件下的流明读数进行修正。本文探讨了如何利用MAX44007传感器的高级模式调节其对可见光、IR通道的响应,利用MAX44007的寄存
    的头像 发表于 12-13 18:45 729次阅读

    利用MAX44009环境传感器实现LCD亮度控制的简单方案

    本应用笔记介绍了使用MAX44009环境传感器在智能手机和平板电脑等便携式应用中进行背光控制的解决方案。提出了两种不同的控制方案来调节背光亮度。应用笔记提供了提高性能的其他技巧,以及
    的头像 发表于 01-13 15:37 2471次阅读
    利用<b class='flag-5'>MAX</b>44009<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b><b class='flag-5'>实现</b>LCD亮度控制的简单方案