主题 : 一线触摸有没有劫持了LCD显示屏? 复制链接 | 浏览器收藏 | 打印
一路走好,下辈子再也不做程序员
级别: 侠客
UID: 32071
精华: 6
发帖: 38
金钱: 490 两
威望: 98 点
贡献值: 6 点
综合积分: 196 分
注册时间: 2010-11-09
最后登录: 2019-10-18
楼主  发表于: 2011-08-01 14:12

 一线触摸有没有劫持了LCD显示屏?

管理提醒: 本帖被 xoom 设置为精华(2011-09-16)
首先申明一下一线触摸没有劫持了什么LCD显示屏,
只是劫持了lcd的背光控制而已,有关一线触摸具体是怎么回事,请继续往下看

最近下载了个linux2.6.38的源码 ,对照的友善的内核从头做移植,想一步步剖析友善的移植过程
但到LCD这块卡了3天,一直不清楚怎么回事。lcd驱动明明移植好了,引导信息正常,可是lcd却没有显示,让人匪夷所思
LCD及触摸移植过程见贴
http://www.aiothome.net/read.php?tid-14261.html

一开始理所当然认为是背光的原因,事实上就是背光的原因,
不过一开始没有详细看友善驱动代码时,被友善误导了,
以为drivers/video/mini6410_backlight.c就是背光控制的驱动,实际上它是给使用普通触摸方案时使用的背光控制,使用一线触摸后,它根本不管用

呵呵,先来说说一线触摸到底是个什么东东吧




这是友善触摸屏的接口,图中的GPE0 is used as OneWire也是误导人的

看这图

很明显GPE0是用来进行背光控制控制的,驱动drivers/video/mini6410_backlight.c中代码
           unsigned long tmp;
        tmp = readl(S3C64XX_GPEDAT);
        tmp = (tmp & ~0x1) | (!!state);
        writel(tmp, S3C64XX_GPEDAT);
也说明了这一点,只不过,使用一线触摸后,GPE0不在能够控制背光了,所有的触摸消息和128级背光都通过PWM1来控制了。



从LCD后面的电阻跳线可以看到连接R34-R37这几个电阻,说明使用了TouchOne的方式,也就是说从CPU引出的TSXM,TSYM,TSXP,TSYP都是悬空的

原来一线触摸的原理就是不使用S3C6410自带的触摸屏接口,不使用arm内部的AD转化,将触摸屏引出的4根线连到了自己的一个AD转化芯片上,
至于怎么处理我们不得而知了,然后再通过PWM1线把数据直接转给CPU,友善顺便通过PWM1线把背光也控制了,这就是他们宣传的128级背光控制的原理。




这就是那个单片机,背光和触摸屏都被它控制了,想更深了解一线触摸的朋友应该没有办法了,友善不会给出这颗单片机里的程序,实际上我也不太想看

友善的一线触摸驱动在drivers/input/touchscreen/mini6410_1wire_host.c中,它会生成两个设备节点
一个是背光控制/dev/backlight-1wire,另一个是触摸屏/dev/touchscreen-1wire,

友善的触摸屏驱动不是标准的输入设备驱动,应为它没有向输入子系统使用input_register_device,也不是使用input_report_abs来报告触摸屏事件,
所以设备节点不会出现/dev/input中,它按照混杂设备的方式自己处理的触摸屏事件
[ 此帖被prettybxp在2011-08-02 19:04重新编辑 ]
一路走好,下辈子再也不做程序员
级别: 新手上路
UID: 56711
精华: 0
发帖: 12
金钱: 60 两
威望: 12 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2011-10-12
最后登录: 2012-01-31
1楼  发表于: 2011-10-24 10:55
威武