ADS7843与ATmega64通讯的设计和实现
时间:03-23
来源:互联网
点击:
现如今,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<mst;j++)
for(i=568;i>0;i--)
{ asm("nop");}
}
void spi_init(void) /*SPI传送初始化设置*/
{
SPCR=(1<<SPE) | (1I<<MSTR) | (1<<SPRl) | (1<<SPR0);
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引发的中断,然后进行相应的中断处理。
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<mst;j++)
for(i=568;i>0;i--)
{ asm("nop");}
}
void spi_init(void) /*SPI传送初始化设置*/
{
SPCR=(1<<SPE) | (1I<<MSTR) | (1<<SPRl) | (1<<SPR0);
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引发的中断,然后进行相应的中断处理。
LCD 触摸屏 电阻 电容 红外 电压 AVR CMOS MIPS 振荡器 ADC HDMI 显示器 数字电视 机顶盒 电子 电路 ARM 嵌入式 视频监控 相关文章:
- 便携时代风起云涌,Wi-Fi携手微型硬盘引领潮流(11-18)
- TFT-LCD在GPS导航仪中的应用(11-26)
- 小心数字漩涡 显示器指标冷静分析(05-23)
- 用软件实现全球导航卫星系统的设计要素(05-14)
- Microchip加倍单片机闪存及RAM容量以降低成本(04-16)
- 索尼推出Vaio(R) CR系列笔记本(05-12)