MTK6589下传感器框架结构和代码分析以及传感器的参数指标



作者:韩炜彬  中国当代著名嵌入式研究专家



一、      模块框架

MTK Modem软件架构 mtk框架_屏幕亮度

 





1)配置



路径:Alps/mediatek/config/$(project)/ProjectConfig.mk



 



# accelerometer sensor to detect accelerometerfrom x y z axis.



l  CUSTOM_KERNEL_ACCELEROMETER=bma050



 



# ALSPS sensor driverto detect ambint lightand the object is close or far awary from device



CUSTOM_KERNEL_ALSPS=cm36283



 



2)驱动代码



a.Hwmsen



alps/mediatek/kernel/drivers/hwmon/hwmsen/hwmsen_dev.c为上图hwmsen部分,提供hwmsen_unlocked_ioctl这个接口给上层调用,同时提供hwmsen_gsensor_add来添加G-Sensor,hwmsen_msensor_add来添加M-sensor。



 



b.重力感应代码



alps/mediatek/custom/common/kernel/accelerometer/mma8452q



c.地磁感应代码



alps/mediatek/custom/common/kernel/magnetometer/mmc328x



mmc328x_init中hwmsen_msensor_add添加传感器的sensor_init_info结构体给hwmsen注册一个新传感器,在init中注册了一个i2c驱动,i2c的probe中注册了一个杂设备类驱动,可以通过ioctl来控制寄存器的设置和XYZ这3轴数据的读取。



 



d.陀螺仪代码



alps/mediatek/custom/common/kernel/gyroscope/mpu3050c



e.光距离代码



alps/mediatek/custom/common/kernel/alsps/ltr558



注册I2C_driver和platform_driver。



 



 



 



二、      模块指标



 



三轴地磁传感器指标(MMC3280MA)



1) 基本功能质量:掌机可以正常使用指南针等应用。



2)  参数指标:



1.      精度:磁力感应精度为±2度,考虑不同环境、干扰等因素,最大误差±5度为可接受范围。



2.      工作温度允许范围:-40℃到+85℃



3.      工作电压允许范围:1.62V 到 3.6V,典型值1.8V



4.      工作电流范围:0.3mA 到 0.8mA,典型值0.55mA



3)  基本验证思路:



1. 使用磁感应应用或游戏,磁感应功能是否正常,响应是否灵敏。



 



三合一光距离传感器(LTR558)



综合指标



1. Active Supply Current :最大300uA,典型值200uA



      2. Standy Current: 最大5uA



      3. initial StartupTime(Standby Mode-> Active Mode):最小100ms



      4. wakeup time fromstandby(Active Mode -> measurement): 应该小于10ms



 



a.光感指标



1)  基本功能质量:通过光感传感器来调节屏幕亮度,响应灵敏。具体应该表现为:



1.      从弱光光环境下移至强光环境,屏幕亮度增强,响应灵敏;



2.      从强光环境下移至弱光环境下后,屏幕亮度降低,响应灵敏;



3.      不存在在同一环境下,通过光感调节,屏幕亮度时暗时亮的表现。



2)  参数指标:



光感范围(两个灵敏度量程):0.01~320lux(0.005lux/count)或2~64K(65535)lux(1lux/count)。



准确度: 当环境Lux照度单位为0时,输出等级应该为0,最大不超过6 count



3)基本验证思路:



    1. 通过光感是否可以自动调节屏幕亮度,响应是否灵敏。  



 



b.距离感应指标



1) 基本功能质量:可以在拨打/接听电话时自动关闭/开启屏幕。



2)  参数指标:



Full Scale ADC Count: 2047。



灵敏度:最小的探测距离为20mm,典型值为50mm。



3)  基本验证思路:



1.      通过距离感应是否可以在拨打/接听电话时自动关闭/开启屏幕,响应是否灵敏。



 



重力感应指标(MMA8452Q)



 



1)基本功能质量:正常旋转屏幕显示,正常玩重力感应游戏。



2)参数指标:



1.      current consumption:6uA到165uA。



2.      数据最大输出速率:800次采样/秒。



3.      灵敏度:2g mode为1024 counts/g;4g mode 为512 counts/g;8g mode为256 counts/g。表现上可操作性良好,没有明显的延时。



4.      方向检测:横向/纵向、正面/反面识别准确。



 



3)基本验证思路:



1. 开启屏幕旋转,90度、180度、270度旋转屏幕,数据显示正常;



2. 玩重力感应应用、游戏,重力感应功能是否正常,响应是否灵敏;



 



陀螺仪指标(MPU3050/6050)



1) 基本功能质量:整合了3轴陀螺仪、3轴加速器,可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术。目标为掌机通过陀螺仪,可以正常玩陀螺仪游戏。不会出现反向、变化不均衡和有违自然物理的现象。



2)  参数指标:



1.      角速度感测器全格感测范围(full scale range):±250至±2000°/sec,表现为应该能够准确追緃快速与慢速动作。



2.      Sleep mode :5uA。



3.      Power consumption with allthree axes and DMP active:6.1mA



3)  基本验证思路:



1. 玩陀螺仪游戏,陀螺仪功能是否正常,响应是否灵敏;