ADμC812内部ADC的应用

发布者:机器人总动员最新更新时间:2011-12-10 关键字:ADμC812  AD转换  C51驱动程序 手机看文章 扫描二维码
随时随地手机看文章

1  ADμC812单片机内部ADC简介

1.1  ADC电路

  ADμC812内部的ADC转换块包含一个5μs转换时间、8通道、12位、单电源的A/D转换器。A/D转换器由电容式DAC的常规逐次转换器组成。ADC具有单独的模拟电源和参考电压,可最大限度地减少数字电路的干扰。转换器接受的模拟电压输入范围为0~+VREF;片内提供高精度、低漂移并经厂家校准的2.5 V基准电压。ADμC812内集成的ADC转换模块有其特殊性,如果应用不当,轻则影响ADC的性能,重则电路完全不能工作,甚至烧毁器件。下面对基准电压和模拟输入电压作详细的介绍。

  (1)  基准电压

  ADμC812内A/D转换器的2.5 V基准电压既可由片内提供,也可由外部基准经VREF引脚提供。若使用内部基准,则在VREF和CREF引脚与AGND之间都应当连接0.1μF电容以便去耦。这些去耦电容应放在紧靠VREF和CREF引脚处。为了达到规定的性能,建议在使用外部基准时,该基准应当在2.3 V和模拟电源AVDD之间。图1 给出使用外部基准电源时的应用电路。


图1  使用外部基准电源时的应用电路

  由于片内基准高精度、低漂移且经工厂校准,并且当ADC使能时,在 VREF引脚会出现此基准电压。因此,在进行系统扩展时,可将片内基准作为一个2.5 V的参考电源来使用。若要把片内基准用到微转换器之外,则应在 VREF引脚上加以缓冲并应在此引脚与AGND之间连接0.1 μF电容。

  图 2 示出了把片内基准用到微转换器之外时的应用电路。


图2  片内基准用到微转换器之外时的应用电路

  在实际应用中应当特别注意,内部VREF将保持掉电直到ADC外围设备模块之一被它们各自的使能位上电为止。

  (2)  模拟输入

  与其它ADC芯片相比,ADμC812的ADC模块有一个缺点,就是ADC正常工作的模拟输入范围为0~+2.5 V,而允许输入的电压范围只能为正电压0~+5V。经实验证明,若输入的模拟电压超过 +2.5 V(最大值为+5 V),ADC的采样结果为最大值(0FFFH),虽然结果不对,但并没有影响 ADμC812正常工作;但是,一旦输入负的模拟电压,则会影响ADμC812正常工作,表现为ADC的基准电压(VREF = +2.5 V)消失和采样结果不正确,且若长时间输入负电压,将有可能损坏芯片。 因此,在实际应用中,若发现启动ADC之后VREF端无电压,则应立即将芯片复位,并检查模拟输入信号的采集放大部分。在确保进入ADμC812的模拟信号在0~+2.5 V范围内之后,才能再次启动ADC。实际应用时,应保证输入的模拟电压为正电平。

  一般情况下,ADC的输入缓冲放大器采用0~5 V的电源工作,这样,可以保证ADC的输入在ADμC812的A/D转换器的安全输入范围内,如图3所示。如果实际情况不许可,ADC的输入缓冲放大器的电源超出0~5 V,则应采用图4所示钳位电路,可保证ADC的输入在ADμC812 的A/D转换器的安全输入范围内。注意,ADC的输入端有一个0.01μF的电容,这个电容是为了保证ADC的转换精度。


图3  ADC输入缓冲放大器电源    图4  ADC的输入钳位电路

1.2  控制ADC工作的特殊功能寄存器

  ADC的工作由三个特殊功能寄存器控制,即ADCCON1、ADCCON2和ADCCON3。

  ①  ADCCON1寄存器控制转换与采集时间、硬件转换模式以及掉电模式。
  寄存器地址:FFH;
  寄存器缺省值:20H;
  位可寻址: 否。
  ②  ADCCON2寄存器控制ADC通道选择和转换模式。
  寄存器地址:D8H;
  寄存器上电缺省值: 00H;
  位可寻址:是。
  ③  ADCCON3寄存器对用户软件给出ADC忙标志指示。
  寄存器地址:F5H;
  寄存器上电缺省值: 00H;
  位可寻址:否。

