历史上的今天
返回首页

历史上的今天

今天是:2024年11月15日(星期五)

正在发生

2019年11月15日 | ADC&&触摸屏实验及心得体会

2019-11-15 来源:51hei

概述:
ADC通过把输入的模拟信号进行采集,经过量化和编码后转换为对应的二进制数值,并输出。主要参数有:分辨率(位数)、量程、采样速率。通常高档单片机、嵌入式处理器都会把ADC集成在芯片内部。但是集成在芯片内部的ADC一般采样速率会比较低,高速ADC一般都是自己做一片芯片。用到过的有ADC9288可达到100MSa/S、ADC8D1010可达到1GSa/S的采样率【这里两款ADC都已经把采样和转换集成在一起】。


触摸屏是一张和屏幕大小一样透明的东西,和显示屏是分开的。通常有电阻屏、电容屏、红外屏和超声屏。电阻屏触摸需要按下,使得屏的上下短接,检测电压求坐标。电容屏是靠人体感应到静电的流通,电流由屏的四个角落提供,各个角所提供的电流和距离成正比,可依此计算坐标。红外屏和超声屏是靠障碍物的遮挡计算出障碍物的坐标。


S3C2440A ADC和触摸屏的概述:
S3C2440A的触摸屏是电阻式。
ADC功能框图如下:

可选作为ADC的输入信号有A[3:0]共8个模拟信号输入。
也可以用几个输入脚分时复用做触摸屏接口,具体看电路图设计部分。

寄存器简单描述
ADC控制寄存器ADCCON:
转换结束标志;
预分频允许与否,以及预分频数值;
输入通道选择;
模式选择;
读开始下一次ADC允许与否;
开始ADC转换;
ADC触摸屏控制寄存器ADCTSC:
YP、YM、XP、XM输出设置;
X/Y位置自动连续转换与否;
上拉开关允许与否(XP);
手动测量X/Y位置;
ADC开始或区间延时寄存器ADCDLY:
ADC从触针向下动作到开始转换的时间长(X转换时长、Y转换时长)=DELAY*时钟;【时钟为1/EXTCLK or 1/PCLK】
ADC转换数据寄存器ADCDAT0、ADCDAT1:
等待中断模式:触针向下还是抬起;
自动连续X位置和Y位置转换;
手动X位置和Y位置测量;
X位置转换值(包括普通ADC转换值)、Y位置转换值;

电路图设计
AIN0作为ADC的模拟输入,最简单的功能:

触摸屏接口:

TSXM、TSXP接触摸屏的X极,TSYM、TSYP接触摸屏的Y极。当X极两端TSXM、TSXP接电压值时,检测TSYM或者TSYP(此时两个管脚做ADC输入用)的电压,计算出X的坐标;换过来,当Y极两端TSYM、TSYP接电压值时,检测TSXM或者TSXP(此时两个管脚做ADC输入用)的电压,计算出Y的坐标。

实验程序设计及分析
设定ADC转换速率,之后启用ADC功能,判断转换是否开始并转换结束,返回ADC采集到的数据。


