触摸屏控制芯片ADS7843中文文档
触摸屏的驱动芯片ADS7843

触摸屏的驱动芯片ADS7843触摸屏由于其体积小、轻便和接口简单的特点,成为一种在嵌入式系统中应用广泛的输入设备。
S3C44B0X通过端口G模拟串行的SIO接口与触摸屏专门的控制芯片ADS7843(由Burr-Brown公司生产)开展数据传输,来完成对触摸屏触摸位置坐标的读取。
触摸屏接口专用芯片ADS7843要完成两件事:一是完成电极电压的切换;二是采集接触点处的电压值,并开展A/D转换。
触摸屏组成:触摸检测部件:安装在显示器屏幕前面,检测用户触摸位置,承受后送触摸屏控制器。
触摸屏控制器:接收触摸点检测装置信息,并将它转换成触点坐标,再送给CPU。
比方ADS7843。
ADS7843是TI 公司生产的4 线电阻触摸屏转换接口芯片。
ADS7843功能:(1)电极电压的切换。
(2)采集接触点处的电压值,并开展A/D转换。
ADS7843特性:(1)可编程控制8位或者12位A/D转换模式。
(2)低导通电阻模拟开关。
(3)实现触摸屏的驱动选择控制(X、Y通道)。
(4)供电电压为2.7~5V。
(5)参考电压VREF为1V~+Vcc。
(6)转换电压的输入范围为0~VREF。
(7)最高转换速率为125kHz。
编程说明:(1)S3C44B0X端口初始化:PCONG(2)S3C44B0X端口初始化:PUPG(3)触摸屏X坐标控制字(4)触摸屏Y坐标控制字(5)触摸点坐标读取过程(6)检测PENIRQ是否为低电平。
如果PENIRQ=0,则认为有接触。
(7)使ADS7843有效、无效(8)向ADS7843发送控制字(9)等待ADS7843 的BUSY管脚从高变低(10)从ADS7843接收数据。
ADS7843使用详解含时序图

LCALL AD_RUN
MOV CHYAdResultH,AD_RESULTH
MOV CHYAdResultL,AD_RESULTL
RET
; A/D转换子程序(AD_RUN)
;输入: AD_CH-模式和通道选择命令字
;输出: AD_RESULTH,L ;12 bit的A/D转换值
2 M68VZ328ADS Application Development System User's Manual. Revision 1.4. 2000
3 Burr-Brown IC Data Book
触摸屏的工作原理及典型应用
摘要简要介绍触摸屏的结构及工作原理,并以Burr-Brown公司的触摸屏控制芯片ADS7843为例,介绍触摸屏应用的典型电路和操作。由于ADS7843内置12位A/D,理论上触摸屏的输入坐标识别精度为有效长宽的1/4096。
关键词触摸屏ITO ADS7843嵌入式系统
1触摸屏的基本原理
RL A
DJNZ R2,AD_LOOP
NOP
NOP
NOP
NOP
ADW0: JNB BUSY,AD_WAIT ;等待转换完成
SJMP ADW1
AD_WAIT:
LCALL WATCHDOG
NOP
SJMP ADW0
CLR DIN
ADW1: MOV R2,#12 ;开始读取12bit结果
SETB DCLK
CLR DCLK
CHYAdResultL EQU 3BH
;采集通道CHX+的程序段(CHXAD)
CHXAD: MOV AD_CH,#CHX
LCALL AD_RUN
触摸屏控制器驱动程序设计

