接近与环境光强度数字传感器-APDS9930

文章介绍了一款实际的接近传感器的调试驱动过程,帮助读者理解其芯片的引脚定义以及寄存器相关配置说明,让嵌入式工程师能够快速上手接近传感器方面的调试驱动工作。

文章目录

阅读手册

参数含义

实际表现​


    传感器APDS9930为具有两种传感功能的芯片,一方面能够反映周围环境的亮度,另一方面能根据红外测距的原理能够感应物体的靠近。其广泛应用于手机,帮助手机做到根据环境光照强度调节屏幕背光亮度以及接听电话自动锁屏等功能。

阅读手册

    APDS9930封装有8个脚,电和地各一个脚,I2C通信一个数据脚一个时钟脚,还有一个中断脚,可以根据用户设置的光照强度或者接近阈值来触发中断,还有脚LEDA和LEDK分别为芯片内部红外发光二极管的阳极和阴极,阴极一般直接连接芯片的最后一个脚:LDR。这个脚会根据用户的设置来产生不同频率的驱动信号来驱动发光二极管。

    使用这个芯片获取环境光照强度手册说的比较清楚了,我们就简单说一下接近传感这一部分,芯片使用I2C与MCU通信,我这边的实现考虑移植性以及功能需求,决定采用IO口模拟的方式来实现与传感器通信。NXP 半导体(原 Philips半导体)于 30 多年前发明了一种简单的双向二线制串行通信总线,这个总线被称为现在被称为I2C 总线。关于I2C总线的详细介绍详见https://www.nxp.com/docs/en/user-guide/UM10204.pdf?fsrch=1&sr=1&pageNum=1。

    I2C通信举个配置 APDS9930的例子简单说明。首先控制SLC和SDA发送I2C开始标志,然后发送从机地址(0x39)以及写入标志,然后等待一个数据位的ACK。然后发送8位数据COMMAND.这8位数据表明写入的寄存器地址以及操作方式(自增地址模式等),等待ack。然后发送要写入的8位数据以及等待ack,最后发送结束标志。

    我们需要用I2C总线,去配置寄存器Enable Register,使能接近传感功能,Proximity Time Control Register寄存器以及Wait Time Register,配置积分转换时间以及状态机轮转等待时间,以及Proximity Pulse Count Register和Control Register寄存器,配置红外二极管的驱动脉冲数及电流等。下面列出跟接近传感功能相关的参数的意义。

参数含义

    PTIME:接近传感器ADC的积分转化时间,以2.73为一个单位时间。他决定了AD输出的最大Count值,虽然固定积分时间越高,在有效量程的基础上分辨率会有所提高,但是鉴于其会提升累计误差的副作用,建议还是将这个参数设置为最低的时间2.73ms,对应的AD输出MAX_Count为1023。它并不能使有效量程改变。
    PGAIN: 传感器ADC的积分转化比例。他决定了AD输出与距离之间的比例,转化比例越大,距离的变化对AD输出的Count值影响会越明显红外的有效量程的起点和终端都会增大,对起点与终点在别的参数为手册推荐的时候,增大的比较明显。有效的量程会有些许增大。但是受干扰的可能性也会变大。
    PDRIVE:接近红外LED驱动电流大小,分为100mA到12.5mA四个档位,推荐参数为100mA,当调整为此参数更小的时候,有效量程的起点和重点都会明显的缩短,并且量程会减小。在区分离传感器极近距离的mm级别距离变化的时候用到电流值较小。

    PPULSE: 在Prox Accum状态时,驱动接近红外传感的脉冲数,其对起点与终点有明显的更改,有效的量程会有些许增大。但是受干扰的可能性也会变大。手册做的调整这个参数的实验数据截图如下:

实际表现

    由上图可以看出,传感器会根据所射向物体的不同灰度有不同的表现。

    我们的接近功能的实现就利用AD输出满量程的这段距离。举个例子,如上图的8P的配置,灰度在18%~90%之间,其AD从满量程往下衰减的距离为4cm~8cm,及当物品在4cm~8cm之间的距离时,将会从寄存器Proximity DATA Register读出的AD值为满量程,用来区分物体是否接近。


 十六宿舍 原创作品,转载必须标注原文链接。
©2023 Yang Li.  All rights reserved.
欢迎关注『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十六宿舍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值