基于tiny210的四线触摸屏驱动修改(一)

本文详细介绍了如何在tiny210开发板上配置Linux内核以支持四线触摸屏。通过修改内核配置文件和驱动程序,实现与开发板上的四线触摸屏的兼容性和正常工作。包括触摸屏驱动的配置、ADC寄存器的定义、驱动程序的修改等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发板:tiny210

内核:linux-2.6.35.7

触摸屏:3.5寸触摸屏    

由于tiny210默认的触摸屏采用的是一线触摸,所使用的驱动是[*]Mini210 1-Wire host and Touch Screen Driver,而现在要使用四线触摸,因此配置内核如下:

     Device Drivers  ---> 

Input device support  --->  

[*]   Touchscreens  ---> 

<*>   S3C touchscreen driver

< >    Mini210 1-Wire host and Touch Screen Driver

/arch/arm/mach-s5pv210/mach-mini210.c找到s3c_device_1wire,并配置如下:

#ifdef CONFIG_TOUCHSCREEN_S3C
&s3c_device_ts,
#endif
#ifdef CONFIG_TOUCHSCREEN_1WIRE
&s3c_device_1wire,
#endif

根据tiny210的datasheet,开发板是支持两个触摸屏的,分别是Touch Screen0和Touch Screen1,在此我们接的是Touch Screen1,所以我们使用的ADC Control Register(7.7.1.1章节)是TSADCCON1,它的地址是 0xE170_1000。而内核中并没有该寄存器的定义,因此我们在/arch/arm/mach-s5pv210/include/mach/map.h定义如下:

#define S5PV2XX_PA_ADC1         (0xE1701000)

#define S3C_PA_ADC1              S5PV2XX_PA_ADC1

接下来我们在/arch/arm/mach-s5pv210/mach-mini210.c中根据datasheet修改其中针对触摸屏驱动的相关参数:

#if defined(CONFIG_TOUCHSCREEN_S3C)

static struct s3c_ts_mach_info s3c_ts_platform __initdata = {

       .delay                  = 10000,

       .presc                  = 49,

       .oversampling_shift     = 6,//2

       .resol_bit              = 10,//12

       .s3c_adc_con            = ADC_TYPE_2,

};

 

/* Touch srcreen */

static struct resource s3c_ts_resource[] = {

       [0] = {

              .start = S3C_PA_ADC1,

              .end   = S3C_PA_ADC1 + SZ_4K - 1,

              .flags = IORESOURCE_MEM,

       },

       [1] = {

              .start = IRQ_PENDN1,

              .end   = IRQ_PENDN1,

              .flags = IORESOURCE_IRQ,

       },

       [2] = {

              .start = IRQ_ADC1,

              .end   = IRQ_ADC1,

              .flags = IORESOURCE_IRQ,

       }

};

 

struct platform_device s3c_device_ts = {

       .name               = "s3c-ts",

       .id            = -1,

       .num_resources        = ARRAY_SIZE(s3c_ts_resource),

       .resource   = s3c_ts_resource,

};

 

void __init s3c_ts_set_platdata(struct s3c_ts_mach_info *pd)

{

       struct s3c_ts_mach_info *npd;

 

       npd = kmalloc(sizeof(*npd), GFP_KERNEL);

       if (npd) {

              memcpy(npd, pd, sizeof(*npd));

              s3c_device_ts.dev.platform_data = npd;

       } else {

              pr_err("no memory for Touchscreen platform data\n");

       }

}

#endif


下来修改/drivers/input/touchscreen/ts-s3c.c驱动程序。由于代码太长,因此另起一章。


用于四线电阻屏的触摸驱动 触摸屏的简要介绍和安装准备 通用的四线电阻触摸屏的特点; 电阻触摸屏的安装准备; 安装电阻触摸屏的注意事项; 触摸屏的安装 触摸屏的安装过程; 触摸屏驱动软件安装; 触摸屏的硬件安装; 触摸屏的具体使用方法和注意事项 排除故障的要点总结 触摸屏的简要介绍和安装准备 通用的四线电阻触摸屏的特点;    最近几年, 人机对话的界面刚发展起来的项新技术,它通过计算机技术四线/触摸屏控制处理声音、图像、视频、文字、动画等信息,并在这些信息间建立定的逻辑关系,使之成为能交互地进行信息存取和输出的集成系统。    触摸屏系统符合简便、经济、高效的原则,具有人机交互性好、 操作简单灵活、输入速度快等特点。它与迅猛发展的计算机网络和四线/触摸屏控制多媒体技术相结合,使用者仅仅用手指触摸屏幕,就能进行信息检索、数据分析,甚至可以做出身临其境、栩栩如生的效果;较键盘输入简单、直观、快捷,具有丰富多采的表现能力,比以往任何传媒更具亲合力。    触摸屏在我国已经得到了非常广阔的应用,主要是公共信息的查询;如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。如今,触摸屏特别是电阻式触摸屏,在不断走入大众家庭。    ,四线电阻式触摸屏:电阻触摸屏的屏体部分是块与显示器表面非常配合的多层四线/触摸屏控制复合薄膜,由层玻璃或有机玻璃作为基层,表面涂有层透明的导电层,上面再盖有层外表面硬化处理、光滑防刮的塑料层而内表面也涂有层透明导电层,在两层导电层之间有许多细小(小于千分之英寸)的透明隔离点把它们隔开绝缘,见图1。    图1 四线电阻触摸屏的基本原理    当手指触摸屏幕时,平常相互绝缘的两层导电层就在触摸点位置有了个接触导通,因其中面导电层接通Y纵轴方向的参考电压Vref=5v均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,进行模数A/D转换,并将得到的电压值与参考电压Vref相比即可得到触摸点的Y轴坐标,同理得出X横轴的四线/触摸屏控制坐标,这就是所有电阻技术触摸屏共同的最基本原理。     四线电阻式触摸屏的特点:高解析度(能轻松达到4096*4096),高速传输反应*(小于1/100秒)。 表面硬度处理,减少擦伤、刮伤及防化学处理。次校正,永不漂移,稳定性高。不怕灰尘、水汽和油污,使用环境要求低,可以用任何非菱角的物体来触摸,技术工艺很成熟,成本较低,是最为广泛实用的触摸屏。 电阻触摸屏的安装准备; 首先,要准备好基本部件:包括:触摸屏,触摸笔,驱动程序(光盘),控制卡,连接线和延长线*(可根据实际需要取舍)。 控制卡按接口类型分为USB型和串口型两种*(通常选用USB型),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happydesigner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值