您现在的位置:首页 > 技术资料 | ![]() |
触摸屏系统应用中的问题及解决方法 本文以AD7843在触摸屏系统中的一个实际应用为例,重点分析了在使用AD7843的过程中遇到系统资源占用、测量值偏差以及外部干扰等问题,并提出了相应的解决方法。 AD7843是ADI公司生产的一种四线式触摸屏控制器,目前广泛应用于电阻式触摸屏输入系统中。尽管ADI公司给出了相关的典型应用和应用注意,但是在实际使用过程中仍然会遇到一些问题,比如怎样用硬件实现AD7843的时序逻辑、如何提高测量精度、如何抗干扰,以及提高测量可靠性等。 AD7843数字转换器在一个12位逐次逼近式比较寄存器(SAR)ADC架构上集成了用于驱动触摸屏的低通阻抗开关。这些器件不使用内部基准电压,当以大于125kSaps的吞吐率运行时的最大功耗小于1.4mW。它们还带有10KeV到12KeV的模拟输入ESD保护,增强了抗ESD能力,以避免关键的内部系统元件损坏。使用单2.2V 到5.25V的电源工作。 AD7843串行接口的一次完整操作需要24个DCLK.,前8个脉冲接收8位的命令,并在第6个脉冲的上升沿开始采样,从第9个脉冲开始进入转换阶段,输出12位采样值,转换结束进入空闲阶段。直到24个DCLK结束,CS置高电平,一次测量结束。此外,AD7843还支持其它的工作方式,这里不予详述。 应用实例 图1的硬件接口示意图为一个驱动触摸屏应用,我们的触摸屏是四线电阻屏,它可以等效成水平方向和垂直方向的两个线性电阻。当有键按下时,通过控制AD7843可以测量到触摸位置对应的水平和垂直方向的电压值,进而通过计算得到触摸位置的坐标值。 AD7843的控制时序由386EX(属Intel X86系列CPU) 产生。测量命令的发送和测量数据的接收由386EX的同步串口完成。图1中DCLK信号是由386EX同步串口的发送时钟TXCLK和接收时钟RXCLK经过逻辑转换产生,SSIORX和SSIOTX分别是386EX同步串口的数据接收端和数据发送端。其一次测量周期的流程如图2所示。 设计中的问题及解决方法 1. 占用系统资源问题由上面的例子可知,AD7843的所有控制时序是由软件完成的。而且为了保证时序不被影响,一次测量周期内不应被中断打断,所以就必须屏蔽高级中断。这样在实际操作中就遇到了一个问题,在比较频繁地操作触摸屏时,会大量占用CPU的时间,从而影响系统其它任务的执行,例如串口数据因来不及处理而造成数据的丢失甚至通讯中断。为了解决这个问题,我们采用一个逻辑器件EPM7032,由硬件来生成AD7843的控制时序,从而大大减轻了CPU的负担。下面介绍硬件逻辑如何实现。我们将这部分逻辑看作一个芯片,其引脚定义如下: 其工作流程是:当有键按下时,CPU(386EX)会将cs置低,CPLD逻辑首先发8个clkout脉冲,在dout脚输出测量X坐标的命令,然后再发16个脉冲,在clkssio脚输出与clkout同步的16个脉冲到386EX的同步串口的接收时钟引脚。386EX此时从同步串口接收到16位数据,取前12位作为实际采样值。然后产生测量Y坐标的时序,与测量X坐标的方法相同。完成一次测量,再延时一段时间,完成第二次测量,与第一次测量方法相同。测量两次的目的是为了削除键抖动。386EX的同步串口接收到四次测量数据后将cs置低。 其内部逻辑的VHDL完整代码请参见《电子工程专辑》网 2. AD7843的测量值有偏差 在实际的使用过程还遇到另外一个问题,在按触摸屏的过程中,有时测量出的按键位置有偏差,观察AD7843相关引脚波形发现输入电压有抖动。分析后发现抖动可能由两方面产生: 3. 因外界干扰,触摸屏按键无响应触摸屏在现场应用中有时会出现“死机”现象(触摸屏按键无响应)。分析发现现场环境较恶劣,存在较强的电磁干扰,因此在触摸屏的引脚叠加了高频干扰脉冲,影响了AD7843的正常工作时序,造成AD芯片工作不正常。解决方法是在AD的关键引脚DCLK、DIN、DOUT对地接0.001u的高频滤波电容。 将上述解决方法应用到触摸屏系统后,在现场应用一年多,未出现按键无响应、按键坐标值错误等故障,运行良好。
|