STK3311-X传感器调试(驱动)总结

STK3311-X传感器调试(驱动)总结

最近在1861平台上调试光感&接近传感器,在这先给大家概述下工作原理
stk3311是三合一传感器,环境光传感器、红外光传感器、红外发光二极管,红外光传感器(光电二极管)、红外发光二极管(IrLED)共同完成距离检测功能。

a)距离传感器因为包含红外光传感器、红外发光二极管,所以会有两个供电引脚分别为其供电,这两个供电可以使用相同的电源,也可以使用不同的电源,当使用相同的电源时候,因为两部分的电路对电流要求不一样,而且红外发光二极管工作的电流可能较大、周期性变化,会在电源上产生一定的波动,所以需要在VDD上串联RC滤波,降低发光二极管对红外光传感器的影响。使用两路电源供电时则无该问题。所以,AE在答复是会说两路使用同一电源问题不大(滤波可以解决潜在风险)。
b)发光二极管发的红外光,被人体反射回 红外光传感器,传感器检测到接收量超过一定门限会判定人体接近。
在调试过程中,光感是可用的,但是接近功能不通,检查了好久发现,往芯片寄存器00H(状态寄存器)写值不生效,写完后cat值发现一直为默认值0,。至此,功能不通的原因算找到了。将之前的芯片(同一型号,不通系列,寄存器地址一样,默认值一样,唯一差别是标识片子的ID不一样)放到本项目,做交叉验证,新sensor在老项目上能用,怀疑本项目供电没分离导致。但是硬件改版的可能不大,需要软件做规避。经过无数的调试手段发现,在打开测试APP瞬间,唯一供电2.85V电有个跌落,用红外相机看不到sensor的红外LED信号,接近sensor此时不可能正常工作。问题可以锁定在sensor的供电上,本项目给sensor的供电是PMU上的ALDO1,继续深挖PMU和sensor的芯片手册,发现ALDO1限电流只有20mA,且sensor红外LED驱动电流默认为100mA,现修改芯片寄存器03H的值,将红外LED驱动电流改为12.5mA后,手动修改00H的值能生效,打开测试APP,接近传感器功能正常。

总结下问题原因:硬件设计的只提供一路ALDO1电给sensor供电,芯片手册推荐使用两路独立电供电,且ALDO1的限电流只有20mA,而sensor红外灯的默认驱动电流为100mA,导致外部驱动电流不足。之前项目为两路独立供电(VSYS和DLAO1),且DLAO1的限电流为300mA。坑埋的太深!!!

STK3311-X传感器调试(驱动)总结_第1张图片
原理图奉上。

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。

你可能感兴趣的:(kernel)