关于TouchPanel的离奇事件

这几天郁闷死了。调了一个touch Driver调了整整3天!期间出现了很奇怪的问题,记录之:

 

1. 校正的时候反反复复点,都出现了一堆错误。对比其他的可用的BSP,touch driver 参数没有区别。想到可能是经过转接板,模拟信号有衰减,但是客户坚持说以前用的是好的,所以我也迟迟没有用他的NK烧进去测试一下,因为烧他那个太麻烦了...结果,这一怕麻烦,把我折磨了整整一天半。后来,没招了,烧进去吧,结果发现他哪一个NK也不行。后来找到一根短的线,插上去,问题解决!

 

2. 换了另外一块屏,原来的参数又不可以用了,那调参数吧。调采样率,调阀值,调最大错误数,还是不可以校正。客户又说是可以用的。这次我聪明了,自己烧了看看再说。结果大跌眼镜,他的居然真的是可以用的。哪是什么回事呢?我的每次采样4个点的时候都至少有两个是相差太大被过滤的。后来想想是不是ADC采样过快了,触摸屏反应太慢。可惜没有触摸屏的Spec,客户也没有。我认真研究了一下三星的SPEC, 想是不是PCLK的问题呢,一看,晕~~~真的是,他能用的是33.2MHZ的,而我的是66.5MHZ的。那调PCLK吧。调了一下,发现要改动太多了,还因为一个触摸屏把其他的都影响了,不划算。那调ADC的分频和等待时间吧。晕的是,把分频调高反而不行,结果我调低了,即是采样率变快了才起了作用!

 

3.HIVE注册表,触摸屏启动时居然没有校正好!不过查看注册表数据是有保存的!~~~~~~~~~~~~~~~其他的音量什么的都正常!

难道是GWES在HIVE注册表没有准备好之前就启动触摸屏驱动了?研究了一下触摸屏的加载顺序,没有找到,编了一个DEBUG版本,发现文件系统很早就初始化好了!在PULIC里面的驱动加入设置校正数据时的调试信息,发现设置的数据是注册表里的数据!!!晕!!!那怎么不起作用呢!!发现重启后重新校正,校正出来的数据跟原来的数据差了几百!!!汗。一定是转接板的问题了。问题解决!!

 

附:

触摸屏的驱动是由GWES启动的。GWES启动触摸屏前会先读注册表的校正数据,然后把数据通过触摸屏驱动保存在一个结构。以后每次采样都会跟这个结构来做比较,计算结果。

你可能感兴趣的:(测试,三星)