开发者学堂课程【HaaS 物联网应用开发课程:5_2_1_光照信息屏_硬件详解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/801/detail/13847
5_2_1_光照信息屏_硬件详解
内容介绍:
一、硬件介绍
1. 原理图&AP3216C 外观
2.AP3216C 传感器特性
3.AP3216C 内部框图
4.AP3216C 工作模式介绍
5.AP3216C 工作流程
6. AP3216C 工作模式设定
7. AP3216C 测量值获取
8. AP3216CPS 寄存器
9. AP3216CIR 寄存器
10. AP3216C 接近程度判定依据
11. AP3216C 测量稳定时间
一、硬件介绍
1. 原理图&AP3216C 外观
HaaS EDUK1采用的光照传感器是AP3216C,不仅能测量光强度还能测量物体接近程度。
AP3216C 芯片位于屏幕上方,是通过 OLED 扩展接口和 HaaS EDU K1主板连接,最终连接到 HaaS1000的I2C1通道。
下图为 OLED 扩展接口示意图,和俺怕216C 相连是通过I2C SCL1和 SDA1。
左侧图为 AP3216C 的外观图,上下两个孔,一个是测量光强度,一个是测量物体接近程度的。
2.AP3216C 传感器特性
(1)支持l2C 接Fast Mode (400kpps)
(2)7-bit 地址模式,地址∶Ox1E
(3)支持多种连续测量/单次测量及光强度、接近指标单独测试及组合测试
(4)内置温度补偿电路
(5)工作温度范围:-30°C到+80°℃
(6)光强度传感器
16-bit 有效线性输出、4种动态可选范围
在得到光强度传感器的数值之后,需要查看属于哪个范围,然后乘以范围的有效系数得到实际光强度值。
(7)接近传感器
10-bit有效线性输出
3.AP3216C 内部框图
上图为 AP3216C 内部框图,主要有:光亮度敏感元件、接近度敏感元件、ADC 模数转换模块、内部逻辑控制电路(包含条件触发中断功能)、I2C 总线控制器、红外 LED 发射二极管
4.AP3216C 工作模式介绍
根据 AP3216C 的 datasheet 说明,在正常工作时,它共有3种工作模式︰
①ALS 模式
在这种模式下,AP3216C 只对光强度进行量测
②PS+IR 模式
在这种模式下,AP3216C 只对接近程度进行量测
③ALS+PS+IR 模式
在这种模式下,AP3216C 会同时对光强度及接近程度进行量测
三种模式均支持单次量测也支持循环量测,从开始测量到量测到稳定结果的时间如下:
System Mode |
Conversion Time(Typical Value) |
||
ALS |
PS |
IR |
|
ALS |
100ms |
~ |
~ |
PS+IR |
~ |
(PS wait time+1)*12.5ms |
12.5ms |
ALS+PS+IR |
112.5ms |
(PS wait time+1)*112.5ms |
112.5ms |
单独测量 ALS,稳定时间是100ms;单独测量接近程度,稳定时间是(PS wait time+1)*12.5ms;同时测量ALS+PS+IR,ALS 的稳定时间是112.5ms,PS 的典型测量时间变为(PS wait time+1)*112.5ms
5.AP3216C 工作流程
典型工作流程说明:
①对 AP3226C 进行复位
②设定工作模式(连续/单次测量,ALS/PS/IR 组合设定)
③等待硬件测量稳定时间
④发起读取测量值的过程
⑤计算光强度及 PS 值
6. AP3216C 工作模式设定
复位及模式设定是对 AP3216C 的 System Configuration 寄存器进行操作
ADDR (Hex) |
REGISTER NAME |
Bits |
REGISTER COMMAND |
FUNCTIONS/ DESCRIPTION |
Ox00 |
System Configuration (Default : Ox00) |
2:0 |
System Mode (Default : 000) |
000: Power down (Default) 001:ALS function active 010: PS+IR function active 011:ALS and PS+IR functions active 100:SW reset 101:ALS function once 110: PS+IR function once 111:ALS and PS+IR functions once |
·复位操作–通过I2C 向地址为 Ox00的寄存器写入0x4(对应二进制的100)
·模式设定
ALS only 连续测量模式︰通过I2C 向地址为 Ox00的寄存器写入 Ox1(对应二进制的001)
PS/IR only 连续测量模式∶通过I2C 向地址为 Ox00的寄存器写入 0x2(对应二进制的010)
ALS+PS/IR 连续测量模式∶通过I2C 向地址为 Ox00的寄存器写入 Ox3(对应二进制的011)
ALS only 单次测量模式∶通过l2C 向地址为 Ox00的寄存器写入 Ox5(对应二进制的101)
PS/IR only 单次测量模式︰通过l2C 向地址为 Ox00的寄存器写入 Ox6(对应二进制的110)
ALS+PS/IR 单次测量模式︰通过I2C 向地址为 Ox00的寄存器写入 Ox7(对应二进制的111)
7. AP3216C 测量值获取
ALS、PS、IR 值可以通过如下寄存器的值来获取。
寄存器地址及所读取数值详细解析方法请参考下表:
0x0A |
IR Data Low |
7
1:0 |
IR overflow (Read only) (Read only) |
0: Valid lR and Ps data 1 : Invalid lR and PS data IR lower byte of ADC output |
0x0B |
IR Data High |
7:0 |
(Read only) |
IR higher byte of ADC output |
Ox0C |
ALS Data Low |
7:0 |
(Read only) |
ALS lower byte of ADC output |
0x0D |
ALS Data High |
7:0 |
(Read only) |
ALS higher byte of ADC output |
0x0E |
PS Data Low |
7
6
3:0 |
Object detect (Read only) IR overflow (Read only)
(Read only) |
0: The object leaving 1 : The object closed 0: Valid IR, PS data and object detected 1 : Invalid IR, PS data and object detected PS lower byte of ADC output |
0x0F |
Ps Data High |
7
6
5:0 |
Object detect (Read only) IR overflow (Read only)
(Read only) |
0: The object leaving 1 : The object closed 0: Valid IR, PS data and object detected 1 : Invalid IR, PS data and object detected Ps higher byte of ADC output |
8. AP3216CPS 寄存器
PS Data 寄存器详细定义如下:
>PS 有效位数为10bit
>OBJ bit 在有物体靠近的时候被设置成1,否则设置为O
>IR_OF bit 被设置成1代表 PS 值无效(高强度红外光的情况下会出现)
PS Data Register
0x0E |
PS Data Low |
||||
BIT |
B7 |
B6 |
B5 |
B4 |
B3/B2/B1/B0 |
RO |
OBJ |
IR_OF |
Reserved |
Reserved |
PS Data Low |
0x0E |
PS Data High |
||||
BIT |
B7 |
B6 |
B5/B4/B3/B2/B1/B0 |
||
RO |
OBJ |
IR_OF |
PS Data High |
9. AP3216CIR 寄存器
IR 数据有效位数同样为10bit,也有一 个IR_OF来标识 IR/PS 数据是否有效。
0x0A |
IRData Low |
||
BIT |
B7 |
B6/B5/B4/B3/B2 |
B1/B0 |
W/R |
lR_OF |
Reserved |
IR Data Low |
0x0B |
IRData Low |
BIT |
B7/B6/B5/B4/B3/B2/B1/B0 |
RC |
IR Data High |
10. AP3216C 接近程度判定依据
AP3216C 判断物体靠近和远离的动作是通过两组 PS 高低阈值寄存器和 PS Data 寄存器进行比对,PS Data 高于PS High Threshold 之后,则判定为物体远离;PS Data 低于 PS Low Threshold 之后,则视为物体靠近。
PS Low Threshold 计算方法:
Value(Reg_Ox2B)*4 + Value(Reg_Ox2A)
PS High Threshold计算方法:
Value(Reg_Ox2D)*4 +Value(Reg_Ox2C)
11. AP3216C 测量稳定时间
System Mode |
Conversion Time(Typical Value) |
||
ALS |
PS |
IR |
|
ALS |
100ms |
~ |
~ |
PS+IR |
~ |
(PS wait time+1)*12.5ms |
12.5ms |
ALS+PS+IR |
112.5ms |
(PSwait tme+1)*112.5ms |
112.5ms |
0x23 |
PS Mean Time (Default=Ox00) |
|
BIT |
B7/B6/B5/B4/B3/B2/B1/B0 |
|
R/W |
Reserved |
Mean_time |
This control bits are used to setup the PS integrated time.
①
B1BO=00" , 1 time (mean time =12.5ms)(Default)
B1BO='01 , 2 time (mean time =25ms)
③
B1BO=’10' , 3 time (mean timc =37.5ms)4.B1BO='11',
④
time (mcan time =50ms)
0x24 |
PS LED Waiting Time (Default=0x00) |
|
BIT |
B7/B6/B5 |
B4/B3/B2/B1/B0 |
R/W |
Reserved |
PS LED Waiting |
PS only 模式下测量等待时间
LED Waiting time = 0Setup is Ox00=no waiting
LED Waiting time = 1Setup is 0x01=1 mean time
LED Waiting time =3Setup is 0x02=3 mean time
LED Waiting time =7Setup is 0x03=7 mean time
ALS+PS 模式下测量等待时间
LED Waiting time = 0(Setup is 0x00=0, no waiting)
LED Waiting time = 1(Setup is 0x01=1*mean time)
LED Waiting time =3(Setup is ox02=3*mean time)
LED Waiting time =7(Setup is 0x03=7*mean time)
注意:ALS 不会等待,不管是测量 PS 还是要等待一个测量周期,下一次都是对 ALS 进行测量。
PS waiting time (bits 4:0) |
Conversion time for PS |
Conversion time for ALS + PS |
0(Default,nowaiting) |
50ms |
150ms |
1 (1 PS mean time) |
100ms |
300ms |
2 (2 PS mean time) |
150ms |
450ms |
…. |
…. |
…. |
63 (63 PS mean time) |
3200ms |
9600ms |
在 Conversion time for ALS + PS 中测量稳定时间是指 ALS 和 PS 都测量一次的时间。