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

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

一、      模块框架

1)配置

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

# accelerometer sensor to detect accelerometerfrom x y z axis.


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.
玩陀螺仪游戏,陀螺仪功能是否正常,响应是否灵敏;

MTK6589下传感器框架结构和代码分析以及传感器的参数指标的更多相关文章

  1. Exp4 恶意代码分析 20154320 李超

    恶意代码 概述 恶意代码是指故意编制或设置的.对网络或系统会产生威胁或潜在威胁的计算机代码.最常见的恶意代码有计算机病毒(简称病毒).特洛伊木马(简称木马).计算机蠕虫(简称蠕虫).后门.逻辑炸弹等. ...

  2. Windows下使用doxygen阅读和分析C/C++代码

    Windows下使用doxygen阅读和分析C/C++代码 转自:http://blog.sina.com.cn/s/blog_63d902570100gwk6.html 虽然使用各种IDE或者Sou ...

  3. Cppcheck代码分析下

    1.流解析 解析函数中的可能的代码执行流, 函数实际执行中只会执行代码流中的一条流 分析: 分支语句 if-else ,switch-case         循环语句 while, do-while ...

  4. Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...

  5. pmd静态代码分析

    在正式进入测试之前,进行一定的静态代码分析及code review对代码质量及系统提高是有帮助的,以上为数据证明 Pmd 它是一个基于静态规则集的Java源码分析器,它可以识别出潜在的如下问题:– 可 ...

  6. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(5)(IEnumerable<>补充)

    Asp.net 5的依赖注入注入系列可以参考链接: [Asp.net 5] DependencyInjection项目代码分析-目录 我们在之前讲微软的实现时,对于OpenIEnumerableSer ...

  7. 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)

    构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化 ...

  8. STM32启动代码分析 IAR 比较好

    stm32启动代码分析 (2012-06-12 09:43:31) 转载▼     最近开始使用ST的stm32w108芯片(也是一款zigbee芯片).开始看他的启动代码看的晕晕呼呼呼的. 还好在c ...

  9. 常用 Java 静态代码分析工具的分析与比较

    常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...

随机推荐

  1. paper 48: Latex中如何制作参考文献

    文章写到现在,最后一步就要大功告成了!reference,let's go! 一.用Google来做Latex的bib文件 1. 打开scholar.google.com 2. 定制   Schola ...

  2. Workflow Mailer Notifications设置

    参考:http://www.docin.com/p-651716490.html http://www.360doc.com/content/12/0218/15/3200886_187602886. ...

  3. 关于科台斯k97gprs调试记录(1)

    模块调试 1.gprs模块了解 用流量上网的模块,可以发短信,打电话. 2.AT指令的学习 AT+UART=波特率,流控位,数据位长度,校验控制,停止位长度 AT+NET=TCP/UDP 选择,APN ...

  4. sqlhelper-sql数据库

    using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...

  5. 最懂中文的H5前端框架amazeUI

    Amaze UI 是一个轻量级(所有 CSS 和 JS gzip 后 100 kB 左右)的前端框架, 基于开源社区流行前端框架编写 amazeUI的网址:http://amazeui.org/get ...

  6. android SDK安装容易出错的原因

    1.实际上,安卓SDK安装之后,拷贝到其他的机子上面.配置一下环境变量,就可以跑起来的 2.但是拷贝到其他的机子上面临着一个问题就是Eclipse已经配置了的android环境,需要在新的机子上面修改 ...

  7. Asp.Net MVC 模型验证详解-实现客户端、服务端双重验证

    概要 在asp.net webform开发中经常会对用户提交输入的信息进行校验,一般为了安全起见大家都会在客户端进行Javascript(利于交互).服务端双重校验(安全).书写校验代码是一个繁琐的过 ...

  8. A4纸网页打印——宽高设置

    一.在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标. 经过我仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi . A4纸张的尺寸是2 ...

  9. jenkins+jmeter+ant搭建接口测试平台

    接口测试的重点是检查数据的交换,传递和控制管理过程以及系统间的相互逻辑依赖关系. 接口测试的流程 项目启动后,测试人员要尽早拿到接口测试文档. 开始编写接口测试用例 将接口测试用例部署到持续集成的测试 ...

  10. 【jqGrid for ASP.NET MVC Documentation】.学习笔记.2.jqGrid Model-View-Controller 分离

    1 基本 分离代码 和 描述 ,在ASP.NET MVC 应用程序中是非常重要的.因此,jqGrid 的 mvc 模式使用一个共同的网格安装设置,包括 Model ,Controller 和 View ...