嵌入式开发(S5PV210)——ADC和触摸屏
Posted 代二毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式开发(S5PV210)——ADC和触摸屏相关的知识,希望对你有一定的参考价值。
1、ADC介绍
ADC(analog digital converter)就是AD转换,把模拟量转换为数字量。CPU本身是数字的、离散的,而外部世界却是模拟的、连续的,所以外界的信息是不能直接被计算机进行处理,需要先将模拟量转换为数字量。现在的CPU都是二进制的,数据用n位二进制来表示,但是现实生活中的时间、电压、高度等物理量都是连续分布的,在0到1之间就有无数个数,如果用数学来描述当前的物理量大小可能需要无限小数位,显然计算机是不可能用无限个二进制位来存储这个物理量,于是就有了量取的精度,用有限位的二进制来表示当前物理量,会损失掉一定的精度,不能百分百真实的表示,但是这点偏差是可以接受的。而ADC就是将当前现实中的物理量,根据精度用有限个二进制位来表示,这样CPU就可以进行运算。(在这里突然觉得有句话很有趣:精度就意味着损失。以前觉得精度是很牛的一个词,精密仪器都是号称达到某个精度,现在才觉得真正牛的仪器根本就不用精度这个概念,现实生活中是多少测出来就是多少)
补充:一般ADC都是电压信号的转换,将模拟的电信号通过采样转换成数字的电信号,这中间是需要各种传感器的参与,不同的传感器将不同的物理量转换成电压信号。比如光电传感器,不同的光照对应不同的电压,通过测量电压进能知道当前的光照强度。
2、ADC的主要概念
2.1、量程
ADC是一个用于电压转换的电子器件,是具有物理特性的,对于输入的模拟电压是有范围要求的。AD输入端的模拟电压要求有一个范围,一般是0~3.3V或0~5V或者是0~12V等等。模拟电压的范围是AD芯片本身的一个参数。实际工作时给AD的电压信号不能超过这个电压范围。
2.2、精度
AD转换得到的数字值是用一定位数的二进制来表示,常见的有10bit和12bit的ADC。相同量程下,位数越高的ADC越精确(并不是单纯的位数越多越精确,还有量程有关)。比如ADC的量程是0~3.3V,10bit的ADC可以精确到3.3/1024,而12bit的ADC可以精确到3.3/4096。
2.3、转换速率
1.ADC是物理器件,AD芯片进行AD转换是要耗费时间的。这个时间需要多久,不同的芯片是不一样的,同一颗芯片在配置不一样时转换时间也不一样(譬如说精度配置
为10位时间比精度配置为12位时要小,譬如说有些AD可以配转换时钟,时钟频率高则转换时间短)。
2.数据手册中描述转换速率用的单位是MSPS(第一个M是兆,S是sample,就是采样;PS就是per second,总的意思就是兆样本每秒,每秒种转出来多少M个数字值),时钟频率和MSPS是不同的概念,比如S5PV210芯片,需要5个时钟才能转换出一次,所以MSPS = 时钟频率/5。
2.4、通道数
AD芯片有多少路analog input通道,代表了将来可以同时进行多少路模拟信号的输入。
3、S5PV210的ADC控制器
3.1、ADC的工作时钟框图
>从时钟框图可以知道ADC的时钟ADCCLK是上级时钟PCLK(PCLK_PSYS)经过分频得到的,分频系数由TSADCCONn寄存器的bit6~bit13控制。将来配置ADC的时钟就是配置TSADCCONn寄存器的bit6~bit13,注意分频得到的ADCCLK不要超范围。
3.2、ADC支持的通道数
从图中可知该Soc支持10路ADC,再结合数据手册可知,其中2路是专门做AD转换的,其余8路可以支持2个电阻式触摸屏(一个电阻式触摸屏需要4路AD)。在I/O描述的表格中,最后一个字段type的值是Analog,意思是这个引脚是模拟引脚。Soc的引脚可以分为数字引脚和模拟引脚,数字信号只接收数字信号,状态只有0和1;模拟引脚可以输入模拟信号,AD转换用的模拟引脚就可以输入模拟信号,然后再由ADC转换成数字信号。
3.3、ADC控制器的主要寄存器
TSADCCON0:分频系数、精度、是否用中断模式等
TSDATX0 & TSDATY0:转出来的AD值存在这里,我们读也是读这里
CLRINTADC0:清中断
ADCMUX:选择当前正在操作的AD通道
3.4、等待触摸屏转换完毕的方法
1.检查标志位:用轮询的方式,先开启一次转换然后循环不停检查标志位直到标志位为1表明已经转换完可以去读
2.中断:设置好中断,写好中断处理程序isr来读取AD转换数据。
3.5、开启AD转换的两种方式
1.手动开启:每次读取完数据都要手动将AD转换开始位置1;
2.start by read模式:读取完数据后Soc会自动开启下一次AD转换。
补充:两种模式可以在TSADCCON寄存器里配置。
4.触摸屏
4.1、触摸屏和显示屏的联系
触摸屏和显示屏是两个器件,触摸屏是响应触摸事件的,显示屏是显示图像的。现在常常把触摸屏和显示屏做在一起,触摸屏在外层是透明的并且很薄,底层是显示屏,平
时看到的图像是显示屏显示并且透过触摸屏让人看到的,但因为触摸屏是透明的,不容易感觉触摸屏的存在。
4.2、电阻式触摸屏
挤压产生形变进而改变电阻,通过测量到的电压变化来计算坐标。电阻式触摸屏往往是和ADC关联的,将电阻式触摸屏的引脚接在Soc的AD引脚上,通过AD转换得到电压值,再通过X/Y轴分时AD转换去计算坐标。
**X/Y轴分时AD转换:**分别给电阻式触摸屏的两对电极加电压,分两次计算得到X轴和Y轴的坐标。
4.3、电容式触摸屏
1.原理:利用人体电流感应现象,在手指和屏幕之间形成一个电容,手指触摸时吸走一个微小电流,这个电流会导致触摸板上4个电极上发生电流流动,控制器通过计算这4个电流的比例就能算出触摸点的坐标(这个计算过程中涉及到AD转换)。
2.坐标计算:该坐标计算比电阻式触摸屏的坐标计算复杂,有专门负责计算的IC芯片,Soc通过I2C接口和触摸屏通信。
4.4、触摸屏的硬件接口
1.SoC内置触摸屏控制器;
2.外置的专门触摸屏控制芯片,将触摸板传感器与这个控制芯片相连接,这个芯片
内部逻辑电路或者是内置程序代码能够根据上面说的原理将触点坐标算出来并且转化为数字量通过I2C接口发送给主机Soc。
备注:电阻式触摸屏可以是上面两种硬件接口中的任意一种;电容式触摸屏目前都是外置的专门触摸屏控制芯片。
4.5、怎么区分电阻式触摸屏和电容式触摸屏
时间上来说,是先出现的电阻式触摸屏后出现的电容式触摸屏,并且现在大多数和人交互的电子产品都是用的电容式触摸屏,工业中还有使用电阻式触摸屏的。还记得我的第一部手机就是电阻式触摸屏的,手机还带了一根小棍,专门用来操作屏幕,写字还需要用指甲划才行。现在的手机都是电容式触摸屏,使用起来的体验感明显好于电阻式触摸屏,但是屏幕有水触摸就不太灵敏了。
总结:用尖锐的物体(比如小棍)去触摸屏幕,有反应的是电阻式触摸屏,此方法虽不能保证百分百,但是方便快捷并且八九不离十。
以上是关于嵌入式开发(S5PV210)——ADC和触摸屏的主要内容,如果未能解决你的问题,请参考以下文章