0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

「技术干货」工业触摸屏之驱动开发及异常分析(连载)

武汉万象奥科 2022-06-10 10:54 次阅读

触摸屏作为嵌入式产品中常用的交互设备,具有交互直观,编程简易等特点,本系列文章将以多种角度分析如何选择合适的触摸屏方案及常见的故障解决方法。本文主题为电阻屏的驱动组成以及多数触摸屏的异常分析。

1.1 测试环境

处理器:AM335x

内核版本:Linux-3.2

硬件条件:四线电阻屏、五线电阻屏

1.2 驱动组成部分

触摸屏的处理流程离不开,响应中断上报事件,对于电容屏同样有效的。所以对于触摸屏,只需仅仅把握中响应中断上报事件的流程,即可定位是软件还是硬件故障。

以AM335x的电阻屏为例,涉及的驱动子系统列表如表1.1所示。触摸子系统是对触摸屏的抽象层,输入子系统提供符合上层应用使用的接口,中断子系统负责接收外设的中断信号ADC子系统负责提供电场信号以及采集电压值。

表1.1 电阻屏相关驱动

get?code=MDJiNTM3MzQ0YjdjZWVlN2ZmOWQ5MThhNTY0OGFlYTQsMTY1NDgyNjA3MjU1Mw==

1.3 AM335x电阻屏驱动

相关代码位置如表1.2所示。

表1.2 电阻屏代码路径

get?code=MmEyZjQxYTUwN2U5OGU0ZWJmMzhlZWUyOTdkZDIxZTYsMTY1NDgyNjA3MjU1Mw==

板级文件记录下ADC模组中哪些通道用作触摸功能,哪些通道用作模数转换功能,如代码清单1.1所示。

代码清单1.1 板级描述文件

路径:arch/arm/mach-omap2/board-am335xevm.c

get?code=MDQyOTZkMDJlY2Y1MmU3NDVhNjMwZDM4MDc4MmMzYzIsMTY1NDgyNjA3MjU1Mw==

ADC模块驱动是对ADC通道的抽象整理,会涉及部分触摸的寄存器。例如《【应用技术】触摸屏技术之二:原理分析》中提到CTRL Register的AFE_Pen_Ctrl Bits用于选择中断触发信号输入脚,如代码清单1.2所示。

代码清单1.2 ADC模块驱动

路径:drivers/mfd/ti_tscadc.c

get?code=OGEyODZmMzUzZDVkYWU5YjE3NGU3MjIwOTQwMzkwOGUsMTY1NDgyNjA3MjU1Mw==

最后就来介绍负责抽象整个触摸设备的触摸屏驱动文件,触摸驱动内封装了中断、ADC模组的寄存器操作、输入事件的上报工作。

设置X轴采集时的配置如代码清单1.3所示。结合《【应用技术】触摸屏技术之二:原理分析》的《四线屏寄存器配置》和《五线屏寄存器配置》内容可知,stepconfigx为X轴采集时的通用配置,当系统设备为四线模式时,开启XPP、XNN形成电场,INP值代表采集引脚为AN2。当系统设备为五线模式时,开启XPP、YNN、XNN、YPP形成电场,INP_5代表采集引脚为AN4。

代码清单1.3 X轴ADC配置

路径:drivers/input/touchscreen/ti_tsc.c

get?code=Nzc0ZDg5ZDA3ZDU0YzE2ZmMyMzJiZjY2Nzc0YTI2ZDIsMTY1NDgyNjA3MjU1Mw==

设置Y轴采集时的配置如代码清单1.4所示,stepconfigy为Y轴采集时的通用配置,当系统设备为四线模式时,开启YPP、YNN形成电场,INP值没有设置,默认使用AN0。当系统设备为五线模式时,开启XPP、YNN、XNP、YPN形成电场,INP_5代表采集引脚为AN4。

代码清单1.4 Y轴ADC配置

路径:drivers/input/touchscreen/ti_tsc.c

get?code=Yjc1NmEwYTI1ZTAwMzBjNzdjMjQzNTNmMDUxOWEwNDksMTY1NDgyNjA3MjU1Mw==

处理器完成ADC采集后,需要触发一个中断,中断处理函数的注册代码如代码清单1.5所示。对于用户层来说,最直观的就是查看此中断在系统中触发几次,所以此时的中断名就是request_irq内传入的中断名参数

代码清单1.5 中断函数设计

路径:drivers/input/touchscreen/ti_tsc.c

get?code=MjRhNzNkYTI2YzRhMTJhYmZjZmI3YmYxYmUyOWE5NWQsMTY1NDgyNjA3MjU1Mw==

最后一点就是对输入子系统的封装,在触摸屏代码内必不可少的就是input子系统的调用,代码如代码清单1.6所示,input_report即为输入子系统上报函数族,上报事件包括:按键按下、按键弹起、绝对坐标、相对坐标等。所以对于系统来说,最终只要input_report能顺利执行,那么触摸信号就能正常获取。

代码清单1.6 输入子系统设计

路径:drivers/input/touchscreen/ti_tsc.c

get?code=ZWI0ZWFjNDczZjhlODJhZDA0YmM4OTRlMGQxZjM3NWUsMTY1NDgyNjA3MjU1Mw==

1.4 用户空间的排查方法

此处整理了电阻屏的问题定位方法,如表1.3所示。

表1.3 用户空间排查方法

get?code=YjllNGJlNDE1M2U0MzA5YjFhMmZmNWIyYjdjNmNhZjksMTY1NDgyNjA3MjU1Mw==

