android 电容屏(三):驱动调试之驱动程序分析篇
关键词:android 电容屏 tp 工作队列 中断 坐点计算 电容屏主要参数
平台信息:
内核:linux2.6/linux3.0
系统:android/android4.0
平台:S5PV310(samsung exynos 4210)
android 电容屏(一):电容屏基本原理篇
android 电容屏(二):驱动调试之基本概念篇
android 电容屏(三):驱动调试之驱动程序分析篇
以goodix的gt8105为例
一、总体架构
硬件部分:先看一个总体的图吧,其实触摸屏原理也比较简单,触摸屏和主控芯片间的联系,如下主要有三部分:
1、IIC部分,初始化gt8105的数据和传回主控制的坐标位置信息就是通过IIC这条线传输的;
2、INT,当gt8105初触摸时,会发出中断通知主控接收信息(坐标数据);
3、gt8105电源、复位这一部分,不同芯片有所不同,可以根据触摸屏芯片来配置。
软件部分:
二、电容触摸屏的主要参数(这部分面试的时候也许有人会问的)
记得刚出来找工作时有人问我一些问题,我没答不上来,现在感觉很清晰(那时候刚毕业IIC我都说不全)参数
最小值
典型值
最大值
单位
模拟AVDD(参考AGND)
2.5
2.8
3.6
V
数字DVDD(参考DGND)
2.5
2.8
3.6
V
电源纹波
50(注意电池、充电器的影响)
mV
工作温度
-20
+25
+85
度
工作湿度
-
-
95
%
三、硬件接口电路:
如下图:
SDA
IIC数据 要上拉电阻,为1K;
SCL
IIC 时钟(400KHz)
TP_EN
使能脚(gt8105为高电平)
INT
中断(一直点到触摸屏时中断是一直发出的)
VCC
3.3V 这个电压一直有
GND
地
软件部分,整体流程如下:
三、IIC配置
设备到芯片的数据、初始化值都是从这条总线上传输的,首先我们要配置这个条总线,
/linux/arch/arm/mach-exynos/mach-smdkv310.c,这个因平台而已,地址右移也跟情况而定,如果本来就是7bit的地址就不用移位。
中断触发--中断函数--工作队列调度--功能函数执行