基于ADS7843控制芯片和单片机实现应用系统的连接与设计

描述

现如今,LCD触摸屏越来越普及,逐渐成为当今的主流配置,其在舰艇武器装备的手持检测设备上的应用也越来越广泛。触摸屏分为电阻式、电容式、表面声波式和红外线扫描式等类型,其中使用最多的是电阻触摸屏.四线电阻式触摸屏由两个透明电阻膜构成.在它的水平和垂直电阻网上施加电压.就可通过A/D转换在触摸点测量出电压从而对应得到相应的二维坐标值。本文针对触摸屏接口芯片ADS7843的功能特性.重点探讨触摸屏控制器应用中的相关问题.同时给出其与ATmega64微处理器的通讯实现和软硬件设计。

1 ADS7843控制芯片内部结构及主要功能

ADS7843之所以能实现对触摸屏的控制。是因为其内部结构很容易实现电极电压的切换,并能进行快速A/D转换。图1为其内部结构示意图。

控制器

图1 ADS7843控制芯片内部结构示意图

显然.触摸屏的控制芯片要完成两件事:其一、完成电极电压的切换;其二、采集接触点处的电压值,即A/D转换。BurrBrown公司生产的ADS7843芯片是一个内置12位模数转换、低导通电阻模拟开关的串行接口芯片,供电电压2.7~5 V,最高转换速率为125 kHz,在125 kHz转换速率和2.7 V供电电压下的功耗为750μW.在关闭模式下的功耗为0.5μW,显见ADS7843的低功耗、高速率和在便携式检测设备上的良好适用性。

控制器

图2触点坐标()【轴或Y轴)获取子程序流程图

AD57843通过连接触摸屏x+将触摸信号输入到A/D转换器.同时打开Y+和Y一驱动,然后数字化X+电压,得到当前Y位置的测量结果:同理也可得到X方向的坐标。实际上ADS7843控制器分时向X、Y电极对施加电压.并把测量电极上的电压信号转换为相应触摸点的X、Y坐标。

ADS7843根据微控制器发来的不同测量命令导通相应的模拟开关。以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D转换器,完成一次电极电压切换和A/D转换.需要通过串口往ADS7843发送控制字,转换完成后再通过串口读出电压转换值。

2 ATmega64微处理器的功能特性

实际的触摸屏输入系统由触摸屏、触摸屏控制器和微控制器三部分组成。前文已提及触摸屏和触摸屏控制器,至于微控制器—应用系统的核心控制部件。它的选择将在很大程度上影响系统的整体性能。ATmega64是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间使ATmega64的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。