1.3  ADC的工作模式

  (1)  典型运用

  当特殊功能寄存器ADCCON1~3完成设置后,ADC将转换模拟输入并在特殊功能寄存器ADCDATAH/L中提供ADC12位结果字。用通道选择位写寄存器ADCDATAH的高4位以识别通道。

  (2)  ADC的DMA模式

  ADμC812片内ADC设计成5μs完成一次采样,在中断驱动子程序中要求用户在5μs时间内完成中断服务、读ADC转换结果并为进一步的后续处理存储作准备等全部工作。如果没有完成,则下一次的ADC采样可能丢失。因此,在ADμC812不能支持中断速率的应用中,可采用ADC DMA模式。

  通过DMA使能位(ADCCON2.6),使能ADC DMA模式,它允许ADC在每次设置寄存器ADCCON后连续采样。每次采样结果被写入外部静态RAM,无需ADμC812内核的任何干预。这种方式确保ADC处于全速更新速率时,ADμC812能捕获连续的采样流。

2  使用ADμC812内部ADC的C51驱动程序

  下面将给出两个使用ADμC812内部ADC的C51驱动程序。程序“ADC_pol.c”采用查询工作方式,程序“ADC_int.c”采用中断工作方式。

  (1)  查询工作方式下ADμC812内部ADC的C51驱动程序

  使用查询工作方式时,通过测试ADCI位以决定A/D转换是否结束。由ADμC812扩展的特殊功能寄存器(SFR)ADCCON1、ADCCON2和ADCCON3进行配置。典型设置如下:

  ① 置ADCCON1.7(MD1) = 0, ADCCON1.6(MD0) = 1,使ADC处于正常工作方式。
  ② 置ADCCON1.5(CK1) = 1, ADCCON1.4(CK0)=1,选择A/D转换时钟宽度为主时钟宽度的8倍。
  ③ ADCCON1.3(AQ1)=1,ADCCON1.2(AQ0)=1,用于选择采样/保持放大器获取输入的模拟信号的周期数为8个ADC时钟。
  ④ ADCCON2.7(ADC1)=1,A/D转换中断允许。
  ⑤ ADCCON2.5(SCONV)=1,连续转换允许。
  ⑥ ADCCON2.3~2.0用于选择A/D转换通道和温度传感器。

  按上述方法设置好以后,每完成一个通道的 A/D转换,转换后的值就会存放在ADCDATAH的低4位和ADCDATAL中。程序“ADC_pol.c”见本刊网络补充版(http://www.dpj.com.cn)。

  (2)  中断方式下ADμC812内部ADC的C51驱动程序

  本软件的数据采集系统为8通道顺序采集,ADμC812的时钟频率为11.0592 MHz,CPU用中断方式管理A/D转换器。当一个A/D转换完成时,向CPU发请求信号,CPU响应中断,中断处理子程序负责对转换的数据进行读出并送往result_ADC[8]数组中,然后通道号加1。当8个通道全部转换结束后,将所有的结果送往UART。程序“ADC_int.c”见本刊网络补充版(http://www.dpj.com.cn)。

结语

  ADμC812是真正意义上的完整的数据采集系统芯片,是集数据转换电路、微控制器、闪存于一体的数据采集系统。它的高性能和高精度转换技术,使数据采集系统实现高性能和微型化。

关键字:ADμC812  AD转换  C51驱动程序 引用地址:ADμC812内部ADC的应用

上一篇:ARM7各种指令的周期数
下一篇:基于ARM9和GSM/GPRS的无线可移动红外监测报警系统

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

C51单片机模拟I2C总线驱动程序设计(2)
/************************************ I2C_RcvB ******************************** 函数名:uchar I2C_RcvB() 入口: 出口:uchar 型数据 功能描述: 接收从器件传来的数据,并判断总线错误(不发应答信号),收完后需要调用应答函数。 调用函数: 全局变量: ******************************************************************************* uchar I2C_RcvB() { uchar retc;
[单片机]
新型单片机ADμC812在存储测试系统中的应用
  1 引言   ADμC812是美国ADI(Analog Devicelnc)公司生产的高性能单片机,是全集成的12位数据采集系统。它在芯片内集成了高性能的自校准多通道ADC(8通道12位高精度)、2个12位DAC以及可编程的8位MCU(与8051兼容)。片内有8kB的闪速/电擦除程序存储器和在线下载/调试/编程的功能、640B的闪速/电擦除数据存储器、256B片内数据存储器以及与8051兼容的内核。另外MCU支持的功能包括看门狗定时器、电源监视器以及ADCDMA功能。同时为多处理器接口和I/O扩展提供了32条可编程的I/O线、与12C兼容的串行口、SPI串行接口和标准UART串行接口。MCU内核和模拟转换器均有正常、
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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