四线电阻式触摸屏驱动的优化

      触摸屏在电子产品中用得越来越多,其技术也在不断发展。目前常见的有电阻式、电容式、红外式和表面声波式等几大类,其中电阻式最为普遍。最近在WinCE下调试了一款四线电阻式的触摸屏驱动,利用检测触摸压力的方法实现了动态调整触摸屏的灵敏度。

      一般的嵌入式处理器中会有几个通道的AD,通常有四个通道用于连接触摸屏的XP、XM、YP和YM。如果MCU 没有Touch Screen Interface,可以选择如TSC2003一类的触摸屏控制器芯片。MCU可通过IIC总线与其通讯,以得到相应的触摸屏AD采样值。目前正在调试的TCC8900芯片内部集成了触摸屏控制器,原厂的BSP中也提供了相应的驱动,实际测试时发现,该驱动在4.3寸屏上工作得挺好,但在某些7寸屏上经常会出现跳笔,尤其是在开始按下和最后抬起时,跳笔非常严重。在快速手写时也有跳笔的情况,并且导致笔迹非常不圆滑。在触摸驱动中使用多次采样、去头掐尾求平均等简单滤波算法,问题仍然存在。经分析,问题的根源在于轻点触摸屏时采样值严重不准,所以即使采用滤波算法也无济于事了。解决问题要从根本出发,在上报数据时须严进宽出,压力较小的采样直接PASS,这样可以很好的去除一些抖动和跳笔。

      参考TSC2003获取触摸压力的方法修改触摸驱动,单独获取XP、YP等值,通过计算得到按下触摸屏时的电阻值。该值与点击触摸屏的位置无关,只与点击触摸屏压力大小有关,压力越大,该值越小。在实际使用时规定一个参考值,当该值小于该参考值时才认为是可靠按下,将采样得到的坐标值上报,否则直接扔掉。由于触摸屏硬件的差别,不同触摸屏的灵敏度可能不一样,可以通过应用程序修改驱动中的参考值,从而实现动态调整触摸屏灵敏度。修改后实际测试发现,效果比原来要好一点。

      按下四线电阻式触摸屏,采样时的等效电路图如下所示。

XPOS=V*R2/(R1+R2) (式1)

Z1POS=V*R2/(R3+Rt+R2) (式2)

Z2POS=V*(Rt+R2)/(R3+Rt+R2) (式3)

由式2和3可得,Rt=(Z2/Z1-1)*R2 (式4)

由式1可得R2=XPOS*(R1+R2)/V,即R2=XPOS*(RXplate)/V (式5)

将式5和式4可得,

      对于同一触摸屏来说,Rx-plate是固定的,因为使用的是12bit的AD,故除以4096。对于触摸屏压力检测来说,式6即能说明当前压力大小关系。

Ft=XPOS*Z2POS/Z1POS-XPOS (式6)

      Ft的绝对值越小,说明按下越可靠,采样值有效。反之,可以认为是轻按,采样值无效。

时间: 2024-09-23 01:33:35

四线电阻式触摸屏驱动的优化的相关文章

调试四线电阻式触摸屏驱动的注意点

      在<四线电阻式触摸屏驱动的优化>基础之上,针对手写输入的灵敏度参数过低又做了一些调整,比原来有所改善,如下图所示,现在能达到72/s.一般以正常速度手写时为60/s左右,所以应该能满足绝大多数的需求了.               CPU占用率比原来略有升高,如下图所示.             总的来说,调试触摸屏驱动时需要考虑如下三个问题:       连笔快速书写时是否流畅.笔迹是否圆滑       轻按时是否有抖动或者跳笔       点击触屏和滑动时CPU的使用率    

WinCE下电阻式触摸屏的测试方法

      很早以前在<四线电阻式触摸屏驱动的优化>一文中,介绍了TCC89平台触摸驱动的改造方法.实践证明,使用此方法后,触摸屏几乎再也没有出现跳笔的情况,达到了预期的目的.最近YJUN在调试应用时,发现一个问题,怀疑跟触摸屏驱动有关系--触摸驱动在一秒内上报给操作系统的点数太少,导致界面显示在滑动时不太流畅.为了定量测试该参数,写了一个简单的小工具TSCApp.exe,界面如下图所示.       图中的37/s表示的是手写输入的灵敏度参数.在按下触摸屏并快速的滑动时,观察该参数的大小,该