触摸屏控制器驱动程序设计在便携式的电子类产品中 ,触摸屏由于其便、灵活、占用空间少等优点 ,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。
触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。
本文从触摸屏控制器的驱动程序设计着手 ,介绍触摸屏控制器 ADS7843 的内部结构及工作原理和在嵌入式 Linux 操作系统中基于PXA255微处理器的ADS784羽驱动程序设计。
1触摸屏控制器ADS7843的介绍1.1ADS7843的内部结构ADS7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近A/D转换器和异步串行数据输入输出,ADS7843艮据微控制器发来的不同测量命令导通相应的模拟开关 ,以便向触摸屏电极对提供电压 ,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D转换器,图1为ADS7843内部结构图。
X+、Y+ X-、丫为触摸屏电极模拟电压输入;CS为ADS7843的片选输入信号,低电平有效;DCLK接外部时钟输入 ,为芯片进行 A/D 转换和异步串行数据输入 /输出提供时钟;DIN串行数据输入端,当CS低电平时,输入数据在时钟的上升沿将串行数据锁存;DOUT串行数据输出端,在时钟下降沿数据由此移位输出,当 CS 为高电平时,DOUT呈高阻态。
BUSY为系统忙标志端,当CS为低电平, 且BUSY为高电平时,表示ADS7843正在进行数据转换;VREF参考电压输入端,电压值在+1V到+VCC之间变化;PENIRC为笔触中断,低电平有效;IN3、IN4为辅助ADC转换输入通道;+VCC为电源输入。
图1ADS7843内部结构1.2ADS7843的转换时序ADS7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向 ADS843 发送控制字 ,其中包括起始位、通道选择、 8/12 位模式、差分 /单端选择和掉电模式选择 ,其后的两次数据传送则是微控制器从 ADS7843 取出 16bitA/D 转换结果数据(最后四位自动补零),每次通信需要 8 个时钟周期 ,完成一次数据转换共需 24 个时钟周期周2为ADS7843转换时序。
第十八节:ADS7843驱动的320240电阻型触摸屏:

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载第十八节:ADS7843驱动的320240电阻型触摸屏:地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容第十八节:ADS7843驱动的320240电阻型触摸屏(1)开场白:320240的触摸屏是由320240液晶显示屏和320240电阻触摸薄膜组成。
320240液晶显示屏披上一层触摸膜的皮就是触摸屏了。
显示和读取触摸信息是各自独立的,我们通过编写程序,两者有机结合起来,让客户产生错觉,以为触摸和显示是一体的。
320240液晶屏的程序在第十五节已经讲过。
现在重点介绍一下电阻触摸薄膜的原理。
它的本质是利用电阻分压的原理。
假如我在桌面上放了一条很长的裸露电阻,我们的手触摸到电阻的某点时,就相当于可调电阻的中间移动点,按到哪一点位置,我们只要通过AD把被分压后的电压读取出来,就知道你的手按到了哪个位置。
一张触摸膜相当于在X轴和Y轴都放了一个很宽很长的裸露电阻,手按到哪一点,只要把该点的X轴和Y轴的分压通过AD读取出来,就可以得到被触摸的X轴和Y轴坐标。
驱动电阻型触摸屏,就相当于单片机驱动一个外部AD转换芯片,这个AD芯片就是ADS7843。
编程技巧:我们要在显示屏上先做一个显示程序,专门用来显示按下去的X轴坐标和Y轴坐标,这样方便我们记录按键的位置信息。
有了具体某个按键的位置信息,我们才可以针对此按键进行后续的触发程序编写。
(2)功能需求:在触摸屏上按下一个矩形按键,此按键马上反显,表示被触发。
同时把相对应的X轴和Y轴坐标数据在液晶屏上显示出来。
(3)硬件原理:跟320240液晶显示屏的接线请参考第十五节。
然后用单片机的4个IO口分别跟ADS7843的DCLK, CS, DIN, DOUT连接。
51单片机程序触摸屏芯片ADS7843驱动