int ReadAdc(int ch)
{
    int i;
    static int prevCh=-1;

    rADCCON = (1<<14)|(preScaler<<6)|(ch<<3);   //setup channel

    if(prevCh!=ch)
    {
       rADCCON = (1<<14)|(preScaler<<6)|(ch<<3);   //setup channel
       for(i=0;i       prevCh=ch;
    }
    rADCCON|=0x1;   //start ADC

    while(rADCCON & 0x1);      //check if Enable_start is low
    while(!(rADCCON & 0x8000));    //check if EC(End of Conversion) flag is high

    return ( (int)rADCDAT0 & 0x3ff );
}

ADC实现触摸屏接口功能:
设定转换时间、设定转换速率、设定触摸屏控制寄存器;剩下的功能是实现触摸屏中断,暂不分析。


void Test_Touchpanel(void)
{  
    rADCDLY=50000;   //Normal conversion mode delay about (1/3.6864M)*50000=13.56ms
    rADCCON=(1<<14)+(ADCPRS<<6);   //ADCPRS En, ADCPRS Value
    rADCTSC=0xd3;  //Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En
    pISR_ADC = (int)AdcTsAuto;
       rINTMSK=~BIT_ADC;       //ADC Touch Screen Mask bit clear
       rINTSUBMSK=~(BIT_SUB_TC);
              rINTSUBMSK|=BIT_SUB_TC;
       rINTMSK|=BIT_ADC;  
}

推荐阅读

史海拾趣

益升华(Essentra)公司的发展小趣事

益升华(Essentra)公司深知客户是企业发展的基石。因此,公司始终将客户服务放在首位,致力于为客户提供优质的产品和服务。公司建立了完善的客户服务体系,为客户提供从产品咨询、选购、安装到售后维护的全流程服务。同时,公司还积极开展客户回访和满意度调查活动,及时了解客户需求和反馈意见,不断改进产品和服务质量。这些努力使益升华(Essentra)公司赢得了客户的广泛赞誉和信任。

CIF公司的发展小趣事

A公司是一家专注于电子元器件生产的CIF公司。在成立初期,A公司凭借其创新的研发能力和高效的生产流程,迅速在市场中脱颖而出。通过与全球多家知名电子产品制造商建立稳定的CIF贸易关系,A公司不断扩大生产规模,优化产品质量,逐渐发展成为行业内的领军企业。

Hirel Systems Ltd公司的发展小趣事

D公司始终坚持品质至上的经营理念,以提供高品质的电子产品为己任。在CIF交易模式下,D公司严格控制产品质量,从原材料采购到生产流程中的每一个环节都进行严格把关。凭借出色的产品质量和良好的售后服务,D公司赢得了客户的信任和好评。

ERGOBAHCO公司的发展小趣事

为了进一步提升公司的竞争力,ERGOBAHCO公司开始积极拓展国际市场。公司组建了一支专业的国际业务团队,参加了多场国际展会,并与多家国际知名企业建立了合作关系。通过不断努力,ERGOBAHCO公司的产品成功打入了欧美、东南亚等国家和地区的市场,公司的国际化程度得到了显著提升。

APC (APC by Schneider Electric)公司的发展小趣事

进入21世纪,数据中心成为了企业信息化建设的核心。APC凭借其在UPS电源保护领域的深厚积累,稳步向数据中心市场拓展。通过并购和技术创新,APC不仅成为了首个收入达到十亿美元的以UPS为主营业务的公司,更在数据中心领域推出了多款创新产品,如InfraStruXure®架构。这一架构将电源、制冷、机架和管理无缝集成为一个模块化、可扩展的、预制式解决方案,为数据中心带来了前所未有的效率和可靠性提升。

Dresden Elektronik公司的发展小趣事

随着公司的发展壮大,Dresden Elektronik公司越来越意识到合作的重要性。他们积极与产业链上下游的企业开展合作,共同推动整个行业的发展。同时,公司也注重与科研机构、高校等的合作,引进先进的技术和人才,为公司的发展注入新的活力。这种合作共赢的理念使公司在激烈的市场竞争中保持了稳健的发展态势。

问答坊 | AI 解惑

初学PIC单片机

想知道学PIC单片机需要什么软件? 在网上查的是需要: 1、MPLABV8.43(从microchip网站下的) 2、PICC编译器(C语言编译器) 3、PIC单片机单片机烧写器(具体软件暂时没查到)    有精通PIC单片机的高手请给予一下指点,其中第二,第 ...…

查看全部问答>

gogogo

[url=http://www.artgoin.com][/url]爱艺购,艺术的天堂,艺术的宝库,爱好艺术的人都该去看看,获取能找到一件稀世珍宝欧…

查看全部问答>

关于加速计和陀螺仪的测试

各位高手有没有测试过加速计和陀螺仪这两颗的功能阿,三轴加速计有X,Y,Z三个电压输出,都是经过其内部的AD转换后输出的,不知道这三个方向上的电压是怎么变化的,是有加速度的时候变化呢,还是位置改变了变化啊? 陀螺仪有X,Y两个电压输出,也是 ...…

查看全部问答>

关于MTD驱动的问题

很多MTD驱动都有调用simple_map_init()函数来初始化read,write等函数,不知道这个函数的用法,请大虾帮忙讲一讲啊,如果我需要改变这些read,write函数,该怎么办啦?…

查看全部问答>

求职: 请问有没有人需要高级WINCE工程师--限深圳地区!

求职: 请问有没有人需要高级WINCE驱动工程师--限深圳地区! 如有,请如下EMAIL联系 lumit_hu@126.com…

查看全部问答>

英蓓特STM32ARM开发板的初级改造(有图)

上周在研讨会上买了英蓓特的开发板,试了下,感觉有几个地方不爽,所以就自己动手DIY了:1)USB供电问题,必须插2条USB线,可怜我的本本一共才3个,鼠标用了一个,被他全占了,其它USB-232就没法用了;2)板子附带的1602没有接背光,而实际这 ...…

查看全部问答>

關於LMF232H5QD的UART問題

各位高手大家好,小妹我用此板子的UART出了一點問題,大家可以幫幫我嗎? 感激不盡 問題是這樣的,我開啟了八個UART,為了使輸入資料可以做辨識,個別在UART4跟UART5的地方 加了三個#字號跟一個通道編號 例如:UART4是  ###Edata 這樣 ...…

查看全部问答>

今年会出功率放大类的吗?

本帖最后由 paulhyde 于 2014-9-15 03:16 编辑 今年会出功率放大类的吗    …

查看全部问答>

这几天学习SimpliciTI协议栈的小总结合小纠结

SimpliciTI简介: SimpliciTI是TI开发的专门针对其CCxxxx系列无线通信芯片的网络协议。 它支持两种网络拓扑结构:严格的点对点通信和基于星型的网络拓扑结构,在星型连接中Hub点在SimplciTI被称为Access Point,简称AP.(AP就是常说的网关,数据中 ...…

查看全部问答>

TM4C 1294XL

老师给了一块tm4c 1294的launchpad,说让我们自己玩,但之前没接触过arm这些东西,接触过单片机;所以完全不知道怎么开始??这块板子能干嘛我都不知道,该怎么学习??完全处于迷茫状态??望大神相助,指点一二,让我有个方向!!非常感谢! …

查看全部问答>