当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于MAX194在ARM单片机系统中的设计

摘 要: 通过对MAXI94进行简要介绍, 给出了MAX194与32位单片机LPC2104的接口电路,

描述了MAX194的工作过程,给出了一段A,D转换的具体程序。

 引言
    为了实现计算机的自动测量与控制,越来越多的领域采用了A/D转换技术。随着大规模集成电路芯片技术的发展,速度更快、精度更高、使用更方便的集成电路芯片层出不穷。本文介绍了一种笔者使用后取得良好效果的新型A/D转换芯片—MAX194。另外,由于32位处理器的价格不断下降,用户已可以大量使用,而32位RISC处理器则更是受到青睐,并将在某些领域替代原来的8位单片机。其中,ARM嵌入式微处理器系列处于领先地位。笔者所介绍的数据采集系统中采用的是PHILIPS公司生产的以ARM7处理器作为内核的LPC2104单片机。
1    MAX194简介
    MAX194是MAXIM公司推出的一种逐次逼近型模数转换器(ADC),具有高速、高精度、低功耗等特点。MAX194内部设有校准电路,用于保证全温度范围内的线性度,从而维持全量程内的高性能,且不需要外部的调整电路。分开的模拟和数字供电最大程度地减少了数字噪声耦合。MAX194的内部结构如图1所示,其主要特性如下:


◇ 14位分辨率,1/2LSB非线性度,82分贝的信噪比;
◇ A/D转换时间为9.4 μs;
◇ 低功耗,节电模式下仅为10 μA;
◇ 内置采样/保持器(T/H);
◇ 单极性(0~VREF)或双极性(-VREF~VREF)输入;
◇ 3态串行接口输出;
◇ 与16位的A/D转换器MAX195引脚兼容、输出数据格式相同,便于升级。
1.1    MAX194的主要引脚功能
◇ BP/UP/SHDN:三态输入选择端。0 V为关断,+5 V为单极性,浮空为双极性;
◇ CLK:转换时钟输入端;
◇ SCLK:串行时钟输入端。用于移出数据,可以与CLK异步;
◇ DOUT:串行数据输出端。高位先出;
◇ EOC:转换结束信号输出端。转换开始时上升,结束时下降;
◇ CS:片选输入端。当为低电平时允许三态数据输出;
◇ CONV:转换开始输入端。在波形的下降沿开始转换;
◇ RESET:复位输入端;
◇ REF:参考电压输入端;
◇ AIN:模拟量输入端。
1.2    工作模式
  MAX194有两种接口模式。
◇ 同步模式:MAX194在转换过程中,每转换完成一个,数据位就输出一位。此时,SCLK应该接地,CLK既作为ADC的转换时钟又作为串行接口的移位输出时钟。
◇ 异步模式:单片机只能在MAX194完成一次转换之后才能将转换结果读出,然后再启动下一次转换。这种模式降低了MAX194连续转换的速度。
1.3    硬件接口
    串行接口标准与SPITM、QSPITM兼容。MAX194在进行A/D转换时需要由外部提供时钟信号。图2是MAX194与单片机采用异步模式的硬件连接图。该图中,MAX194进行A/D转换所需的时钟信号由外部晶振分频得到。使用者也可根据需要由单片机提供该时钟信号。时钟信号的最大频率是1.7 MHz,参考电压的范围是0~VDDA+0.3 V。为了防止从AIN端输入的信号损坏ADC,应在信号输入端加电压限幅电路以保护MAX194。图3是其时序图。P3.0产生的START信号与CLK信号相“或”后作为启动转换的CONV信号。CONV的下降沿可以启动转换,开始转换后监测EOC,当它由高电平变低时说明转换已经结束,适当延时后就可以从串口读出转换结果,读数据的最高速率是4.19 Mbps。

[!--empirenews.page--]


2    LPC2104芯片简介
    LPC2104 包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器进行接口的ARM7局部总线、与中断控制器接口的AMBA高性能总线(AHB)以及用于连接片内外设的VLSI外设总线VPB与ARM7 高级外设总线相兼容的超集。主要特点有:128 K 片内Flash 程序存储器带ISP 和IAP 功能;Flash 编程时间1 ms;可编程512字节;扇区擦除和整片擦除只需400 ms;16 K 静态RAM;向量中断控制器;仿真跟踪模块支持实时跟踪;标准ARM 测试/调试接口兼容现有工具;双UART的其中一个带有完全的调制解调器接口;高速I2C 串行接口400 kB/s;SPI 串行接口;两个定时器分别具有4 路捕获/比较通道;多达6 路输出的PWM 单元;实时时钟;看门狗定时器;通用I/O 口;CPU 操作频率可达60 MHz。