接下来我们结合一些具体案例来具体看看如何排查触摸问题。

1.4.1 触摸没反应

问题:接上触摸屏没反应。

分析步骤:

  1. 查看dmesg | grep touch,查看系统是否有加载触摸驱动;此部分有内核配置选择,没有信息则定位为驱动异常,查看内核配置或初始化函数。
  2. 查看/proc/interrupts文件,看中断计数是否有变化。若点击屏幕,中断计数没变化,根据之前所说的中断输入引脚,说明此情况下中断引脚没有接到对应引脚上。

1.4.2 触摸抖动

问题:使用ts_test查看,发现光标在不停闪烁。

分析思路:通过cat /proc/interrupts,查看中断计数,若一直有增加,再用hexdump命令查看输出信息,一般这种不规则情况,是由于中断信号输入引脚接到错误位置,例如五线屏的感应引脚,接到地之后,相当于屏幕一直被按下,所以会不断上报错误事件。也有可能是感应引脚接到不稳定的电平,一直产生高低变化的扰动,系统把这种高低变化的扰动当作触摸屏被按下的信号。

1.4.3 触摸不准

问题:使用五线屏时,四个边角总有一个无法触摸得到。

分析思路:ADC模组有一个输入的参考电压,一般接1.8V,但有些意外情况,将其接到GND,相当于采集点一直无法采集到正常数据。

1.4.4 触摸异常

问题:使用五线屏时,数据乱跳。

分析思路:由上篇文章“【应用技术】触摸屏技术之原理分析”分析可知,五线屏的正常四个角如图1.1所示,(H,H)与(L,L)形成对角分布,在这样X、Y轴的电场才能形成相互垂直的分布,但如果出现图1.2中(H,H)与(L,L)在同一个方向时,就无法形成相互垂直的电场,此时采集出来的感应点数据就是紊乱的。

get?code=NWEyZjAzZTY4M2MyMjQyMjU3Njk2MDMzMDRjMDZlYWUsMTY1NDgyNjA3MjU1NA==

图1.1 正常五线屏电极分布

get?code=ZDg5NGRmMTJmYTY4NjhlMTUwNmE0MWZmYzQzNzU5ZDAsMTY1NDgyNjA3MjU1NA==

图1.2 异常五线屏电极分布

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 触摸屏
    +关注

    关注

    42

    文章

    2131

    浏览量

    113685
  • 显示屏
    +关注

    关注

    28

    文章

    4231

    浏览量

    72703
  • 驱动开发
    +关注

    关注

    0

    文章

    129

    浏览量

    12013
收藏 人收藏

    评论

    相关推荐

    电容触摸屏原理 电容触摸屏和电阻触摸屏有什么区别

    电容触摸屏和电阻触摸屏是两种常见的触摸屏技术,它们在原理、结构和应用方面都有很大的区别。下面将详细介绍电容触摸屏的原理、结构和特点,并与电阻
    的头像 发表于 01-22 16:13 883次阅读

    方法|如何为开发板调试新的触摸屏

    方法|如何为开发板调试新的触摸屏
    的头像 发表于 11-30 11:30 482次阅读
    方法|如何为<b class='flag-5'>开发</b>板调试新的<b class='flag-5'>触摸屏</b>

    工业安卓一体机和工业触摸屏

    工业安卓一体机和工业触摸屏是两种常见的工业控制设备,它们在工业自动化和信息化领域广泛应用。
    的头像 发表于 09-22 15:52 432次阅读

    触摸屏漏电乱点怎么处理 触摸屏时好时坏的原因

    触摸屏时好时坏可能存在以下一些常见原因:   1. 软件问题:触摸屏问题有时可能是由于设备上的软件问题引起的,例如操作系统的故障、驱动程序的失效或冲突等。这些问题可能导致触摸屏的响应
    发表于 09-14 15:33 1593次阅读

    触摸屏物体识别技术有哪些 触摸屏怎么区分电容屏和电阻屏

    电容式触摸屏通过感应电场变化来识别和跟踪触摸物体。常见的电容式触摸屏包括表面电容式触摸屏和投影电容式触摸屏
    发表于 09-06 15:41 1516次阅读

    工业级显示屏触摸屏

    工业级显示屏触摸屏是专为工业应用设计的显示屏,具有高度可靠性、耐用性和适应恶劣环境的特点。这些触摸屏通常应用于工业自动化设备、机器人、医疗仪
    的头像 发表于 08-29 16:10 2941次阅读

    工业触摸屏显示器怎么用

    工业触摸屏显示器怎么用
    的头像 发表于 07-31 17:30 785次阅读

    如何效正触摸屏时钟#硬声创作季

    触摸屏
    或许
    发布于 :2023年06月28日 07:50:34

    工业触摸屏选择考虑哪些因素?

    佳维视-工业触摸屏厂家
    的头像 发表于 06-03 15:23 855次阅读

    电阻式触摸屏工作原理及分类

    电阻式触摸屏是一种常见的触摸屏技术,广泛应用于消费电子、工业控制、医疗设备等领域。其工作原理是通过触摸屏表面的两个导电层之间形成的电阻变化来
    的头像 发表于 06-01 09:20 5743次阅读

    工业触摸屏有哪三种贴合技术?| 瑞翔数码科技有限公司

    随着液晶触摸技术的发展,工控触摸屏越来越多的在工业领域应用,目前市面上主要的工业触摸屏有电容式
    发表于 05-04 10:30