DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 86|回复: 0
打印 上一主题 下一主题

ADμC812内部ADC的应用

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-25 12:10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍ADμC812内部 ADC的应用,给出安全应用A/D转换器的电源条件,并详细介绍ADμC812内部ADC的C51驱动程序及ADC转换模块的电路构成中应注意的事项。
关键词 ADμC812 A/D转换 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是真正意义上的完整的数据采集系统芯片,是集数据转换电路、微控制器、闪存于一体的数据采集系统。它的高性能和高精度转换技术,使数据采集系统实现高性能和微型化。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-14 19:44 , 耗时 0.112026 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表