【探讨】关于2440 触摸屏驱动的怪异现象分析
2010-12-30 16:36
337 查看
作者:gooogleman
前阵子,俺已经发帖声明解决了2440 触摸屏跳点问题,可是这两天不断有技术支持反应俺的机器很多到了野外出现无法双击的现象,今天返回一个机器,说刚用的时候没有问题,当电池充电一晚上后触摸屏经常变的不能双击了。开始我以为触摸屏被模具压住了,后来拆开来,使用效果也不怎么好,不知道怎么回事,我桌面的那个机器刷同一个系统就非常好,感叹做个产品不容易。
据经验,双击不成功,或者很容易单击变右键,一般是AD采样延迟太长,或者采样周期太长,所以我要从这个下手,看了2440 ADC 触摸部分,有如下:
A/D Conversion Time
When the GCLK frequency is 50MHz and the prescaler value is 49, total 10-bit conversion time is as follows.
A/D converter freq. = 50MHz/(49+1) = 1MHz
Conversion time = 1/(1MHz / 5cycles) = 1/200KHz = 5 us
NOTE
This A/D converter was designed to operate at maximum 2.5MHz clock, so the conversion rate can go up to
500 KSPS.
PRSCEN [14] A/D converter prescaler enable
0 = Disable
1 = Enable
PRSCVL [13:6] A/D converter prescaler value
Data value: 0 ~ 255
NOTE: ADC Freqeuncy should be set less than PCLK by
5times. (Ex. PCLK=10MHZ, ADC Freq.< 2MHz)
DELAY [15:0] 1) Normal Conversion Mode, XY position mode, auto position
v_pADCregs->ADCDLY = 500;
v_pADCregs->ADCCON = (1<<14) | (ADCPRS<< 6) | (7<<3);
#define ADCPRS 49 // 200
从这个看来,得从上面的ADCDLY以及ADCPRS入手,根据上面信息,ADC 采样速度是50/(49+1)=1M,那么现在只要降低ADCDLY和ADCPRS的值就可以达到目的,好,先把ADCDLY改为300 试试,然后再改改ADCPRS。
前阵子,俺已经发帖声明解决了2440 触摸屏跳点问题,可是这两天不断有技术支持反应俺的机器很多到了野外出现无法双击的现象,今天返回一个机器,说刚用的时候没有问题,当电池充电一晚上后触摸屏经常变的不能双击了。开始我以为触摸屏被模具压住了,后来拆开来,使用效果也不怎么好,不知道怎么回事,我桌面的那个机器刷同一个系统就非常好,感叹做个产品不容易。
据经验,双击不成功,或者很容易单击变右键,一般是AD采样延迟太长,或者采样周期太长,所以我要从这个下手,看了2440 ADC 触摸部分,有如下:
A/D Conversion Time
When the GCLK frequency is 50MHz and the prescaler value is 49, total 10-bit conversion time is as follows.
A/D converter freq. = 50MHz/(49+1) = 1MHz
Conversion time = 1/(1MHz / 5cycles) = 1/200KHz = 5 us
NOTE
This A/D converter was designed to operate at maximum 2.5MHz clock, so the conversion rate can go up to
500 KSPS.
PRSCEN [14] A/D converter prescaler enable
0 = Disable
1 = Enable
PRSCVL [13:6] A/D converter prescaler value
Data value: 0 ~ 255
NOTE: ADC Freqeuncy should be set less than PCLK by
5times. (Ex. PCLK=10MHZ, ADC Freq.< 2MHz)
DELAY [15:0] 1) Normal Conversion Mode, XY position mode, auto position
v_pADCregs->ADCDLY = 500;
v_pADCregs->ADCCON = (1<<14) | (ADCPRS<< 6) | (7<<3);
#define ADCPRS 49 // 200
从这个看来,得从上面的ADCDLY以及ADCPRS入手,根据上面信息,ADC 采样速度是50/(49+1)=1M,那么现在只要降低ADCDLY和ADCPRS的值就可以达到目的,好,先把ADCDLY改为300 试试,然后再改改ADCPRS。
相关文章推荐
- 触摸屏驱动分析之S3C2440_ts.c
- 触摸屏驱动分析之S3C2440_ts.c
- 触摸屏驱动分析之S3C2440_ts.c
- 关于mini-2440 的spi驱动移植及分析
- (原创)6410触摸屏驱动分析(s3c-ts.c)(Linux)(分析)
- linux input输入子系统分析《三》:S3C2440的触摸屏驱动实例
- Spring3.1.0实现原理分析(五).关于循环引用的探讨
- 2440具体分析触摸屏实验代码(转)
- 触摸屏驱动分析之——ts_test.c
- Mini2440 触摸屏驱动分析
- FL2440开发板spi驱动分析(3)
- 触摸屏驱动分析
- android TP(触摸屏)问题现象分析和解决方案汇总
- linux 触摸屏驱动分析
- S3C2410驱动分析之触摸屏驱动
- linux触摸屏驱动开发中的s3c_ts_probe()函数的分析
- TCC89XX方案上的ADC触摸屏驱动分析
- FL2440开发板spi驱动分析(1)
- Linux下I2C接口触摸屏驱动分析
- wince 2440串口驱动PDD分析(作者:wogoyixikexie@gliet)