QT 触摸屏 驱动

要:本文主要介绍了在嵌入式 Linux 系统下基于 Qt/Embeded 的触摸屏驱动的设计,通过对 Linux 设备 驱动和Qt/Embedded设备驱动接口的工作原理和机制介绍,并结合大量源代码进行分析,提出了基于Qt/Embeded 的触摸屏驱动的开发方案.Linux 下的设备驱动基础   Linux 系统主要将设备分成 3 种类型:字符设备. 块设备和网络接口.每个模块通常实现其中一种类型,相应的模块可分为字符模块.块模块和网络模块 3 种.然而这种分类方式并不是非常严格,程序员可以构造

linux-s5pv210电热屏触摸屏驱动移植问题

问题描述 s5pv210电热屏触摸屏驱动移植问题 找了一个别人都能用的s5pv210驱动,然后我把驱动编译进内核,放在/drivers/input/touchscreen下,然后增加i2c设备出现错误.移植好tslib后,开发板dev下没有event0之类的../ts_test,no such file....../ts_c....., ts_open:no such file.......怎么办啊? 解决方案 电容屏,内核是linux3.0.8 解决方案二: 好有前途的embeded,就是喜欢

“电容式触摸屏”项目

宇顺电子今日公告,公司总投资9727万元通过全资子公司长沙宇顺触控技术有限公司投资建设"电容式触摸屏"项目.公告称该项目总投资中1709.65万元为超募资金,建成后将年产720万片电容式触摸屏产品,预计年销售收入3.74亿元,税后净利润2478.6万元,税后静态投资回收期为3.92年.公告称该项目与日.韩.台湾地区及大陆的供应商建立稳定的合作关系,保证了原材料供应,并拥有一支规模庞大.实力雄厚的技术团队,与下游客户如康佳.华为.欧姆龙.美的等建立了长期紧密的合作关系,旺盛的需求有助于公

AM335x(TQ335x)学习笔记——触摸屏驱动编写

前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱动源码,单纯的配置DTS是无法完成TQ335x的触摸驱动移植工作的,因此,本文参考内核中原有的pixcir_i2c_ts驱动编写TQ335x的触摸屏(TN92)驱动. 在之前移植TQ210时,我已经编写过TQ210的触摸屏驱动,我的TQ335x还是使用的TQ210的屏,因此,难度不是很大.这里需要说

长信科技3.3亿投资电容式触摸屏

每经记者 彭海斌 上市两个月后,长信科技(300088,收盘价29.40元)首次动用超募资金进行项目投资,公司瞄准的是主营业务产业链的下游-电容式触摸屏.长信科技今日(8月11日)公告称,公司拟使用超募资金3.31亿元建设年产2000万只中小尺寸电容触摸屏项目.公司预计项目投产后,年销售收入3.08亿元,投资净利润率达3.46%. 长信科技于今年5月份上市,首发实际募集资金净额7.14亿元,超募资金5.09亿元.此前公司使用4525万超募金用于补充营运资金,提前偿还部分银行借款后,尚有4.64亿

宇顺电子投资9727万建“电容式触摸屏”

陈萍 曲飞帆 陈益刊 宇顺电子今日公告,公司总投资9727万元通过全资子公司长沙宇顺触控技术有限公司投资建设"电容式触摸屏"项目. 公告称该项目总投资中1709.65万元为超募资金,建成后将年产720万片电容式触摸屏产品,预计年销售收入3.74亿元,税后净利润2478.6万元,税后静态投资回收期为3.92年. 公告称该项目与日.韩.台湾地区及大陆的供应商建立稳定的合作关系,保证了原材料供应,并拥有一支规模庞大.实力雄厚的技术团队,与下游客户如康佳.华为.欧姆龙.美的等建立了长期紧密的合

Linux触摸屏驱动测试程序范例【转】

转自:http://blog.sina.com.cn/s/blog_4b4b54da0102viyl.html 转载2015-05-09 16:28:27 标签:androiditlinux 触摸屏驱动测试 由于mini2440的触摸屏驱动是基于input子系统的,而input子系统给用户层提供的是input_event结构体,我们主要是在应用层接收这个结构体,然后对其类型进行分类,取出我们需要的数值. struct input_event { struct timeval time;