资讯详情

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

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

1.1 测试环境

处理器:AM335x

内核版本:Linux-3.2

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

1.2 驱动部件

触摸屏的处理过程与响应中断报告事件密不可分,对电容屏也有效。因此,对于触摸屏,只要掌握中断报告事件的过程,就可以定位是软件还是硬件故障。

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

表1.1 电阻屏相关驱动

1.3 AM335x电阻屏驱动

相关代码位置如表1所示.2所示。

表1.2 电阻屏代码路径

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

代码清单1.1 板级描述文件

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

ADC模块驱动是正确的ADC通道的抽象分类将涉及一些触摸寄存器。例如,触摸屏技术第二:原理分析CTRLRegister的AFE_Pen_CtrlBits用于选择中断触发信号输入脚,如代码清单1.2所示。

代码清单1.2 ADC模块驱动

路径:drivers/mfd/ti_tscadc.c

最后,介绍负责抽象整个触摸设备的触摸屏驱动文件,包装中断、ADC报告模块的寄存器操作和输入事件。

代码清单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

代码清单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

处理器完成ADC采集后,需要触发代码清单1等中断处理函数的注册代码.5.显示。对于用户层来说,最直观的是检查系统中的中断几次触发,所以此时的中断名称是request_irq中断名参数传入。

代码清单1.5 中断函数设计

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

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

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

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

1.4 调查用户空间的方法

这里整理了电阻屏的问题定位方法,如表1所示.3所示。

表1.3 用户空间调查方法

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

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)在同一方向上,无法形成相互垂直的电场,此时收集到的感应点数据混乱。

图1.1 五线屏电极分布正常

图1.2 五线屏电极分布异常

标签: 27000mfd电容145mfd电容电容170mfd

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台