作为一类高性能、低功耗的8位AVR微处理器。ATmega64内部有以下非易失性程序和数据存储器:64K字节的系统内可编程Flash(具有同时读写的能力1.擦写寿命达10000次,2K字节EEPROM。4K字节片内SRAM,64K字节可选外部存储空间。ATmega64的指令有130条.且大多数指令执行时间为单个时钟周期。另外其有32个8位通用工作寄存器,53个可编程的I/0口,具有独立振荡器的实时计数器(RTC),可工作于主机/从机模式的SPI串行接口,8路10位具有可选差分输入级可编程增益的ADC。

ATmega64与ADS7843采用串行通讯接口SPI通讯。串行外设接口 SPI允许ATmega64和外设之间进行高速的同步数据传输。ATmega64 SPI的特点是:全双工。3线同步数据传输,主机或从机操作.LSB首先发送或MSB首先发送可选.7种可编程的比特率。传输结束中断。

3 应用系统的硬件连接及控制实现

舰艇武器装备的手持检测设备上的实际触摸屏输入系统.采用四线电阻式触摸屏.触摸屏控制器采用ADS7843,微控制器用ATmega64。

当屏触发生时,ADS7843向ATmega64发出中断请求,由ATmega64响应该中断请求.启动通信过程,读取ADS7843的转换结果,从而获取屏触点坐标。通过将ss引脚电平的拉低。微处理器启动一次通讯过程.它将需要发送的数据放入相应的移位寄存器,同时,微处理器在SCK引脚上产生时钟脉冲以交换数据擞据从微处理器的MOSI移出.从MISO移入。

由于ADS7843各信号的时序受外部输入时钟信号频率的影响.因此ATmega64与ADS7843之间的SPI数据需要配置确定的传送时序。对SPI数据寄存器SPDR写人数据即启动SPI时钟,将8比特的数据移入ADS7843。传输结束后SPI时钟停止.传输结束标志SPIF置位。如果此时SPI控制寄存器SPCR的中断使能位SPIE置位.中断就会发生。图2、图3分别给出了触点坐标(x轴或Y轴)获取子程序的流程和屏触中断服务程序的流程。

控制器

图3屏触中断服务程序流程图

实现图3流程的具体程序为:

#define spiiflag SPSR_Bit7

#define spi_busy PINB_Bit4

void delayms(uchar mst) /*毫秒延时程序*/

{

uint i=0;

uchar j;

for {j=0;j for(i=568;i》0;i--)

{ asm(“nop”);}

}

void spi_init(void) /*SPI传送初始化设置*/

{

SPCR=(1《 SPSR=0x00; /*设置SPl2X=0 SPI不倍速*/

}

void SPI_MasterTransmit(char cData) /*SPI主机传输函数*/

{

SPDR=cData;

while(!spiiflag);

spiiflag=0;

}

unsigned int Get_Touch_Ad(unsigned char channel) /*读取转换结果*/

{

unsigned int ad_tem;

while(1){

ANX9030_Resetn_Pin=0;

delay_ms(2);

ANX9030_Resetn_Pin=l;

delay_ms(2);

c=ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDL_REG,&c1);

if((c==0)&&(c1==0x30)){

c=ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDH—REG,&c1);

if((c==o)&&(c1==Ox90))

break;

}}

ANX9030在上电复位后,设置DE_GEN和BT_656同步信号检测。然后进行像素格式和时钟路径的设置来配置视频信息。由于HDMI兼容DVI.所以发送端可工作在HDMI模式或DVI模式,在此只需对ANX9030的HDMI—MODE位设置为I(HDMI)或o(ovt)f10可。检测到HDMI模式后.设置HDMI的音频格式及数据包,没有异常中断时,使能数据包发送即可把音视频数据包等信息发送出去.发送成功后返回。

除了像素时钟检测(CKDT)和热插拔检测(HPDT)功能外。ANX9030的大部分功能都处于待机状态,软件需要正确的配置其他寄存器。这些寄存器的详细配置可参考ANX9030的芯片资料。

ANX9030的异常处理。由于ANX9030提供了16个中断触发源.包括软件触发中断、检测到显示器中断、接收端上电/断电检测中断、S/PDIF输入丢包中断及CTS变化中断等,所以源端主控制器需要一个中断来管理ANX9030所发出的中断。一般只需要热拔插检测、RI_128连接完整性检测及音频FIFO溢出、CTS变化等断即可。本设计利用EP9302的中断引脚INT0来捕获ANX9030引发的中断,然后进行相应的中断处理。

4 结束语

HDMI是针对下一代多媒体影音设备所开发的传输接口,适用于数字电视、DVD播放机、DVD录放机、PVR、机顶盒及其他数字视听产品.现在已广泛应用于PC机及平板显示器等消费类电子产品上。本文详细说明了HDMI接口原理、源接口芯片特点、接口威廉希尔官方网站 设计及在ARM9嵌入式平台上系统软件的实现方法,该系统可用于安防监控和高清晰视频会议等领域。

本文作者创新观念:把高清多媒体接口HDMI应用到视频监控系统中,和一般监控系统相比,具有监控场景更加清晰和使用灵活等优点。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分