51单片机程序触摸屏芯片ADS7843驱动#include "reg51.h"#include "intrins.h"sbit DCLK=P1^6;sbit CS=P2^2;sbit DIN=P2^3;sbit DOUT=P2^4;sbit BUSY=P2^5;delay(unsigned char i--){while(i--);}void start() //SPI开始{DCLK=0;CS=1;DIN=1;DCLK=1;CS=0;}WriteCharTo7843(unsigned char num) //SPI写数据{unsigned char count=0;DCLK=0;for(count=0;count<8;count++){num<<=1;DIN=CY;DCLK=0; _nop_();_nop_();_nop_(); //上升沿有效DCLK=1; _nop_();_nop_();_nop_();}}ReadFromCharFrom7843() //SPI 读数据{unsigned char count=0;unsigned int Num=0;for(count=0;count<12;count++){Num<<=1;DCLK=1; _nop_();_nop_();_nop_(); //下降沿有效DCLK=0; _nop_();_nop_();_nop_();if(DOUT) Num++;}return(Num);}void ZhongDuan() interrupt 0 //外部中断0 用来接受键盘发来的数据{unsigned int X=0,Y=0;delay(10000); //中断后延时以消除抖动,使得采样数据更准确start(); //启动SPI// while(BUSY); //如果BUSY信号不好使可以删除不用delay(2);WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标详细请见有关资料// while(BUSY); //如果BUSY信号不好使可以删除不用delay(2);DCLK=1; _nop_();_nop_();_nop_();_nop_();DCLK=0; _nop_();_nop_();_nop_();_nop_();X=ReadFromCharFrom7843(); //读X轴坐标WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标详细请见有关资料DCLK=1; _nop_();_nop_();_nop_();_nop_();DCLK=0; _nop_();_nop_();_nop_();_nop_();Y=ReadFromCharFrom7843(); //读Y轴坐标CS=1;}main(){TMOD=0x11; // 记数器0 计数器1 都以 16 位记数TCON=0x00;IE=0x83; //1000 0001 EA=1中断允许,IP=0x01;while(1);//等待触摸中断}。
基于PXA255的触摸屏控制器ADS7843程序设计

基于PXA255的触摸屏控制器ADS7843程序设计来源:网络作者:李外云胡文静刘锦高发布时间:2011-01-25 点击: 121次摘要:在研发具有操作系统的设备时,高质量的设备驱动程序可以大大提高设备的稳定性与可靠性。
本文以触摸屏控制器ADS7843为例,介绍了其内部结构、工作原理,并详细阐述了在Linux操作系统的设备文件系统机制中编写设备驱动程序的过程与方法,同时给出基于PXA255微外理器的触摸屏控制器ADS7843中断方式的驱动程序。
关键词:嵌入式Linux;触摸屏;ADS7843;PXA255微处理器在便携式的电子类产品中,触摸屏由于其便、灵活、占用空间少等优点,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。
触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。
本文从触摸屏控制器的驱动程序设计着手,介绍触摸屏控制器ADS7843的内部结构及工作原理和在嵌入式Linux操作系统中基于PXA255微处理器的ADS7843驱动程序设计。
1触摸屏控制器ADS7843的介绍1.1ADS7843的内部结构ADS7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近A/D 转换器和异步串行数据输入输出,ADS7843根据微控制器发来的不同测量命令导通相应的模拟开关,以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D转换器,图1为ADS7843内部结构图。
X+、Y+、X-、Y-为触摸屏电极模拟电压输入;CS为ADS7843的片选输入信号,低电平有效;DCLK接外部时钟输入,为芯片进行A/D转换和异步串行数据输入/输出提供时钟;DIN串行数据输入端,当CS低电平时,输入数据在时钟的上升沿将串行数据锁存;DOUT串行数据输出端,在时钟下降沿数据由此移位输出,当CS 为高电平时,DOUT呈高阻态。
BUSY为系统忙标志端,当CS为低电平,且BUSY为高电平时,表示ADS7843正在进行数据转换;VREF参考电压输入端,电压值在+1V到+VCC之间变化;PENIRQ为笔触中断,低电平有效;IN3、IN4为辅助ADC转换输入通道;+VCC为电源输入。
基于ADS7843的触摸屏控制系统设计