3    MAX194与LPC2104接口设计
3.1    硬件接口
     MAX194和LPC2104都带有标准的SPI接口,可以非常方便地实现它们的硬件和软件接口。其硬件接口如图2所示。SPI 是一个全双工的串行接口,它被设计成用于处理在一个给定总线上多个互连的主机和从机。在一定数据传输过程中,接口上只能有一个主机和一个从机通信。在一次数据传输中,主机总是向从机发送一个字节数据,而从机也总是向主机发送一个字节数据。
在该系统中,LPC2104设置为主机,MAX194设置为从机主机操作。
3.1    软件实现
软件的流程图如图4所示。主要分为三大部分。


1、SPI配置部分:首先,配置LPC2104的SPI引脚模块;随后,设置SPI_SPCCR和SPI_SPCR,并将LPC2104的SPI模块设置为主模式,MSB(最高位)先传输,禁止SPI中断,SPI接口速率为1 MHz,CPOL=0、CPHA=0在SCLK下降沿触发。
2、MAX194转换部分:通过向MAX194的CONV引脚发低脉冲启动A/D转换,转换开始后MAX194的EOC引脚变为高电平,可通过检测EOC引脚是否变为低电平来判断A/D转换的完成。
3、MAX194数据读取部分:首先置低MAX194的CS片选引脚,将无效数据0XFF送至SPI_SPDR以启动SPI总线,通过判SPIF位的置位来判断SPI总线传输是否完成,读取SPI_SPDR后,获得A/D转换结果的第一个字节(BIT13-BIT6)并调整数据;将无效数据0XFF再送至SPI_SPDR,然后再启动SPI总线,仍通过判SPIF位的置位来判断SPI总线传输的完成情况,读取SPI_SPDR后,获得A/D转换结果的第二个字节(BIT13-BIT6)并调整数据,最后将MAX194 的14位A/D转换数据存储在16位无符号变量rcv_data中。
#include “LPC2104.H”// 调用LPC2104寄存器头文件
#define   MAX194_CS      0x00000100       // P0.8口为MAX194的片选和信号
#define   MAX194_EOC  0x00000100       // P0.9口为MAX194的转换结束信号
#define    MAX194_UP     0x00000400        //P0.10口为MAX194的三态选择信号
#define MAX194_CONV 0x00000800       //P0.10口为MAX194的转换启动信号 
int  main(void)
{ uint16  rcv_data;            //存储A/D 转换后的14位数据的变量
 PINSEL0 = 0x00005500;            //设置SPI管脚连接
 PINSEL1 = 0x00000000;
IODIR = MAX194_CS|MAX194_UP|MAX194_CONV;// 设置P0.8,P0.10,P0.11为输出
……
MSpiIni(  );                 // 初始化SPI接口
MSendData(0xFF,rcv_data);      // 进行A/D转换病读取数据
 ……  
}[!--empirenews.page--]
void  MSpiIni(void)
{ SPI_SPCCR = 0x0B;   // 设置SPI时钟分频, SPI时钟为1 MHz
SPI_SPCR = 0x20;   // 设置SPI接口模式,MSTR=1,CPOL=0,CPHA=0,LSBF=0
IOCLR = MAX194_UP;  //关断输入
}
uint8  MSendData(uint8 s_data,uint16 r_data)
{ uint32 temp;
         IOSET=Max194_UP;        // 打开输入
         IOCLR = MAX194_CONV;   // 启动转换
         Delay(10);                // 延时 10us
         IOSET = MAX194_CONV;
         do
         { temp=IOPIN;}
         while(temp&MAX194_EOC) ;   // 转换结束
         IOCLR = MAX194_CS;  // 片选
         SPI_SPDR = s_data;           // 发送数据0xFF
         while( 0==(SPI_SPSR&0x80) );  // 等待SPIF置位,即等待数据发送完毕
         r_data= (uint16)SPI_SPDR;     //读取第一个字节数据
         r_data<<=6;                 //调整数据
         SPI_SPDR = s_data;           // 发送数据0xFF
         while( 0==(SPI_SPSR&0x80) );  // 等待SPIF置位,即等待数据发送完毕
         r_data= r_data|(SPI_SPDR>>2);  //读取第二个字节数据并调整
         IOSET = MAX194_CS;  
         IOCLR = MAX194_UP;        //关断输入
}
4    结束语
    在使用MAX194中应尽可能把数字地和模拟地分开。如果模拟电源和数字电源来自同一个电源,那么用一低值电阻(10 Ω)将数字电源和模拟电源隔离。MAX194内部的高速比较器对VDDA和VSSA的高频噪声很敏感,应该用0.1 μF与1 μF或10 μF的并联电容将电源旁路接到模拟地。
    用于数据采集系统的A/D转换芯片有很多,新品更是层出不穷,数据采集的速度和精度等性能也在不断提高,在应用中不但应根据实际情况采用性价比较高的A/D转换芯片,而且应选用高性价比的处理器(如本文所选LPC2104),这样才能提高整个系统的性能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