ARM9嵌入式Linux开发-ADC和触摸屏

目录

 

1 S3C2440 ADC和触摸屏接口概述

2 S3C2440 ADC接口的使用方法

3 S3C2440触摸屏接口

3.1 电阻触摸屏原理

3.2 S3C2440触摸屏控制器

4 S3C2440 ADC和触摸屏编程实例


1 S3C2440 ADC和触摸屏接口概述

S3C2440的CMOS模数转换器可以接受8个通道的模拟信号输入,并将他们转换为10位的二进制数据。在2.5MHZ的A/D转换时钟下,最大的转换速率可大道500KSPS(SPS:samples per second)。S3C2440提供了与触摸屏直接相连的4个引脚。

S3C2440和触摸屏接口有如下特性:

1.分辨率:10位

2.微分线性误差:1.0LSB

3.积分线性误差:2.0LSB

4.最大转换速率:500KSPS

5.低功耗

6.供电电压:3.3V

7.输入模拟电压范围:0~3.3V

8.片上采样保持功能

9.普通转换模式

10.分离的x/y轴坐标转换模式

11.自动x/y轴转换模式

12.等待中断模式

ARM9嵌入式Linux开发-ADC和触摸屏_第1张图片

 

ADC和触摸屏接口中只有一个ADC转换器,可以通过设置寄存器来选择对哪路模拟信号进行采样。INT_ADC信号表示A/D转换器已经转换完毕,INT_TC信号表示触摸屏被按下了。

    S3C2440使用XP,XM,YP,YM和触摸屏直接相连,只剩下AIN[3:0]工4个引脚用于一般的ADC输入;当不使用触摸屏时,XP,XM,YP和YM这4个引脚也可用于一般的ADC输入。

2 S3C2440 ADC接口的使用方法

ADC的启动方式有两种:手工启动,读结果时就自动地启动下一次转换。也有两种方法获知当前转换是否已经结束:查询状态位,转换结束时发出中断。ADC的操作只涉及3个寄存器:ADCCON,ADCTSC,ADCDAT0.下面介绍它们的用法,有关触摸屏的数据位在下一小结讲述。

ADCCON寄存器的格式:

ARM9嵌入式Linux开发-ADC和触摸屏_第2张图片

 

ADCDAT0寄存器的格式

ARM9嵌入式Linux开发-ADC和触摸屏_第3张图片

 

ADC的使用分为4个步骤:

1)设置ADCCON寄存器,选择输入信号通道,设置A/D转换器的时钟。

   使能A/D转换器时钟的预分频功能时,A/D时钟的计算公式为:A/D时钟 = PCLK/(PRSCVL+1)

   注意:A/D时钟的最大为2.5MHZ,并且应该小于PCLK的1/5.

2)设置ADCTSC寄存器,使用普通转换模式,不使用触摸屏功能。

   ADCTSC寄存器多用与触摸屏,对于普通ADC,使用它的默认值就可以,或设置[2]为0.ADCTSC寄存器的格式下一小节讲述。

3)设置ADCCON寄存器,启动A/D转换。

   如果设置READ_START位,则读转换数据时即启动下一次转换;否则,可以通过设置ENABEL_START位来启动A/D转换。

4)转换结束时,读取ADCDAT0寄存器获得数值

如果使用查询方式,则可以不断读取ADCCON寄存器的ECFLG位来确定转换是否结束;否则可以使用INT_ADC中断,发生INT_ADC中断时表示转换结束。

3 S3C2440触摸屏接口

3.1 电阻触摸屏原理

触摸屏在显示生活中已经大量使用,比如银行的自动存/取款机等。触摸屏的种类有很多,有超声波触摸屏,红外线触摸屏,电容触摸屏和电阻触摸屏。电阻触摸屏有几种类型,比如:4线,5线,8线触摸屏,线数越多,精度就越高,温度漂移也越小,但基本的操作是一样的。它本质上是个电阻分压器,将矩形区域中的触摸点(x,y)的物理位置转换为代表x坐标和y坐标的电压。      

S3C2440放入触摸屏接口可以驱动4线电阻触摸屏。电阻屏是有两层相互绝缘的导电层组成,当按下时,它们在触电处相连;不同的触电在x,y方向上的分压值不一样,将这两个电压值经过A/D转换后即可得到x,y坐标。

3.2 S3C2440触摸屏控制器

触摸屏控制器有4种工作模式:

1)等待中断模式

设置ADCTSC寄存器为0xD3即可令触摸屏控制器处于这种模式。这时,它在等待触摸屏被按下。当触摸屏被按下时,触摸屏控制器将发出INT_TC中断信号,这时触摸屏控制器要转入以下两种工作模式的一种,以读取x,y坐

     对于S3C2440,可以设置ADCTSC寄存器的位[8]为0或1时,表示等待按下或松开中断

2)分离X/Y轴坐标模式

设置ADCTSC寄存器为0X69进入x轴坐标转换模式,x坐标值转换完毕后被写入ADCDAT0,然后发出INT_ADC中断;相似的,设置ADCTSC寄存器为0X9A进入y轴坐标转换模式,y轴坐标值转换完毕后被写入ADCDAT1,然后发出INT_ADC中断。

3)自动X/Y轴坐标转换模式。

设置ADCTSC寄存器为0X0C,进入自动X/Y轴坐标转换模式,触摸屏控制器就会自动转换触电的x,y坐标值,并分别写入ADCDAT0,ADCDAT1寄存器中,然后发出INT_ADC中断。

4)普通转换模式

不使用触摸屏时,触摸屏控制器处于这种工作模式。在这种模式下,可以通过设置ADCCON寄存器启动普通的A/D转换,转换完成时数据被写入ADCDAT0寄存器中。

ADCTSC寄存器被用来选择触摸屏的工作模式,格式如下所示:

ARM9嵌入式Linux开发-ADC和触摸屏_第4张图片

 

对于S3C2440,当CPU处于休眠模式时,触摸屏被按下时可以不断发出INT_TC中断信号以唤醒CPU。发出中断信号的间隔可以通过ADCDLY寄存器来设置。另外,对于普通转换模式,分离的X/Y周坐标转换模式,自动X/Y轴坐标转换模式,都可以通过ADCDLY寄存器来设置采样的延时时间。

ARM9嵌入式Linux开发-ADC和触摸屏_第5张图片

 

4 S3C2440 ADC和触摸屏编程实例

https://download.csdn.net/download/ce123/12365102

 

你可能感兴趣的:(ARM9嵌入式Linux开发)