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

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

3天内不再提示

AP3216C三合一环境传感器使用指南

CHANBAEK 来源:嵌入式Linux系统开发 作者: Jason 2023-04-17 18:01 次阅读

博主最近在调试 AP3216C 三合一环境传感器,由敦南科技推出的一款传感器,支持环境光强度(ALS)、接近距离(PS)和红外线强度(IR)这三个环境参数检测

1、前言

芯片可以通过 I2C 接口与主控制相连,并且支持中断。

2、传感器特性

  1. I2C 接口,快速模式下波特率可以到 400Kbit/S
  2. 多种工作模式选择:ALS, PS+IR, ALS+PS+IR, PD 等等
  3. 内建温度补偿电路。
  4. 宽工作温度范围(-30°C ~ +80°C)。
  5. 超小封装,4.1mm x 2.4mm x 1.35mm
  6. 环境光传感器具有 16 位分辨率(0~65535)。
  7. 接近传感器和红外传感器具有 10 位分辨率(0~1023)。
  8. 4 个用户可选动态范围
  9. Anti-flicker rejection (reject 50/60Hz)(防闪烁抑制)
  10. 高灵敏度@darkened glass
  11. 4 个可编程红外 LED 电流输出
  12. 高环境光抑制
  13. 串扰补偿
  14. 符合 RoHS 安全标准

典型应用

AP3216C 常被用于手机、平板、导航设备等,其内置的接近传感器可以用于检测是否有物体接近,比如手机上用来检测耳朵是否接触听筒,如果检测到的话就表示正在打电话,手机就会关闭手机屏幕以省电。 也可以使用环境光传感器检测光照强度,可以实现自动背光亮度调节。

目标设备

  1. 手机、平板电脑
  2. 个人导航系统
  3. 笔记本电脑/超级本
  4. LCD/PDP电视背光系统
  5. 数码相框
  6. 电容式触摸面板的应用

功能框图

图片

典型应用电路

图片

图片

图片

图片

3、参考资料

《AP3216C_Preliminary_Datasheet_Rev0.86.pdf》

4、引脚说明

图片

5、工作模式

ALS,PS+IR,ALS+PS+IR,PD,ALS 一次,SW Reset,PS+IR一次和ALS + PS+IR一次。

6、I2C 读写地址

从地址0x1E

7、寄存器

系统寄存器表

图片

图片

图片

翻译如下

图片图片

0X00 这个寄存器是模式控制寄存器,用来设置 AP3216C 的工作模式,一般开始先将其设置为 0X04,也就是先软件复位一次 AP3216C。

接下来根据实际使用情况选择合适的工作模式,比如设置为 0X03,也就是开启 ALS+PS+IR。

从 0X0A~0X0F 这 6 个寄存器就是数据寄存器,保存着 ALS、PS 和 IR 这三个传感器获取到的数据值。

如果同时打开 ALS、PS 和 IR ,读取间隔最少要 112.5ms,因为 AP3216C 完成一次转换需要 112.5ms。

8、代码

博主用的是轮询去读数据,大家也可以配置成中断方式。

AP3216C.H

#define AP3216C_ADDR     0X1E

#define AP3216C_SYSTEMCONG  0x00
#define AP3216C_INTSTATUS   0X01
#define AP3216C_INTCLEAR    0X02
#define AP3216C_IRDATALOW   0x0A
#define AP3216C_IRDATAHIGH  0x0B
#define AP3216C_ALSDATALOW  0x0C
#define AP3216C_ALSDATAHIGH  0X0D
#define AP3216C_PSDATALOW   0X0E
#define AP3216C_PSDATAHIGH  0X0F

#define AP3216C_POWER_DOWN   0x00
#define AP3216C_ENABLE_ALL   0x03
#define AP3216C_SW_RESET     0x04

AP3216C 没有 chip id 寄存器,我们先写一个值,然后读出来,如果相等,则表示器件存在。 同时将器件初始化。

u8 AP3216C_Check_And_Init(void)
{
 u8 temp;
 
 I2C_WriteOneByte(AP3216C_ADDR,AP3216C_SYSTEMCONG,AP3216C_SW_RESET);   /*   SW reset   */
 delay_ms(50);
 I2C_WriteOneByte(AP3216C_ADDR,AP3216C_SYSTEMCONG,AP3216C_ENABLE_ALL);   /* enable ALS PS IR */
 
 temp=I2C_ReadOneByte(AP3216C_ADDR,AP3216C_SYSTEMCONG);
     
 if(temp == AP3216C_ENABLE_ALL)
  return 0; 
 else
   return 1; 
}

读取数据

for(i = 0; i < 6; i++) 
{
    buf[i] = I2C_ReadOneByte(AP3216C_ADDR,AP3216C_IRDATALOW + i); 
}
if(buf[0] & 0X80) /* IR_OF 位为 1,则数据无效 */
  ir = 0;     
 else    
  ir = ((unsigned short)buf[1] << 2) | (buf[0] & 0X03);    