Science &Technology Vision科技视界0引言在电子产品及工业产品的设计中,触摸屏由于其轻便、占用空间少、方便灵活等优点越来越受到设计师及用户的青睐。
触摸屏可作为模拟键盘,使用起来比普通键盘灵活,因为键的位置可根据需要进行改变,并且省去了按键所占用的空间。
触摸屏分为电阻、电容、表面声波、红外线扫描和矢量压力传感等,其中四线电阻触摸屏应用广泛。
1ADS7843简介ADS7843是一款专为四线电阻触摸屏设计的带SPI 接口的12位AD 转换器,内部含模拟电子开关和逐次比较型AD 转换器。
当要采样Y 方向的AD 值时,通过将Y+、Y 一端施加电压,将X+送入AD 转换器得到Y 方向的AD 值;同理可得X 方向的AD 值。
而这些转换均由MCU 通过SPI 方式向ADS7843发送命令来完成。
ADS7843的引脚功能如表1所示。
表1ADS7843的引脚功能ADS7843之所以能实现对触摸屏的控制,是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D 转换。
内部结构如图1所示,A2~A0和SER 为控制寄存器中的控制位,用来进行开关切换和参考电压的选择。
图1ADS7843内部结构2触摸屏控制系统设计以应用广泛的STC89C52作为主控制器,进行触摸控制系统设计。
2.1硬件接口电路设计ADS7843串行接口的一次完整操作需要3×8=24个DCLK 时钟周期,前8个脉冲接收8位的命令,并在第6个脉冲的上升沿开始A/D 转换器进入采样阶段,从第9个脉冲开始进入转换阶段,输出,输出12位采样值,转换结束进入空闲阶段。
直到24个DCLK 结束,CS 置高电平,一次测量结束。
ADS7843采用、转换时序如图2所示。
图2ADS7843采用、转换时序ADS7843与STC89C52的连接图如图3所示。
图3ADS7843与STC89C52的连接图2.2软件设计当用户在触摸屏上的有效区域内点击时,触摸屏的X 方向、Y 方向输出电阻分别随X 和Y 呈线性变化,ADS7843控制器将其分别转换为12位数据,通过中断告知STC89C52需要接收数据,STC89C52接收到数据后进行处理;首先进行触点数据是否有效判断,包括两方面:一是判断是否误操作,即是否是由于人的抖动产生的错误数据;二是ADS7843传过来得数据是否有效,由于刚开始的传过来的第一个基于ADS7843的触摸屏控制系统设计薛大为杨春兰(蚌埠学院机械与电子工程系,安徽蚌埠233030)【摘要】触摸屏在现代电子设备中广泛使用。
半导体传感器AD7683ARMZ中文规格书

