MPR121使用总结

来源:互联网 发布:windows 10怎么调声音 编辑:程序博客网 时间:2024/06/04 17:46

MPR121使用总结

       信息爆炸的时代,写驱动一般通过网络摘抄精炼便可移植成功.一般芯片厂商的寄存器或通信指令也不超过百条,即使复杂的芯片也能在官方获取到较完善的资料说明和驱动案例.但有些芯片功能复杂,官方说明不充分,但特性明显,就已经停产后还是吸引了硬件工程师的目光.原本就复杂的芯片,官方案例不充分,网络资源少之甚少,再加上没有技术支持,是的硬件驱动开发的难度大大提高.本人就为补充一下网络资源,特别写本文,仅供参考.

 

本文阅读说明:寄存器都以十六进制表示(0x),数据以十进制表示,寄存器位以二进制表示(B),注释说明(#)

 

接着就来看看神烦芯片MPR121. (补充一点:MPR缩写”没骗人”)

MPR121芯片功能强大可用作触摸,电容检测,驱动LED等等.最重要的特性可能是超低功耗,在芯片低速扫描下可以将功耗降低到8μA.但也不能说是它的缺点,它的寄存器地址就有0x00~0x80.可配能力和数量令人感叹,那么小芯片功能可以爆表了.也就在有技术支持的一部分开发人员来说,这个芯片可以非常顺利的完成多种功能.

 

因本人需要触摸功能和低功耗功能,所以只对这部分进行配置说明

这里我先引用官网资源

http://www.nxp.com/products/no-longer-manufactured/proximity-capacitive-touch-sensor-controller:MPR121?tab=Documentation_Tab

触摸驱动的应用手册有:

AN3944  #一般高速扫描驱动使用该配置足够

AN4600  #触摸板应用实例

有以上两篇手册已经足够编写一般触摸的应用了.

但有需要注意的问题:启动后的响应时间和低功耗偶尔跳出键值!这个问题将在原理分析后的配置进行说明

触摸功能原理

1电极充电=>2取得电极AD(简称Data)=>3基线(简称BL)- Data取Delta=>4Delta与阈值比较=>5根据滤波参数调整BL

触摸按下:Delta大于阈值(AN3892)

 

启动后响应时间问题解决方法:

1.    配置(0x5D),ESI为B000,到高速扫描,BL会根据Data进行高速变化以适应最终环境

2.    配置(0x5E),CL为B11,初始化BL且以第一次扫描结果为BL值

其他参数可以根据AN3944/AN4600或者百度上的其他资料

补充:0x7D~0x7F根据自身硬件进行配置,作用为Data的范围

 

为了解决偶尔跳出键值的问题(此问题在低速低功耗情况下特别明显)

官方对低速运行配置没有进行详细说明,所以只能依赖运行原理进行配置

需要手册AN3891,描述滤波系统参数和AN3892键值触发条件,可以推测触发原因

触发原因:由于扫描间隔变长,一点点的环境变化导致Data值变化将剧烈导致Delta变大,当Delta值大于阈值则跳出键值

Data变化:环境的潮湿度,干燥Data升高,潮湿Data降低

 

要解决此问题,就需要对原理的3和5部分的相关寄存器进行针对性配置

基本配置原则:BL值减慢上升,加快下降

因为硬件环境不同,以下为配置的基本流程,仅供参考(寄存器以电极0为例)

1.    取出正常按键下的Delta值,取寄存器值即Reg0x1E-Reg0x05<<8|Reg0x04

#触摸板厚度变化和电极面板大小,Delta可能差别很大

#本人测试,触摸裸板时Delta有500,但加上前面板后只有16

2.    配置0x41,阈值略小于Delta

3.    配置0x2B,为1,此寄存器为BL缓慢变化的上升值

#减慢BL上升速度

4.    配置0x2F,为3,此寄存器为BL缓慢变化的下降值

#加快BL下降速度

5.    配置0x2C,为1,此寄存器为BL噪声变化的上升值

#减慢BL上升速度

6.    配置0x30,为3,此寄存器为BL噪声变化的下降值

7.    配置0x2D,为30,此寄存器为上升噪声触发个数

#Data大于0x2B将被计数,当个数大于此限制时,BL增加0x2C的数值

#减慢BL上升速度

8.    配置0x31,为1, 此寄存器为下降噪声触发个数

#加快BL下降速度

9.    配置0x2E,为3,此寄存器为上升数值均值采样个数

#减慢BL上升速度

10.  配置0x32,为0, 此寄存器为下降数值均值采样个数

#加快BL下降速度

11.  此外还可以配置0x33~0x35,触摸判断

12.  除了以上触发原理外还有一级过滤,二级过滤,回弹检测,等等等等过滤配置

附上:MHD,NCL,NHD,FDL说明图

(MHD,可以使Data缓慢变化时,BL跟随变化)


(NCL计数个数,NHD影响BL变化值)


(明显的看出,FDL减慢了BL的变化趋势)


闲话:

本人虽然经常使用网络信息资源,但不常发表文章, 就是因为神烦后才编写发表的,这也是本人第一篇博客,提供给MPR121的使用者参考

关于这个触摸芯片

1.    高速扫描下配置极其简单,但低速时芯片易受干扰只有原理的参考,飞思卡尔就将非常多的过滤选项交给了开发人员

2.    芯片手册包含了过多不同功能的寄存器,内容杂乱,使得使用者上手慢

以上可以得到,想完全发挥这芯片能力,开发人员也要有相当高的能力,而拥有该能力的开发人员不多且又得不到支持的情况下所以这款芯片现在也是濒临灭绝了

欢迎高人指出不足

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 天竺葵花骨朵有虫子了怎么办? 被刺梅的刺扎了怎么办 被刺梅的刺划手了怎么办 虎刺花叶子黄了怎么办 地栽月季叶子发黄怎么办 梅花浇水浇多了怎么办 深水井底下花管进水量小怎么办 盆景对节白腊树叶尖干枯怎么办 四季海棠茎软了怎么办 玫瑰海棠烂根了怎么办 格丽海棠花腌了怎么办 养殖场不能雨污分流怎么办 药店买的药贵了怎么办 神经损伤小便少尿不出来怎么办 手指夹伤出血了怎么办 手指夹破流血了怎么办 喂了宝宝熊胆粉怎么办 不小心擦伤了皮怎么办 吃了减肥药拉肚子怎么办 遇到他心通的人怎么办 被茅山术害了怎么办 鱼缸鱼身上烂了怎么办 鳄鱼龟皮肤烂了怎么办 墨水渗透进皮肤里了怎么办 中药渗透到皮肤里怎么办 甘露醇渗透到皮肤下怎么办 水银弄到眼睛里怎么办 水银粘到皮肤上怎么办 榴莲和虾同吃了怎么办 吃榴莲和虾中毒怎么办 榴莲和虾一起吃怎么办 狗被别人下毒了怎么办 大掌门2没存元宝怎么办 大掌门2转换阵容怎么办 率土之滨s2绝版怎么办 异界气息的装备怎么办 vivo电板没电了怎么办 门套拼接有缝隙怎么办 公司如果一直没有上税收入怎么办 赛车输了俩百万怎么办 交pk金员工不交怎么办