1、第第8 8章章 ADCADC和触摸屏接口与应用和触摸屏接口与应用2 嵌入式系统中的信号测量一般都会用到嵌入式系统中的信号测量一般都会用到ADC,ADC测量作为嵌入式系统开发设计中不可缺少的测量作为嵌入式系统开发设计中不可缺少的一个部分存在于各种测量装置中。在一个部分存在于各种测量装置中。在ARM Cortex-A8中,触摸屏接口也要用到相应的中,触摸屏接口也要用到相应的ADC口口来进行相应的工作,因此,对于嵌入式开发人员来进行相应的工作,因此,对于嵌入式开发人员而言,而言,ADC的学习是很重要的。的学习是很重要的。ADC工作原理。工作原理。触摸屏结构和工作原理。触摸屏结构和工作原理。触摸屏控制
2、实例。触摸屏控制实例。本章内容:本章内容:8.1 ADC工作原理工作原理ADC是模拟信号源和是模拟信号源和CPU之间联系的接口,它的之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和以便计算机和数字系统进行处理、存储、控制和显示。在工业控制和数据采集及许多其他领域中显示。在工业控制和数据采集及许多其他领域中,A/D转换是不可缺少的。转换是不可缺少的。A/D转换器的类型有逐转换器的类型有逐位比较型、积分型、计数型、并行比较型、电压位比较型、积分型、计数型、并行比较型、电压-频率型,应主要根据使用场合的
3、具体要求,安装频率型,应主要根据使用场合的具体要求,安装转换速度、精度、价格、功能和接口条件等因素转换速度、精度、价格、功能和接口条件等因素来决定选择何种类型。常用的来决定选择何种类型。常用的AD转换器有以下两转换器有以下两种。种。1.双积分的双积分的AD转换器转换器双积分式也称为二重积分式,其实质是测量和比双积分式也称为二重积分式,其实质是测量和比较连个积分的时间,一个是对模拟输入电压积分较连个积分的时间,一个是对模拟输入电压积分的时间,此时间往往是固定的;另一个是以充电的时间,此时间往往是固定的;另一个是以充电后的电压为初值,对参考电压反向积分,积分电后的电压为初值,对参考电压反向积分,积
4、分电容被放电至零所需的时间。模拟输入电压与参考容被放电至零所需的时间。模拟输入电压与参考电压之比,等于上述两个时间之比。电压之比,等于上述两个时间之比。双积分的双积分的AD转换器转换器由于双积分型由于双积分型AD转换是测量输入电压在转换是测量输入电压在T0时间内时间内的平均值,所以对常态干扰有很强的抑制作用,的平均值,所以对常态干扰有很强的抑制作用,尤其对正负波形对称的干扰信号,抑制效果更好尤其对正负波形对称的干扰信号,抑制效果更好。双积分型的双积分型的AD转换器电路简单,抗干扰能力强,转换器电路简单,抗干扰能力强,精度高,这是突出的优点。但转换速度比较慢,精度高,这是突出的优点。但转换速度比
5、较慢,常用的常用的AD转换芯片的转换时间为毫秒级。因此适转换芯片的转换时间为毫秒级。因此适用于模拟信号变换缓慢,采样速率要求较低,而用于模拟信号变换缓慢,采样速率要求较低,而对精度要求较高,或现场干扰较严重的场合,例对精度要求较高,或现场干扰较严重的场合,例如,在数字电压表中长被采用。如,在数字电压表中长被采用。2.逐次逼近型的逐次逼近型的AD转换器转换器逐次逼近型的逐次逼近型的AD转换器,其应用比积分型更为广泛,主转换器,其应用比积分型更为广泛,主要有逐次逼近寄存器要有逐次逼近寄存器SAR、DA转换器、比较器,以及时转换器、比较器,以及时序和控制逻辑等部分组成。它的实质是逐次把设定的序和控制
6、逻辑等部分组成。它的实质是逐次把设定的SAR寄存器中的数字量经寄存器中的数字量经DA转换后得到电压与待转换模拟电转换后得到电压与待转换模拟电压进行比较。比较时,先用压进行比较。比较时,先用SAR的最高位开始,逐次确定的最高位开始,逐次确定各位的数码影视各位的数码影视“1”还是还是“0”,其工作过程如下:,其工作过程如下:转换前,先将转换前,先将SAR寄存器各位清零。转换开始时,控制逻寄存器各位清零。转换开始时,控制逻辑电路先设定辑电路先设定SAR寄存器的最高位为寄存器的最高位为“1”,其余位为,其余位为0,此试探值经此试探值经DA转换成转换成Vc,然后将,然后将Vc与模拟输入电压与模拟输入电压
7、Vx比比较,如果较,如果VxVc,说明,说明SAR最高位的最高位的“1”应予保留;如果应予保留;如果VxV c,说明,说明SAR该位应予清零。然后对该位应予清零。然后对SAR次高位置次高位置1,依上述方法进行,依上述方法进行DA转换和比较。如此重复上述过程,转换和比较。如此重复上述过程,直至确定直至确定SAR寄存器的最低位为止。过程结束后,状态线寄存器的最低位为止。过程结束后,状态线改变状态,表名已完成一次转换。改变状态,表名已完成一次转换。最后,逐次逼近寄存器最后,逐次逼近寄存器SAR中的内容就是与输入中的内容就是与输入模拟量相对应的二进制数字量。显然模拟量相对应的二进制数字量。显然AD转换
8、器的转换器的位数位数N决定于决定于SAR的位数和的位数和DA的位数,转换结的位数,转换结果能否准确逼近模拟信号,主要取决于果能否准确逼近模拟信号,主要取决于SAR和和DA的位数。位数越多,越能准确逼近模拟量,但转的位数。位数越多,越能准确逼近模拟量,但转换所需的时间也越长。换所需的时间也越长。逐次逼近型逐次逼近型AD转换器特点转换器特点:转换速度较快,在:转换速度较快,在1-100us以内;分辨率可以达以内;分辨率可以达18位,特别适用于工业位,特别适用于工业控制系统。转换时间固定,不随输入信号的变化控制系统。转换时间固定,不随输入信号的变化而变化;抗干扰能力相对积分型的差。而变化;抗干扰能力
9、相对积分型的差。8.2 触摸屏结构和工作原理触摸屏结构和工作原理触摸屏作为一种最新的计算机输入设备,是目前触摸屏作为一种最新的计算机输入设备,是目前最简单、方便、自然的一种人机交互方式。触摸最简单、方便、自然的一种人机交互方式。触摸屏应用领域非常广阔,主要是公共信息的查询,屏应用领域非常广阔,主要是公共信息的查询,如电信局、税务局、银行、电力等部门的业务查如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外也常用于领导办询;城市街头的信息查询;此外也常用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。现在
10、,触摸屏已、多媒体教学、房地产预售等。现在,触摸屏已经走入家庭。经走入家庭。随着城市向信息化方向发展和电脑网络在国民生随着城市向信息化方向发展和电脑网络在国民生活中的渗透,信息查询都已用触摸屏实现,即显活中的渗透,信息查询都已用触摸屏实现,即显示内容可触摸的形式出现。示内容可触摸的形式出现。8.2.1 触摸屏的工作原理触摸屏的工作原理按照触摸屏的工作原理和传输信息的介质,分为四类:分按照触摸屏的工作原理和传输信息的介质,分为四类:分别为电阻式、电容式、红外线式和表面声波式。别为电阻式、电容式、红外线式和表面声波式。1.电阻式触摸屏电阻式触摸屏 电阻式触摸屏是利用压力感应进行控制,其主要部分是电
11、阻式触摸屏是利用压力感应进行控制,其主要部分是一块玻璃或硬塑料平板作为基层,表面涂有一层透明氧化一块玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属导电层,上面再盖有一层外表面硬化处理、光滑防擦金属导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层。的塑料层。当手指触摸屏幕时,两层导电层在触摸点位置就有了接触当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发送变化,在,电阻发送变化,在X和和Y两个方向上产生信号,然后送两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触器并计算出(触摸屏控制器。控制器侦测到这一接触器并计算出(X,Y)的位置。)的位置。2.电容式触摸屏电容
12、式触摸屏电容式触摸屏是利用人体的电流感应进行工作的电容式触摸屏是利用人体的电流感应进行工作的。电容式触摸屏是一块四层复合玻璃屏,玻璃层。电容式触摸屏是一块四层复合玻璃屏,玻璃层的内表面和夹层个涂油一层的内表面和夹层个涂油一层ITO,最外层是一薄,最外层是一薄层矽土玻璃保护层,夹层层矽土玻璃保护层,夹层ITO涂层作为工作面,涂层作为工作面,四个角上引出四个电极,内层四个角上引出四个电极,内层ITO为屏蔽层以保为屏蔽层以保证良好的工作环境。证良好的工作环境。电容触摸屏的透光率和清晰度优于四线电阻屏,电容触摸屏的透光率和清晰度优于四线电阻屏,当然还不能和表面声波屏与五线电阻屏相比。电当然还不能和表面
13、声波屏与五线电阻屏相比。电容屏反光严重,而且触摸屏对各波长光的折光率容屏反光严重,而且触摸屏对各波长光的折光率 不均匀,存在色彩失真的问题,由于光线在各层不均匀,存在色彩失真的问题,由于光线在各层间的反射,还造成图像字符的模糊。间的反射,还造成图像字符的模糊。电容屏更主要的缺点是漂移,当环境温度、湿度电容屏更主要的缺点是漂移,当环境温度、湿度改变时,环境电场发生改变时,都会引起电容屏改变时,环境电场发生改变时,都会引起电容屏的漂移,造成触摸点判断不准确。例如,开机后的漂移,造成触摸点判断不准确。例如,开机后显示器温度上升会造成漂移,用户触摸屏幕的同显示器温度上升会造成漂移,用户触摸屏幕的同时另
14、一只手或身体一侧靠近显示器会漂移;电容时另一只手或身体一侧靠近显示器会漂移;电容触摸屏附近较大的物体搬移后会漂移,触摸时如触摸屏附近较大的物体搬移后会漂移,触摸时如果有人围过来观看也会引起漂移。电容屏的漂移果有人围过来观看也会引起漂移。电容屏的漂移原因属于技术上的先天不足,环境电势面虽然与原因属于技术上的先天不足,环境电势面虽然与电容触摸屏离得很远,却比手指头面积大得多,电容触摸屏离得很远,却比手指头面积大得多,它们会直接影响触摸位置的测定。它们会直接影响触摸位置的测定。3.红外线式触摸屏红外线式触摸屏红外线式触摸屏是利用红外线式触摸屏是利用X、Y方向上密布的红外线矩阵方向上密布的红外线矩阵来
15、检测并定位用户的触摸。来检测并定位用户的触摸。红外线式触摸屏在显示器的红外线式触摸屏在显示器的前面安装一个电路板外框,前面安装一个电路板外框,电路板在屏幕四边排布红外电路板在屏幕四边排布红外线发射管和红外接收管,一线发射管和红外接收管,一一对应形成横竖两条红外线一对应形成横竖两条红外线,因而可以判断出触摸点在,因而可以判断出触摸点在屏幕的位置。任何触摸物理屏幕的位置。任何触摸物理都可改变触电上的红外线而都可改变触电上的红外线而实现触摸屏操作。实现触摸屏操作。早期观念上,红外线式触摸屏存在分辨率低、触摸方式受早期观念上,红外线式触摸屏存在分辨率低、触摸方式受限制和易受环境干扰而误动作等技术上的局
16、限,因而一度限制和易受环境干扰而误动作等技术上的局限,因而一度淡出过市场。此外第二代红外屏部分解决了抗光干扰的问淡出过市场。此外第二代红外屏部分解决了抗光干扰的问题,第三代和第四代在提升分辨率和稳定性能上也有所改题,第三代和第四代在提升分辨率和稳定性能上也有所改进,但都没有在关键指标或综合性能上有质的飞跃。但是进,但都没有在关键指标或综合性能上有质的飞跃。但是,了解触摸屏技术的人都知道,红外线式触摸屏不受电流,了解触摸屏技术的人都知道,红外线式触摸屏不受电流、电压和静电干扰,适宜恶劣的环境条件,红外技术是触、电压和静电干扰,适宜恶劣的环境条件,红外技术是触摸屏产品最终的发展趋势。采用声学和其他
17、材料学技术的摸屏产品最终的发展趋势。采用声学和其他材料学技术的触摸屏都有其难以逾越的屏障,如单一传感器的受损、老触摸屏都有其难以逾越的屏障,如单一传感器的受损、老化,触摸界面怕受污染、破坏性使用,维护繁琐等问题。化,触摸界面怕受污染、破坏性使用,维护繁琐等问题。红外触摸屏只要真正实现了高稳定性能和高分辨率,必将红外触摸屏只要真正实现了高稳定性能和高分辨率,必将替代其他技术产品而成为触摸屏市场主流。替代其他技术产品而成为触摸屏市场主流。4.表面声波式触摸屏表面声波式触摸屏表面声波触摸屏的触摸屏部分可以是一块平面、球面或是表面声波触摸屏的触摸屏部分可以是一块平面、球面或是柱面的玻璃平板,安装在柱面
18、的玻璃平板,安装在CRT、LED、LCD或者等离子显或者等离子显示器屏幕的前面。玻璃屏的左上角和右下角各固定了竖直示器屏幕的前面。玻璃屏的左上角和右下角各固定了竖直和水平方向的超声波发射换能器,右上角则固定了两个相和水平方向的超声波发射换能器,右上角则固定了两个相应的超声波接收换能器。环境屏的四个周边则刻有应的超声波接收换能器。环境屏的四个周边则刻有45度角度角由疏到密间隔非常精密的反射条纹。表面触摸屏的工作原由疏到密间隔非常精密的反射条纹。表面触摸屏的工作原理如图所示。理如图所示。以右下角的以右下角的X轴发射换能器为例,发射换能器把控制器通轴发射换能器为例,发射换能器把控制器通过触摸屏电缆送
19、来的电信号转化为声波能量向左方表面传过触摸屏电缆送来的电信号转化为声波能量向左方表面传递,然后由玻璃板下边的一组精密反射条纹把声波能量反递,然后由玻璃板下边的一组精密反射条纹把声波能量反射成向上的均匀面传递,声波能量经过屏体表面,再由上射成向上的均匀面传递,声波能量经过屏体表面,再由上边的反射条纹聚成向右的线传播给边的反射条纹聚成向右的线传播给X轴的接收换能器,接轴的接收换能器,接收换能器将返回的表面声波能量变为电信号。当发射换能收换能器将返回的表面声波能量变为电信号。当发射换能器发射一个窄脉冲后,声波能量历经不同途径到达接收换器发射一个窄脉冲后,声波能量历经不同途径到达接收换能器,走最右边的
20、最早到达,走最左边的最晚到达,早到能器,走最右边的最早到达,走最左边的最晚到达,早到达的和晚到达的这些声波能量加成一个较宽的波形信号,达的和晚到达的这些声波能量加成一个较宽的波形信号,不难看出,接收信号集合了所有在不难看出,接收信号集合了所有在X轴方向历经长短不同轴方向历经长短不同路径回归的声波能量,它们在路径回归的声波能量,它们在Y轴走过的路程是相同的。轴走过的路程是相同的。但在但在X轴上,最远的比最近的多走了两倍轴上,最远的比最近的多走了两倍X轴最大距离。轴最大距离。因此这个波形信号的时间轴反映各原始波形叠加前的位置因此这个波形信号的时间轴反映各原始波形叠加前的位置,也就是,也就是X轴坐标
21、。轴坐标。表面式波式触摸屏的优点表面式波式触摸屏的优点是清晰度较高,透光率是清晰度较高,透光率好;高度耐久,抗刮伤性良好(相对与电阻、电好;高度耐久,抗刮伤性良好(相对与电阻、电容等有表面度膜);反应灵敏;不受温度、湿度容等有表面度膜);反应灵敏;不受温度、湿度等环境因素影响;分辨率高,寿命长;透光率高等环境因素影响;分辨率高,寿命长;透光率高(92%),能保持清晰透亮的图像质量;没有漂),能保持清晰透亮的图像质量;没有漂移,只需安装时一次校正;有第三轴(即重力轴移,只需安装时一次校正;有第三轴(即重力轴)响应,目前在公共场所使用较多。)响应,目前在公共场所使用较多。8.3 S5PV210 中
22、的触摸屏接口中的触摸屏接口S5PV210的的CMOS魔术转换器可以接收魔术转换器可以接收10个通道个通道的模拟信号输入,并将它们转换为的模拟信号输入,并将它们转换为10位或位或12位的位的二进制数据。在二进制数据。在5MHZ的的AD转换时钟下,最大的转换时钟下,最大的转换速率可达到转换速率可达到1MSPS(每秒采样的次数)。(每秒采样的次数)。ADC支持低功耗模式。支持低功耗模式。S5PV210的触摸屏接口可以控制输入引脚(的触摸屏接口可以控制输入引脚(XP、XM、YP和和YM)来获得外部触摸屏设备上的)来获得外部触摸屏设备上的X、Y位置。触摸屏接口包括三个主要模块,及触摸屏位置。触摸屏接口包
23、括三个主要模块,及触摸屏控制逻辑、控制逻辑、ADC接口逻辑和中断生成逻辑;有两接口逻辑和中断生成逻辑;有两套触摸屏接口,共享一个套触摸屏接口,共享一个ADC。S5PV210的的ADC和触摸屏接口具有以下特征。和触摸屏接口具有以下特征。分辨率:分辨率:10位位/12位(可选)位(可选)微分非线性误差:微分非线性误差:1LSB(最大)(最大)积分非线性误差:积分非线性误差:4.0LSB(最大)。(最大)。最大:最大:1MSPS转换率。转换率。低功耗。低功耗。3.3V电源电压。电源电压。模拟输入范围为模拟输入范围为0-3.3V。芯片采样和保持功能。芯片采样和保持功能。正常模式转换。正常模式转换。单独
24、的单独的X、Y位置转换模式。位置转换模式。自动的自动的X、Y位置转换模式。位置转换模式。等待中的模式。等待中的模式。IDLE、DiDLED、STOP和和DSTOP模式唤醒源。模式唤醒源。两个触摸屏接口。两个触摸屏接口。图图 S5PV210的的ADC和触摸屏接口结构和触摸屏接口结构8.3.1 ADC工作模式工作模式(1)普通转换模式。用于一般的)普通转换模式。用于一般的AD转换,不用于触摸屏转换,不用于触摸屏。(2)分离的)分离的X、Y坐标转换模式。分两步进行坐标转换模式。分两步进行X、Y坐标转坐标转换,其转换结果分别存于换,其转换结果分别存于TSDATXn和和TSDATYn中,并且中,并且均会
25、产生均会产生INT_ADC中断请求。中断请求。(3)连续)连续X、Y坐标转换模式。坐标转换模式。X坐标转换结束后自动启坐标转换结束后自动启动动Y坐标转换,其转换结果分别存于坐标转换,其转换结果分别存于TSDATXn中和中和TSDATYn中,并且会产生中,并且会产生INT_ADC中断请求。中断请求。(4)等待中断转换模式。在该模式下,转换器等待使用)等待中断转换模式。在该模式下,转换器等待使用者按压触摸屏,一旦触摸屏被按压,则产生者按压触摸屏,一旦触摸屏被按压,则产生INT_ADC触触摸屏中断请求。摸屏中断请求。8.3.2 触摸屏接口模式触摸屏接口模式当当PCLK频率为频率为66MHZ和预分频器
26、值为和预分频器值为65,总共,总共12位转换时间如下:位转换时间如下:AD转换器频率转换器频率=66 MHz/(65+1)=1 MHz转换时间转换时间=1/(1 MHz/5 cycles)=1/200 kHz=5 us注意,这里的注意,这里的AD转换器设计在最大转换器设计在最大5MHz时钟下时钟下工作,所以转换率最高达到工作,所以转换率最高达到1 MSPS。触摸屏接口。触摸屏接口模式可以分为正常转换模式,分离模式可以分为正常转换模式,分离X、Y坐标转换坐标转换模式,自动(连续)模式,自动(连续)X、Y坐标转换模式,等待中坐标转换模式,等待中断模式和备用模式五种。断模式和备用模式五种。1.普通转
27、换模式普通转换模式在普通转换模式下,在普通转换模式下,AIN0-AIN9的操作是相同的的操作是相同的。初始化时,设置。初始化时,设置ADC控制寄存器控制寄存器TSADCCON0和触摸屏控制寄存器和触摸屏控制寄存器TSCONn,把所有的开关和,把所有的开关和下拉电阻关闭。转换后的数据可以从下拉电阻关闭。转换后的数据可以从ADC转换数转换数据据X寄存器中读出。寄存器中读出。注意:在普通转换模式下,注意:在普通转换模式下,TSADCCON1是不用是不用的的2.分离的分离的X、Y坐标转换模式坐标转换模式这种模式包含两种状态,即这种模式包含两种状态,即X坐标测量状态和坐标测量状态和Y坐坐标测量状态。标测
28、量状态。X坐标测量状态。坐标测量状态。X坐标测量状态操坐标测量状态操作步骤:作步骤:TSCONn的值设为的值设为0 x69.TSADCCONn设为开始转换。设为开始转换。X坐标转换完成后产生中断请求。坐标转换完成后产生中断请求。从从TSDATXn中读出转换后的中读出转换后的X坐标。坐标。Y坐标转换操作步骤与坐标转换操作步骤与X坐标类似,不同的是,坐标类似,不同的是,TSCONn的值应设为的值应设为0 x9a。3.连续连续X、Y坐标转换模式坐标转换模式将将TSCONn的值设为的值设为0 x5c启动该模式,启动该模式,X坐标转换坐标转换结束后自动启动结束后自动启动Y坐标转换,其转换结果分别存于坐标
29、转换,其转换结果分别存于TSDATXn和和TSDATYn中,并且会产生中,并且会产生INT_ADC中断请求。中断请求。4.等待中断转换模式等待中断转换模式当笔尖落下时触摸屏控制器产生中断(当笔尖落下时触摸屏控制器产生中断(INT_TC)信号。信号。TSCON7:0的值应设为的值应设为0 xd3,此时,下拉电此时,下拉电阻激活,阻激活,XP禁用,禁用,XM激活。激活。触摸屏控制器产生中断信号后,必须清除等待中触摸屏控制器产生中断信号后,必须清除等待中断模式。断模式。5.备用模式备用模式当当TSADCCON0的的TSSEL位为位为0、STANDBY位为位为1时,备用模式激活。在此模式下,时,备用模
30、式激活。在此模式下,AD转换操作转换操作停止,停止,TSDATXn和和TSDATYn寄存器保留先前的寄存器保留先前的转换数据。转换数据。进行编程时注意:进行编程时注意:(1)AD转换的数据可以通过中断或查询的方式转换的数据可以通过中断或查询的方式来访问。来访问。(2)提供另外的开启)提供另外的开启AD转换的方法。转换的方法。(3)如果在)如果在IDLE、DIDLE、STOP和和DSTOP模模式下使用式下使用INT_PEN中断作为唤醒源,中断作为唤醒源,TSCONn的的XY_PST位应该设为等待终端模式,即位应该设为等待终端模式,即11。8.4 硬件连接硬件连接触摸屏硬件连接如图:触摸屏硬件连接
31、如图:触摸屏与触摸屏与CPU连接的引脚功能连接的引脚功能:触摸屏工作原理:触摸屏工作原理:测量测量X坐标时,从坐标时,从XP输出地电压给输出地电压给X+端端,从,从XM输出的地电压给输出的地电压给X-端;从端;从YP输入按压点电压。测输入按压点电压。测量量Y坐标时,从坐标时,从YP输出低电压给输出低电压给Y+端,从端,从YM输出的地电输出的地电压给压给Y-端;从输入按压点电压。端;从输入按压点电压。8.5 ADC及触摸屏接口特殊寄存器及触摸屏接口特殊寄存器以下讲解以以下讲解以TS0为例,为例,TS1的设置与的设置与TS0类似,详类似,详细可参看细可参看S5pv210数据手册。数据手册。1.AD
32、C控制寄存器控制寄存器TSADCCON0ADC控制寄存器控制寄存器TSADCCON0是可以进行读写的是可以进行读写的寄存器,地址为寄存器,地址为0 xE170_0000,复位值为,复位值为0 x0000_3FC4.在这个寄存器中,可以设置选择接在这个寄存器中,可以设置选择接入的触摸屏(入的触摸屏(0/1),还可以设定转换值的位数(还可以设定转换值的位数(10/12位)。位)。注意注意(1)当等待触摸屏中断时,)当等待触摸屏中断时,XP_SEN位应该位应该置置1且且PULL_UP 位应该置位应该置0.(2)仅在自动连续)仅在自动连续X、Y坐标转换中,坐标转换中,AUTO_PST位应该设置为位应该
33、设置为1.ADC及触摸屏接口特殊寄存器及触摸屏接口特殊寄存器1.ADC控制寄存器控制寄存器TSADCCON0 ADC控制寄存器控制寄存器TSADCCON0是可以进行读写的是可以进行读写的寄存器,地址为寄存器,地址为0 xE170_0000,复位值为,复位值为0 x0000_3FC4.在这个寄存器中,我们可以设置选在这个寄存器中,我们可以设置选择接入的触摸屏(择接入的触摸屏(0/1),还可以设定转换值的位),还可以设定转换值的位数(数(10/12位)。位)。ADCCON寄存器的位定义详情如寄存器的位定义详情如下图所示。下图所示。2 ADC触摸屏控制寄存器触摸屏控制寄存器TSCON0ADC触摸屏控
34、制寄存器触摸屏控制寄存器ADCTSC是可以进行读写是可以进行读写的寄存器,地址为的寄存器,地址为0 xE170_0004,复位值为,复位值为0 x0000_0058.TSCON0寄存器的位定义详情查看寄存器的位定义详情查看S5PV210的数据手册。的数据手册。注意:注意:(1)当等待触摸屏中断时,)当等待触摸屏中断时,XP_SEN位应该置位应该置1且且PULL_UP为应该置为应该置0.(2)仅在自动连续)仅在自动连续X、Y坐标转换中,坐标转换中,AUTO_PST位应该置位应该置1.3.ADC延时寄存器延时寄存器TSDLY0ADC开始延时寄存器开始延时寄存器ADCDLY是可以进行读写的是可以进行
35、读写的寄存器,地址为寄存器,地址为0 xE170_0008,复位值为,复位值为0 x0000_00FF.ADCDLY寄存器的位定义详情可参寄存器的位定义详情可参看数据手册。看数据手册。注意:在注意:在ADC转换前,触摸屏使用晶振时钟,在转换前,触摸屏使用晶振时钟,在AD转换中使用转换中使用PCLK(最大最大66MHZ)。4.ADC转换数据转换数据X寄存器寄存器TSDATX0和和ADC转换数转换数据据Y寄存器寄存器TSDATY0这两个寄存器是只读寄存器,地址分别是这两个寄存器是只读寄存器,地址分别是0 xE170_000C和和0 xE170_0010,复位值不确定。,复位值不确定。5.模拟输入通
36、道选择寄存器模拟输入通道选择寄存器ADCMUXADCMUX是可以进行读写的寄存器,地址为是可以进行读写的寄存器,地址为0 xE170_001C,复位值为复位值为0 x0000_0000。注意:(注意:(1)当触摸屏不使用时,触摸屏接口()当触摸屏不使用时,触摸屏接口(AIN2-AIN9)可以作)可以作为为ADC模拟输入端口使用。模拟输入端口使用。(2)TSADC被设为分离被设为分离X、Y坐标转换模式和连续坐标转换模式和连续X、Y坐标转换模坐标转换模式时,式时,SEL_MUX的值是无效的。的值是无效的。8.6 触摸屏控制实例触摸屏控制实例AD转换器的使用基本上还是通过配置寄存器来实转换器的使用基
37、本上还是通过配置寄存器来实现的,就实现方式而言,可以选择轮询或者中断现的,就实现方式而言,可以选择轮询或者中断的方式。的方式。在轮询方式下在轮询方式下,程序配置完寄存器后,需要不断,程序配置完寄存器后,需要不断地查询地查询AD转换的状态寄存器以确定转换是否完成转换的状态寄存器以确定转换是否完成,然后将转换得到的数据进行输出显示。这种方,然后将转换得到的数据进行输出显示。这种方式效率十分低,但是对于低速采集系统(温度、式效率十分低,但是对于低速采集系统(温度、直流电压测量系统)来说这样做不仅简单,而且直流电压测量系统)来说这样做不仅简单,而且也能达到要求。也能达到要求。在中断模式下在中断模式下,
38、当采集使能位使能后,一旦转换,当采集使能位使能后,一旦转换完成系统就会进入中断模式,这时就可以获取转完成系统就会进入中断模式,这时就可以获取转换数据。当采集一定频率的模拟信号时可以考虑换数据。当采集一定频率的模拟信号时可以考虑使用这种方式。使用这种方式。下面来看看配置相关寄存器实现上述功能。下面来看看配置相关寄存器实现上述功能。首先,完成寄存器的宏定义,程序代码如下,主首先,完成寄存器的宏定义,程序代码如下,主要是要是ADC和触摸屏控制中的相关寄存器的地址的和触摸屏控制中的相关寄存器的地址的宏定义,以便在程序设计过程中对其的访问。宏定义,以便在程序设计过程中对其的访问。/第三组矢量中断选择寄存
39、器第三组矢量中断选择寄存器 快中断或普通中断快中断或普通中断模式模式 默认普通中断默认普通中断#define VIC2INTSELECT *(volatile unsigned int*)0 xF220000C)#define VIC3INTSELECT *(volatile unsigned int*)0 xF230000C)/第三组矢量中断使能寄存器第三组矢量中断使能寄存器 8、9位为位为ADC触摸屏中断触摸屏中断#define VIC2INTENCLEAR *(volatile unsigned int*)0 xF2200014)#define VIC3INTENCLEAR *(vola
40、tile unsigned int*)0 xF2300014)#define VIC2INTENABLE *(volatile unsigned int*)0 xF2200010)#define VIC3INTENABLE *(volatile unsigned int*)0 xF2300010)#define VIC3VECTADDR0 *(volatile unsigned int*)0 xF2300100)#define VIC3VECTADDR1 *(volatile unsigned int*)0 xF2300104)#define VIC3VECTADDR2 *(volatile
41、unsigned int*)0 xF2300108)#define VIC3VECTADDR3 *(volatile unsigned int*)0 xF230010C)#define VIC3VECTADDR4 *(volatile unsigned int*)0 xF2300110)#define VIC3VECTADDR5 *(volatile unsigned int*)0 xF2300114)#define VIC3VECTADDR6 *(volatile unsigned int*)0 xF2300118)#define VIC3VECTADDR7 *(volatile unsig
42、ned int*)0 xF230011C)#define VIC3VECTADDR8 *(volatile unsigned int*)0 xF2300120)#define VIC3VECTADDR9 *(volatile unsigned int*)0 xF2300124)#define VIC3VECTADDR10 *(volatile unsigned int*)0 xF2300128)#define VIC3VECTADDR3 *(volatile unsigned int*)0 xF230010C)#define VIC3VECTADDR4 *(volatile unsigned
43、int*)0 xF2300110)#define VIC3VECTADDR5 *(volatile unsigned int*)0 xF2300114)#define VIC3VECTADDR6 *(volatile unsigned int*)0 xF2300118)#define VIC2ADDRESS *(volatile unsigned int*)0 xF2200F00)#define VIC3ADDRESS *(volatile unsigned int*)0 xF2300F00)/UART相关寄存器相关寄存器#define GPA0CON *(volatile unsigned
44、int*)0 xE0200000)#define ULCON0 *(volatile unsigned int*)0 xE2900000)#define UCON0 *(volatile unsigned int*)0 xE2900004)#define GFCON0 *(volatile unsigned int*)0 xE29000008)#define UTRSTAT0 *(volatile unsigned int*)0 xE2900010)#define UTXH0 *(volatile unsigned int*)0 x 0 xE2900020)#define URXH0 *(vo
45、latile unsigned int*)0 x 0 xE2900024)#define UBRDIV0 *(volatile unsigned int*)0 xE2900028)#define UDIVSLOT0 *(volatile unsigned int*)0 xE290002C)/ADC相关寄存器相关寄存器#define TSADCCON0 *(volatile unsigned int*)0 xE1700000)#define TSADCCON1 *(volatile unsigned int*)0 xE1701000)#define TSCON1 *(volatile unsig
46、ned int*)0 xE1701004)#define TSDLY1 *(volatile unsigned int*)0 xE1701008)#define TSDATX1 *(volatile unsigned int*)0 xE170100C)#define TSDATY1 *(volatile unsigned int*)0 xE1701010)#define TSPENSTAT1 *(volatile unsigned int*)0 xE1701014)#define CLRINTADC1 *(volatile unsigned int*)0 xE1701018)#define C
47、LRINTPEN1 *(volatile unsigned int*)0 xE1701020)触摸屏实验的主流代码如下:触摸屏实验的主流代码如下:extern void key_isr(void)/设置为外部可用标记,提供给设置为外部可用标记,提供给.s文件使用文件使用/UART0初始化初始化void uart_init()/配置配置GPA0_0 为为UART_0_RXD/配置配置GPA0_1 为为UART_0_TXD GPA0CON&=0 xFF;GPA0CON|=0 x22;ULCON0=0 x3|(02)(06)(06);/发送和接收引脚采用中断和轮询查询模式,正常发送,常规操作,时钟选
48、择位发送和接收引脚采用中断和轮询查询模式,正常发送,常规操作,时钟选择位PCLKUCON0=1|(12)|(010)/禁止禁止FIFOUFCON0=0;/波特率计算:波特率计算:115200UBRDIV0=34;UDIVSLOT0=0 xDDDD;void uart_send_byte(unsigned char byte)while(!(UTRSTAT0&0 x2);/等待发送缓冲区为空等待发送缓冲区为空 UTXH0=byte;/发送一字节数据发送一字节数据void uart_recv_byte()while(!(UTRSTAT0&1);/等待接收缓冲区有数据可读等待接收缓冲区有数据可读 r
49、eturn URXH0;/接收一字节数据接收一字节数据void uart_send_string(char*str)char*p =str;while(*p)uart_send_byte(*p+);void uart_send_num(unsigned int sum)char unit,tens,bunds,thund;unit=0+num%10;tens=0+num/10%10;hunds=0+num/100%10;thund=0+num/1000%10;Uart_send_byte(thund);Uart_send_byte(hunds);Uart_send_byte(tens);Uar
50、t_send_byte(unit);Void adc_init()TSADCCON0|=1 17;TSADCCON1=114|196|02;TSDLY1=0XFFFF;TSCON1=0 xd3;Uart_send_string(“rinitadc finshn”);Void irq_int()VIC2INTENCLEAR|=0 x39;VIC3INTENCLEAR|=0 x39;VIC2INTSELECT|=(0 x39);VIC3INTSELECT|=(0 x39);VIC3INTENABLE|=0 x39;Void key_handle()uart_send_string(“test ke