14位A/DMAX194在ARM单片机系统中的设计

发布者:脑力风潮最新更新时间:2010-12-23 来源: 电子元器件应用关键字:模数转换  ARM  MAX194  LPC2104 手机看文章 扫描二维码
随时随地手机看文章

引言

    为了实现计算机的自动测量与控制,越来越多的领域采用了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。


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转换病读取数据
 ……  
}
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),这样才能提高整个系统的性能。

关键字:模数转换  ARM  MAX194  LPC2104 引用地址:14位A/DMAX194在ARM单片机系统中的设计

上一篇:基于ARM7控制器的中英文翻译器的设计
下一篇:Cortex-M0已撬开ARM架构灵活之门?

推荐阅读最新更新时间:2024-03-16 12:31

ARM和FPGA的光纤信号分析仪设计
0 引言 随着电力网络的扩大复杂化和区域互联趋势的到来,电力系统的行为也将越来越复杂。一些原有的假设条件和简化模型的适用性都将接受进一步的挑战与检验。 IEC61850标准的制定及其内容已超变电站自动化系统的范围,扩展到其他工业控制领域,成为基于通用网络通信平台的工业控制的国际标准。国内外很多电力设备生产商都在围绕IEC61850开展研究和应用工作,并提出IEC61850的发展方向是实现“即插即用”,在工业控制通信上实现“一个世界、一种技术、一个标准”。 1 系统构成及要求 结合一些与该设计方案关于示波器仪表类似的优秀文章,并取其精华作为设计参考。该光纤信号分析仪主要由三部分组成,包括:接口部分、A/D采集控制部分
[单片机]
<font color='red'>ARM</font>和FPGA的光纤信号分析仪设计
嵌入式JavaPOS系统测试的设计与实现
   0 引 言   随着嵌入式计算机应用技术的发展,嵌入式技术已经广泛应用到现代生活的方方面面。在零售系统方面,零售收款机是嵌入式应用的一个重要领域。目前,市场上的收款机大体上可分为三类:第一类是基于PC和DOS/Windows体系的,这类产品目前占市场绝大多数,属于高端产品,价格太高,适合大的商场和销售系统;第二类是基于单片机(51系列居多)的,基本上没有操作系统的支持,功能也较弱,主要用于餐饮娱乐,占据中低档市场;第三类是正在快速发展的基于嵌入式芯片和嵌入式操作系统的,价格较低,功能较强,适用于中高档市场,这类产品将是未来市场的主体。以上三类收款机的开发平台形形色色,基本上是每一款就是一种开发平台,没有统一的规范、开发和
[嵌入式]
ARM USB 通信
采用ZLG的动态链接库,动态装载。 ARM是Context-M3-1343。 在C++ Builder 6 中开发的上位机通信软件。 USB通信代码如下: //--------------------------------------------------------------------------- #include vcl.h #pragma hdrstop #include Unit1.h //#include zyUSBDev.h //--------------------------------------------------------------------------
[单片机]
ARM linux内核启动时几个关键地址
1.内核启动地址 1.1.名词解释 ZTEXTADDR 解压代码运行的开始地址。没有物理地址和虚拟地址之分,因为此时MMU处于关闭状态。这个地址不一定时RAM的地址,可以是支持读写寻址的flash等存储中介。 Start address of decompressor. here's no point in talking about virtual or physical addresses here, since the MMU will be off at the time when you call the decompressor code. You normally call the kernel at
[单片机]
基于ARM单片机的嵌入式最小系统架构研究
1. 引言 随着嵌入式相关技术的迅速发展,嵌入式系统的功能越来越强大,应用接口更加丰富,根据实际应用的需要设计出特定的嵌入式最小系统和应用系统,是嵌入式系统设计的关键。目前在嵌入式系统开发的过程中,开发者往往把大量精力投入到嵌入式微处理器MPU(Micro Processing Unit)与众多外设的连接方式以及应用代码的开发之中,而忽视了对嵌入式系统最基本、最核心部分的研究。 当前在嵌入式领域中,ARM(Advanced RISC Machines)处理器被广泛应用于各种嵌入式设备中。由于ARM嵌入式体系结构类似并且具有通用的外围电路,同时ARM内核的嵌入式最小系统的设计原则及方法基本相同,这使得对嵌入式最小系统的研究在整
[单片机]
基于<font color='red'>ARM</font>单片机的嵌入式最小系统架构研究
ARM基础篇—ARM微处理器的应用选型
鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用。但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对ARM芯片做一些对比研究是十分必要的。 以下从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题做一些简要的探讨。 1、ARM微处理器内核的选择 从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,用户如果希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(MemoryManage
[单片机]
基于ARM微处理器的十回路智能配电监控单元的设计
   O 引言   配电自动化技术正朝着数字化、智能化、网络化、多功能的方向飞速发展。本文以内含ARM7TDMI—STM CPU的微控制器LPC2132芯片作为系统主控制器,针对电力系统数据信号的采集和数据通信,以及电力系统状态监测为研究主题,研究设计出了一种具备智能配电,并可同时监控十个用户回路的终端控制单元,其具备测量各回路中有功功率、无功功率、能量、电压、电流、功率因数等电力参数功能。    1 电力参量的测量原理   对称三相电源通常由三个频率相同、幅值相等和初相角为1200的正弦电压源按一定方式连接而成,三相信号可依次称为A、B、C相,记为uA、uB、uC,它们的瞬时表达式如下:   在交流电路中,
[电源管理]
IAR 发布支持ARM Cortex系列的开发工具包
2009年9月, 瑞典乌普萨拉,IAR Systems正式推出支持Cortex-M系列芯片的IAR Embedded Workbench。IAR Embedded Workbench for Cortex-M是全球最先支持ARM Cortex-M0/M1/M3内核的集成开发环境之一。有别于IAR Embedded Workbench for ARM v5.40标准版本,IAR Embedded Workbench for Cortex-M这个限制版本的价格更加有竞争力, 降低了Cortex-M开发的工具成本,是刚进入ARM Cortex市场的工程师们的最佳选择。 该工具包囊括了一个编辑器、项目管理器、高度优化的C/C
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved