`
helloyesyes
  • 浏览: 1306688 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Linux驱动修炼之道-触摸屏驱动之s3c2410_ts源码分析

阅读更多

努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2011/05/20/6434725.aspx

S3C2440支持的是4线电阻式触摸屏,这里简单说一下触摸屏基本原理,目前的触摸屏种类有:阻型触摸屏,容性触摸屏,多点触摸。阻性触摸屏通常由三部分组成:上下两层透明的(ITO氧化铟)导体层,两层导体之间的间隔层和电极。触摸屏工作时,上下导体层各自构成了一个电阻网络,分别称为X层,Y层,X层在左右两电极,Y层在上下两电极分别引出信号,一共引出4个信号,构成所谓的4线电阻。当某一层加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点的电压。得到的电压值通过A/D转换,就可相应的判断接触点的坐标。说白了,阻性触摸屏可以想象成两个方向的滑动变阻,当手点上时两个接触面被接触上,接触位置不一样相当于滑动位置不一样。

再来说一下S3C2440使用的ADC控制器,是一个10位的8通道的模数转换器。在2.5MHz的A/D转换时钟下,最大的转换速率可达500KSPS(SPS:sample per second,每秒采样的次数)。S3C2440的4个控制信号的引脚与AD的4个模拟信号输入引脚复用。从下图中可以看出ADC和触摸屏只有一个A/D转换器(A/D Converter),可以通过设置寄存器来选择对哪路模拟信号(多达8路)进行采样。图中有两个中断信号:INT_ADC,INT_TC,前者表示A/D转换器已经转换完毕,后者表示触摸屏被按下了。

在Linux内核的触摸屏驱动中采用了延时进行消抖和算术平均值法进行滤波,这里分析一下s3c2410_ts程序,首先来看模块的初始化函数:

下面来看一下IRQ_TC的中断处理函数:

下面看一下这个实际进行中断处理的函数:

如果AD转换完成,会调用AD完成的中断处理程序:

分享到:
评论

相关推荐

    Linux常见驱动源码分析(kernel hacker修炼之道全集)--李万鹏

    Linux驱动修炼之道-触摸屏驱动之s3c2410_ts源码分析.pdf Linux驱动修炼之道-SPI驱动框架源码分析(中).pdf Linux驱动修炼之道-SPI驱动框架源码分析(下).pdf Linux驱动修炼之道-SPI驱动框架源码分析(上).pdf ...

    linux下触摸屏程序s3c2410_ts.c

    【标题】"Linux下触摸屏程序s3c2410_ts.c" 是一个针对Samsung S3C2410处理器平台的触摸屏驱动程序,主要用于实现设备与操作系统的交互,使得用户可以通过触摸屏幕进行输入操作。这个程序是Linux内核的一部分,用于...

    linux-2.6.28在mini2440上的移植之s3c2410_ts触屏驱动的移植

    ### Linux-2.6.28 在 Mini2440 上的移植之 S3C2410_TS 触屏驱动移植详解 #### 概述 本文将详细介绍如何在Linux-2.6.28内核上为Mini2440开发板移植S3C2410_TS触屏驱动的过程。Mini2440是一款基于S3C2440处理器的...

    s3c2410_ts.c

    s3c2410驱动代码,触摸屏驱动程序,还不错的coding style

    s3c2410_ts_26.zip_mini2440 linux

    标题中的"s3c2410_ts_26.zip"暗示了这个压缩包与Samsung S3C2410处理器的触摸屏驱动有关,而"mini2440"是基于S3C2410的开发板。描述中提到这是针对"mini2440开发板的触摸屏驱动程序",并且它是为"基于linux2.6内核...

    s3c2410_ts.c完整的触摸屏驱动(有注释)

    完整的触摸屏驱动(有注释),让你初步了解字符驱动的内在细节,希望你能够帮助到你!

    s3c2410_ts_26.rar_内核

    【标题】"s3c2410_ts_26.rar_内核"指的是一个针对S3C2410处理器的触摸屏驱动程序的压缩包,它包含了用于嵌入式Linux系统的内核模块。这个模块是专门为S3C2410这款流行的ARM9处理器设计的,该处理器广泛应用于各种...

    armlinux学习笔记--触摸屏驱动程序分析.pdf

    在Linux系统中,触摸屏驱动程序主要都在/kernel/drivers/char/s3c2410-ts.c文件中。触摸屏的file_operations结构定义如下: static struct file_operations s3c2410_fops = { owner: THIS_MODULE, open: s3c2410_...

    s3c2410_ts.c代码分析

    嵌入式设备驱动。s5pc100_ts s3c2410_ts.c 代码分析。1.TS是字符设备。 2.TS驱动使用了平台 设备机制。 3.TS驱动使用了输入子系统。...4. S3C2410_TS.C这个驱动与ADC.C驱动之间有着C/S的关系。

    S3C2410各种驱动源码

    | |-- S3C2410 I2C主机驱动 | | |-- i2c-s3c2410.c | | |-- iic.h | | |-- regs-gpio.h | | `-- regs-iic.h | `-- SAA711x I2C设备驱动 | `-- saa711x.c |-- 16 | `-- CS8900以太网设备驱动 | |-- cs89x0.c | `-- cs...

    Linux驱动_触摸屏1

    此外,`s3c2410_ts_cfg`结构体包含了触摸屏的硬件配置信息,如延迟、分频系数等。这些信息会被传递给驱动程序,以便进行正确配置。 接着,平台驱动(platform driver)的注册通过`platform_driver_register`函数...

    嵌入式Linux系统中触摸屏驱动的研究.doc

    文章先介绍了选用Samsung公司的S3C2410处理器作为硬件环境的基础,再深入探讨嵌入式Linux操作系统下触摸屏驱动程序的开发过程,接着介绍了触摸屏采样数据处理的方法,最后详细阐述了触摸屏的校准原理。 #### 引言 ...

    对S3C2410为例子 对触摸屏驱动程序分析

    触摸屏驱动程序是嵌入式系统中连接硬件设备与操作系统之间的重要桥梁,它负责将硬件设备,例如S3C2410芯片上的触摸屏,转换成操作系统能理解和处理的抽象层。S3C2410是一款由Samsung公司推出的ARM9微处理器,常用于...

    S3C2410 LED驱动程序

    通过本节的分析,我们可以看出这是一个简单的S3C2410 LED驱动程序,旨在演示如何通过编写驱动程序来控制LED灯。这个例子不仅有助于理解Linux内核模块的基本架构,还能够帮助开发者学习如何与硬件交互。对于初学者来...

    s3c_ts_2440电容触摸屏驱动_源码

    首先,我们来看标题中的“s3c_ts_2440电容触摸屏驱动_源码”,这表明我们要讨论的是针对S3C2440处理器的电容触摸屏驱动程序的源代码。通常,驱动程序的源代码会包含一系列函数,用于初始化、读取数据、处理中断等...

    s3c2410-uda1341.rar_s3c2410 驱动_s3c2410音频播放_音频 驱动

    本话题将深入探讨如何为S3C2410开发板编写UDA1341TS音频播放驱动程序,以及音频驱动在嵌入式系统中的重要性。 UDA1341TS是一款高性能的立体声CODEC(编解码器),广泛应用于嵌入式音频应用中,它能够提供高质量的...

    android 触摸屏驱动源代码

    通过以上分析,我们可以看到S3C2410触摸屏驱动的核心在于通过硬件接口(如GPIO和ADC)读取触摸屏的状态,并将这些原始数据转换为用户可以理解的输入事件。对于Android开发者而言,了解这些底层驱动的工作机制有助于...

    鱼树笔记之触摸屏驱动

    以三星S3C2410处理器为例,其提供的触摸屏驱动`s3c2410_ts.c`包含了实现触摸屏功能所需的基本代码框架。 ```c struct platform_driver s3c2410ts_driver = { .driver = { .name = "s3c2410-ts", .owner = THIS_...

Global site tag (gtag.js) - Google Analytics