als = ((unsigned short)buf[3] << 8) | buf[2];/* 读取 ALS 数据 */
if(buf[4] & 0x40) /* IR_OF 位为 1,则数据无效 */
  ps = 0;                 
 else     
  ps = ((unsigned short)(buf[5] & 0X3F) << 4) | (buf[4] & 0X0F);
printf("ALS:%u ,PS:%u ,IR:%u \\r\\n",als,ps,ir);

读取数据过程中,IR 和 ps 需要先判断数据是否有效,若有效再输出,如注释。

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

    关注

    2526

    文章

    48093

    浏览量

    740066
  • 接口
    +关注

    关注

    33

    文章

    7639

    浏览量

    148494
  • 接近传感器
    +关注

    关注

    5

    文章

    178

    浏览量

    24248
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1346

    浏览量

    120816
  • 环境传感器
    +关注

    关注

    2

    文章

    72

    浏览量

    18384
收藏 人收藏

    评论

    相关推荐

    LabVIEW边干边学系列三合一

    LabVIEW边干边学系列三合一
    发表于 08-12 18:02

    LabVIEW边干边学系列三合一

    三合一
    发表于 01-03 09:58

    LabVIEW边干边学系列三合一

    LabVIEW边干边学系列三合一 ,与大家分享.
    发表于 04-05 09:40

    移动电源方案究竟硬件三合一还是软件三合一?

    最近遇到不少朋友问及移动电源三合一方案的问题,主要纠结与移动电源三合一方案究竟是否成熟?前期市场风传的三合一移动电源烧机事件,真相如何?要解答这个问题,其根本是要把三合一移动电源解决方
    发表于 09-15 22:57

    同步整流 移动电源三合一问题

    本帖最后由 570 于 2013-9-18 14:34 编辑 最近遇到不少朋友问及移动电源三合一方案的问题,主要纠结于移动电源三合一方案究竟是否成熟?前期市场风传的三合一移动电源烧机
    发表于 09-18 14:32

    移动电源硬件三合一方案和软件三合一方案对比

    本帖最后由 yidu01 于 2013-10-21 11:01 编辑 最近遇到不少朋友问及移动电源三合一方案的问题,主要纠结与移动电源三合一方案究竟是否成熟?前期市场风传的三合一移动电源烧机
    发表于 10-21 10:40

    新人提问:移动电源方案软件三合一好还是硬件三合一好?

    新人提问:移动电源方案软件三合一好还是硬件三合一好?刚开始做移动电源这行,时间不长,对于这个移动电源方案软件三合一还是硬件三合一两者的把握
    发表于 10-23 14:05

    三合一温湿光传感器有什么优点?

    本设计采用SHT11温湿度传感器芯片和款集成了ADC的环境传感器MAX9635,实现温、湿度及光照三合一传感器设计。旨在为了解决在对
    发表于 03-11 06:01

    LabVIEW边干边学系列三合一

    LabVIEW边干边学系列三合一
    发表于 05-16 09:51

    「ALIENTEK 阿波罗 STM32F767 开发板资料连载」第三十二章 光环境传感器实验

    AP3216C 简介AP3216C 是敦南科技退出的三合一环境传感器,它包含了:数字环境
    发表于 05-16 12:02

    使用IIC驱动读取AP3216C传感器时出错怎么办

    在使用IIC驱动读取AP3216C传感器时,需要如下时序即两次数据传输之间要重复次起始信号,但无结束信号于是按照时序,编写出以下读取数据函数,在第次数据传输结束后不发送结束信号但发
    发表于 11-10 10:13

    Vishay推出首款三合一环境传感器 VCNL4000

    Vishay推出首款三合一环境传感器 VCNL4000 带有I2C总线界面的短距离接近/环境传感器
    发表于 09-30 12:05 908次阅读
    Vishay推出首款<b class='flag-5'>三合一环境</b>光<b class='flag-5'>传感器</b> VCNL4000

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

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

    环境温湿度及光照三合一传感器设计

    设计了基于I 2 C总线接口的全校准数字式相对湿度、温度传感器环境三合一传感器。其具有数字式输出、免调试、免标定、免外围电路,提供I 2 C数字接口以及8~12位温度感测、湿度
    发表于 12-07 14:25 99次下载
    <b class='flag-5'>环境</b>温湿度及光照<b class='flag-5'>三合一传感器</b>设计

    正点原子开拓者FPGA:环境传感器实验(AP3216C)

    AP3216C 模块的核心就是这个芯片本身。这颗芯片集成了光强传感器(ALS:AmbientLight Sensor),接近传感器(PS: Proximity Sensor),还有一个红外LED
    的头像 发表于 09-11 07:01 1.1w次阅读
    正点原子开拓者FPGA:<b class='flag-5'>环境</b>光<b class='flag-5'>传感器</b>实验(<b class='flag-5'>AP3216C</b>)