pic16f616 ad转换

嵌入式设计应用

128人已加入

描述

  PIC16F616是一款14引脚、8位的CMOS单片机。采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令。这样有利于提高单片机的运行速度和执行效率。

  PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部晶振提供时钟。内部集成有AD转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能。三个定时器、PWM发生器等可以由用户编程。下面介绍一下PIC16F616的封装。

  PIC16F616的模数转换器(ADC)模块

  PIC16F616有一个十位、八路的AD转换器。其参考电压可认为电源电压VDD,也可以是外部参考电压(VREF引脚),当AD转换完成后可以产生一个间断,此间断可以把单片机从睡眠状态中唤醒。

pic16f616

  ADC框图

  ADC配置

  1、端口配置

  需要采样模拟信号的端口必需设置为模拟输入状态,假如设置为数字端口,将使转换结果不准确,端口的模拟输入可以由寄存器ANSEL来配置。

  2、通道选择

  有八路外部通道和三路内部通道,可以通过ADCON0寄存器的CHS《3:0》位来设置通道的选择。

  3、ADC参考电压

  参考电压可以是VDD,也可以是外部参考电压,可以通过ADCON0寄存器的VCFG位来设置,当VCFG=0时,参考电压为VDD,当VCFG=1时,参考电压为外部参考电压(来自VREF引脚)。

pic16f616
模数转换TAD周期

  4、转换时钟

  寄存器ADCON1专门来设置AD的时钟源,ADCS《2:0》不同组合,可以将AD的时钟源设置为不同的频率,可认为FOSC/2、FOSC/4、FOSC/8、FOSC/16、FOSC/32、FOSC/64和FRC(内部RC)。

  5、中断

  要使用AD的间断功能,可以先把AD间断使能,ADIE位设置为1(在寄存器PIE1中),PEIE位置1(在INTCON寄存器中),总间断GIE位置1(INTCON寄存器中)。

  6、结果格式

  AD转换后的结果保留在一个寄存器对里面:ADRESH和ADRESL,但是AD转换结果只有十位,设置AD转换格局可以通过设置ADCON0的ADFM位来选择,当ADFM=1时10位的AD结果的低八位保留在ADRESL内,高两位保留在ADRESH内;当ADFM=0时10位的AD结果的高八位保留在ADRESH内,低两位保留在ADRESL内。

pic16f616
10位A/D转换结果格式

  ADC工作原理

  1、启动转换

  要将ADC模块的ADCON0寄存器的ADON位和ADCON0寄存器的GO/DONE位设置为1将启动模数转换。

  2、转换完成

  转换完成时,ADC模块:

  1)清零GO/DONE位

  2)将ADIF标志位置1

  3)用新的转换结果更新ADRESH:ADRESL寄存器

  3、终止转换

  如果必须在转换完成之前终止转换,可用软件将GO/DONE位清零。不会用部分完成的模数转换结果更新ADRESH和ADRESL寄存器,ADRESH:ADRESL寄存器仍然保留的前一次转换的值。此外,必须经过2TAD的延时后才能开始下一次的采集。延时结束后将自动开始对选定通道的输入进行采集。

  4、休眠期间的ADC操作

  ADC模块可以再休眠模式下工作。这需要把ADC转换时钟设置为FRC选项。选择FRC时钟源后,ADC需等待一个指令周期后才能启动转换操作。这使得可以执行SLEEP指令,以降低转换期间的系统噪声。如果允许了ADC中断,转换完成时器件将从休眠状态唤醒。如果允许了ADC中断,尽管ADON位仍保持位置1,转换完成后ADC模块将关闭。

  ADC时钟源不是FRC时,尽管ADON位仍保持位置1,SLEEP指令会导致当前转换中止,ADC模块关闭。

  5、特殊事件触发器

  ECCP特殊事件触发器允许定期测试ADC而无需软件干预。当出现触发信号后,GO/DONE位由硬件置1,Tmer1计数器复位为零。

  使用特殊事件触发器不能确保正确的ADC时序。用户需负责确保ADC时序要求得到满足。

pic16f616
A/D转换

  6、A/D转换步骤

  以下是用ADC执行模数转换的示例步骤:

  1)配置端口:

  禁止引脚输出驱动器(见TRIS寄存器)

  将引脚配置为模拟

  2)配置ADC模块:

  选择ADC转换时钟

  配置参考电压

  选择ADC输入通道

  选择结果格式

  开启ADC模块

  3)配置ADC中断(可选):

  清零ADC中断标志

  允许ADC中断

  允许外设中断

  允许全局中断

  4)等待所需采集时间

  5)通过将GODONE位置1启动转换

  6)通过以下方式之一等待ADC转换完成:

  查询GO/DONE位

  等待ADC中断(已允许中断)

  7)读取ADC结果

  8)清零ADC中断标志(如果已允许中断需要)

  7、相关寄存器

pic16f616

  A/D采集要求

pic16f616
模拟输入模型

  为了使ADC达到规定的精度,必须使充电保持电容(CHOLD)充满至输入通道的电平。模拟输入模型见图。模拟信号源阻抗(RS)和内部采样开关阻抗(RSS)直接影响电容CHOLD的充电时间。采样开关阻抗(RSS)随器件电压(VDD)的变化而变化。建议模拟信号源的最大阻抗为10kΩ。采集时间随着源阻抗的降低而缩短。在选择(或改变)模拟输入通道后,必须在开始转换前完成A/D采集。可以使用公式来计算最小采集时间。该公式假设误差为1/2Lsb(ADc转换需要1024步)。1/2LSb误差是ADC达到规定分辨率所允许的最大误差。

采集时间计算

pic16f616

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分