AD7680Rev. A | Page 17 of 24SERIAL INTERFACEFigure 20 shows the detailed timing diagram for serialinterfacing to the AD7680. The serial clock provides the conversion clock and also controls the transfer of information from the AD7680 during conversion.The CS signal initiates the data transfer and conversion process. The falling edge of CS puts the track-and-hold into hold mode, takes the bus out of three-state, and samples the analog input. The conversion is also initiated at this point and requires at least 20 SCLK cycles to complete. Once 17 SCLK falling edges have elapsed, the track-and-hold goes back into track mode on the next SCLK rising edge. Figure 20 shows a 24 SCLK transfer that allows a 100 kSPS throughput rate. On the 24th SCLK falling edge, the SDATA line goes back into three-state. If the rising edge of CS occurs before 24 SCLKs have elapsed, the conversion terminates and the SDATA line goes back into three-state; otherwise SDATA returns to three-state on the 24th SCLK falling edge as shown in Figure 20. A minimum of 20 serial clock cycles are required to perform the conversion process and to access data from the AD7680. CS going low provides the first leading zero to be read in by the microcontroller or DSP . The remaining data is then clocked out by subsequent SCLK falling edges beginning with the second leading zero; thus the first falling clock edge on the serial clock has the first leading zero provided and also clocks out the second leading zero. If a 24 SCLK transfer is used as in Figure 20, the data transfer consists of four leading zeros followed by the 16 bits of data, followed by four trailing zeros. The final bit (fourth trailing zero) in the data transfer is valid on the 24th falling edge, having been clocked out on the previous (23rd) falling edge. If a 20 SCLK transfer is used as shown in Figure 21, the data output stream consists of only four leading zeros followed by 16 bits of data with the final bit valid on the 20th SCLK falling edge. A 20 SCLK transfer allows for a shorter cycle time and therefore a faster throughput rate is achieved.03643-0-013SCLK SDATACSFigure 20. AD7680 Serial Interface Timing Diagram—24 SCLK Transfer03643-0-014SCLK SDATA CSFigure 21. AD7680 Serial Interface Timing Diagram—20 SCLK TransferAD7680Rev. A | Page 18 of 24It is also possible to take valid data on each SCLK rising edge rather than falling edge, since the SCLK cycle time is long enough to ensure the data is ready on the rising edge of SCLK. However, the first leading zero is still driven by the CS falling edge, and so it can be taken on only the first SCLK falling edge. It may be ignored and the first rising edge of SCLK after the CS falling edge would have the second leading zero provided and the 23rd rising SCLK edge would have the final trailing zero provided. This method may not work with mostmicrocontrollers/DSPs but could possibly be used with FPGAs and ASICs. AD7680 TO ADSP-218x The ADSP-218x family of DSPs can be interfaced directly to theAD7680 without any glue logic required. The SPORT control register should be set up as follows:TFSW = RFSW = 1, Alternate FramingINVRFS = INVTFS = 1, Active Low Frame SignalDTYPE = 00, Right Justify DataSLEN = 0111, 8-Bit Data-WordsISCLK = 1, Internal Serial ClockTFSR = RFSR = 0, Frame First WordIRFS = 0ITFS = 1To implement the power-down mode, SLEN should be set to 0111 to issue an 8-bit SCLK burst. The connection diagram is shown in Figure 22. The ADSP-218x has the TFS and RFS of the SPORT tied together, with TFS set as an output and RFS set as an input. The DSP operates in alternate framing mode and the SPORT control register is set up as described. Transmit and receive autobuffering is used in order to get a 24 SCLK transfer. Each buffer contains three 8-bit words. The frame synchroniza-tion signal generated on the TFS is tied to CS , and as with all signal processing applications, equidistant sampling is necessary. In this example, the timer interrupt is used to control the sampling rate of the ADC. 03643-0-015*ADDITIONAL PINS OMITTED FOR CLARITY Figure 22. Interfacing to the ADSP-218x The timer register is loaded with a value that provides an interrupt at the required sample interval. When an interrupt is received, the values in the transmit autobuffer start to be transmitted and TFS is generated. The TFS is used to control the RFS and therefore the reading of data. The data is stored in the receive autobuffer for processing or to be shifted later. The frequency of the serial clock is set in the SCLKDIV register. When the instruction to transmit with TFS is given, i.e., TX0 = AX0, the state of the SCLK is checked. The DSP waits until the SCLK has gone high, low, and high again before transmission starts. If the timer and SCLK values are chosen such that the instruction to transmit occurs on or near the rising edge of SCLK, the data may be transmitted or it may wait until the next clock edge.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
触摸屏控制芯片ADS7843中文资料ADS7843是一个内置12位模数转换、低导通电阻模拟开关的串行接口芯片。
供电电压2.7~5 V,参考电压VREF为1 V~+VCC,转换电压的输入范围为0~ VREF,最高转换速率为125 kHz。
ADS7843引脚图及引脚功能说明了:ADS7843的引脚配置如图3所示。
表1为引脚功能说明,图4为典型应用。
aDS7843引脚说明ADS7843典型应用电路2.2 ADS7843的内部结构及参考电压模式选择ADS7843之所以能实现对触摸屏的控制,是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D转换。
图5所示为其内部结构,A2~A0和SER/为控制寄存器中的控制位,用来进行开关切换和参考电压的选择。
ADS7843支持两种参考电压输入模式:一种是参考电压固定为VREF,另一种采取差动模式,参考电压来自驱动电极。
这两种模式分别如图6(a)、(b)所示。
采用图6(b)的差动模式可以消除开关导通压降带来的影响。
表2和表3为两种参考电压输入模式所对应的内部开关状况。
2.3 ADS7843的控制字及数据传输格式ADS7843的控制字如表4所列,其中S为数据传输起始标志位,该位必为"1"。
A2~A0进行通道选择(见表2和3)。
MODE用来选择A/D转换的精度,"1"选择8位,"0"选择12位。
SER/选择参考电压的输入模式(见表2和3)。
PD1、PD0选择省电模式:"00"省电模式允许,在两次A/D转换之间掉电,且中断允许;"01"同"00",只是不允许中断;"10"保留;"11"禁止省电模式。
为了完成一次电极电压切换和A/D转换,需要先通过串口往ADS7843发送控制字,转换完成后再通过串口读出电压转换值。
标准的一次转换需要24个时钟周期,如图7所示。
由于串口支持双向同时进行传送,并且在一次读数与下一次发控制字之间可以重叠,所以转换速率可以提高到每次16个时钟周期,如图8所示。
如果条件允许,CPU可以产生15个CLK的话(比如FPGAs和ASICs),转换速率还可以提高到每次15个时钟周期,如图9所示。
2.4 A/D转换时序的程序设计ADS7843的典型应用如图4所示。
假设μP接口与51单片机的P1.3~P1.7相连,现以一次转换需24个时钟周期为例,介绍A/D转换时序的程序设计。
; A/D 接口控制线DCLK BIT P1.3CS BIT P1.4DIN BIT P1.5BUSY BIT P1.6DOUT BIT P1.7; A/D 通道选择命令字和工作寄存器CHX EQU 094H ;通道X+的选择控制字CHY EQU 0D4H;通道Y+的选择控制字CH3 EQU 0A4HCH4 EQU 0E4HAD_CH EQU 35H ;通道选择寄存器AD_RESULTH EQU 36H ;存放12 bit A/D值AD_RESULTL EQU 37H; 存放通道CHX+的A/D值CHXAdResultH EQU 38HCHXAdResultL EQU 39H; 存放通道CHY+的A/D值CHYAdResultH EQU 3AHCHYAdResultL EQU 3BH; 采集通道CHX+的程序段(CHXAD) CHXAD: MOV AD_CH,#CHXLCALL AD_RUNMOV CHXAdResultH,AD_RESULTHMOV CHXAdResultL,AD_RESULTLRET; 采集通道CHY+的程序段(CHY AD) CHYAD: MOV AD_CH,#CHYLCALL AD_RUNMOV CHYAdResultH,AD_RESULTHMOV CHYAdResultL,AD_RESULTLRET; A/D转换子程序(AD_RUN); 输入: AD_CH-模式和通道选择命令字; 输出: AD_RESULTH,L ;12 bit的A/D转换值; 使用: R2 ;辅助工作寄存器AD_RUN:CLR CS ; 芯片允许CLR DCLKMOV R2,#8 ;先写8 bit命令字MOV A,AD_CHAD_LOOP:MOV C, ACC.7MOV DIN,C ;时钟上升沿锁存DINSETB DCLK ;开始发送命令字CLR DCLK ;时钟脉冲,一共24个RL ADJNZ R2,AD_LOOPNOPNOPNOPNOPADW0: JNB BUSY,AD_WAIT ;等待转换完成SJMP ADW1AD_W AIT:LCALL WATCHDOGNOPSJMP ADW0CLR DINADW1: MOV R2,#12 ;开始读取12bit结果SETB DCLKCLR DCLKAD_READ:SETB DCLKCLR DCLK ;用时钟的下降沿读取MOV A,AD_RESULTLMOV C,DOUTRLC AMOV AD_RESULTL,AMOV A,AD_RESULTHRLC AMOV AD_RESULTH,ADJNZ R2,AD_READMOV R2,#4 ;最后是没用的4个时钟IGNORE:SETB DCLKCLR DCLKDJNZ R2,IGNORESETB CS ;禁止芯片ANL AD_RESULTH,#0FH ;屏蔽高4 bit RET2.5 A/D转换结果的数据格式ADS7843转换结果为二进制格式。
需要说明的是,在进行公式计算时,参考电压在两种输入模式中是不一样的。
而且,如果选取8位的转换精度,1LSB=VREF/256,一次转换完成时间可以提前4个时钟周期,此时串口时钟速率也可以提高一倍。
本文来自: 原文网址:/info/commonIC/0086705.html基于S3C2410的ADS7843触摸屏驱动程序设计触摸屏介绍随着多媒体信息查询的与日俱增,人们越来越多地谈到触摸屏,因为触摸屏不仅适用于中国多媒体信息查询的国情,而且触摸屏具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。
利用这种技术,我们用户只要用手指轻轻地碰计算机显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,这种技术大大方便了那些不懂电脑操作的用户。
一、触摸屏的工作原理为了操作上的方便,人们用触摸屏来代替鼠标或键盘。
工作时,我们必须首先用手指或其它物体触摸安装在显示器前端的触摸屏,然后系统根据手指触摸的图标或菜单位置来定位选择信息输入。
触摸屏由触摸检测部件和触摸屏控制器组成;触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给CPU,它同时能接收CPU发来的命令并加以执行。
二、触摸屏的主要类型从技术原理来区别触摸屏,可分为五个基本种类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏。
本文主要介绍在三星S3C2410X微处理器的硬件平台上进行基于嵌入式Linux的触摸屏驱动程序设计。
1.硬件设计SPI接口是Motorola推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏">触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏">触摸屏控制器。
本文采用SPI接口的触摸屏">触摸屏控制器ADS7843外接四线电阻式触摸屏">触摸屏,这种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏">触摸屏控制器间的通讯时间大大减少,提高了微处理器的效率。
ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。
图1触摸屏输入系统示意图2.嵌入式Linux系统下的驱动程序设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。
Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。
应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。
为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。
设备驱动在加载时首先需要调用入口函数init_module(),该函数完成设备驱动的初始化工作。
其中最重要的工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于块设备需要调用register_blkdev()完成注册。
注册成功后,该设备获得了系统分配的主设备号、自定义的次设备号,并建立起与文件系统的关联。
字符设备驱动程序向Linux内核注册登记时,在字符设备向量表chrdevs中增加一个device_struct数据结构条目,这个设备的主设备标识符用作这个向量表的索引。
向量表中的每一个条目,即一个device_struct数据结构包括两个元素:一个登记的设备驱动程序的名称的指针和一个指向一组文件操作的指针。
这块文件操作本身位于这个设备的字符设备驱动程序中,每一个都处理特定的文件操作,比如打开、读写和关闭。
所谓登记,就是将由模块提供的file_operations结构指针填入device_struct数据结构数组的某个表项。
登记以后,位于上层的模块(内核)可以“看见”这个模块了。
但是,应用程序却还不能“看见”它,因而还不能通过系统调用它。
要使应用程序能“看见”这个模块或者它所驱动的设备,就要在文件系统中为其创建一个代表它的节点。
通过系统调用mknod()创建代表此项设备的文件节点——设备入口点,就可使一项设备在系统中可见,成为应用程序可以访问的设备。
另外,设备驱动在卸载时需要回收相应的资源,令设备的相应寄存器值复位并从系统中注销该设备。
Linux操作系统通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。
设备驱动模块的功能就是扩展内核的功能,主要完成两部分任务:一个是系统调用,另一个是处理中断。
图2是一个设备驱动模块动态挂接、卸载和系统调用的全过程。
系统调用部分则是对设备的操作过程,比如open,read,write,ioctl 等操作,设备驱动程序所提供的这组入口点由几个结构向系统进行说明,分别是file_operations数据结构、inode数据结构和file 数据结构。
内核内部通过file结构识别设备,通过file_operations数据结构提供文件系统的入口点函数,也就是访问设备驱动的函数,结构中的每一个成员都对应着一个系统调用。