ET创芯网论坛(EETOP)

找回密码

  登录   注册  

搜索
汽车电子资料大全(下载奖励300信元)
查看: 58|回复: 0

[解决] 如何提高PIC16C711单片机片内A/D分辨率的方法

[复制链接]
发表于 2019-9-16 10:53:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
目前,单片机中嵌入的A/D一般为8位到10位,难以满足信号处理应用中高分辨率的要求;而外接高分辨率的A/D将使成本明显提高,因为A/D转换器的价格将随其位数的增加而成倍增加。本文介绍一种提高PIC16C711单片机片内A/D分辨率的方法,将PIC16C711片内的8A/D提高到11位。这种方法在PIC系列的其他单片机也适用。
   美国PIC公司推出的8位单片机PIC16C711是一种性能价格比很高的单片机。它价格低、封装小、采用CMOS工艺,具有OTP型,开发起来很方便。它内含48位高速A/D,将它扩展到11位后,可以大大提高单片机应用系统的性能价格比。
一、硬件电路
  实现扩展的原理图如图1所示。8个等值的精密电阻R05V基准电压分割成8档,每档范围为0.625V8个抽头分别接CD4051八选一模拟开关的8个输入端,通道选择控制端CBA分别由PIC16C711单片机的RB2RB1RB0控制。IC2IC3为高输入阻抗运放,IC2构成跟随器,IC3构成精密差分 放大器。
二、工作原理
实现11A/D转换由PIC16C71128A/D转换完成。PIC16C7114个模拟量输入通道RA0RA3,这些模拟量输入通道复用1个采样保持器进入到A/D转换器。参考电压Vref可以来自外部也可以来自内部VDDA/D转换器属于逐次逼近式,转换结果(8位)存入ADRES寄存器。在A/D转换前必然选择适当的通道,设置足够的采样时间。用户可以通过设置A/D控制寄存器ADCON0ADCON1来控制其转换过程,同时A/D转换的状态也会在ADCON0中体现出来。 先将待转换的电压Vi送到PIC16C711RA0通道做一次A/D转换。根据转换所得的数字量由软件算出Vi8档中位置,用Vi减去Vi所在档的起始电压。将所得差值放大8位,使之变为05V电压信号,再送给PIC16C711RA1通道做1A/D转换,所得数字量是11AD转换的低8位,而档位CBA就是高3位,从而实现11A/D转换。
  举例说明如下:假设输入电压Vi3V,程序控制PIC16C711RA0通道先进行第1A/D转换,所得结果是153,即3/5×255=153,对应8位数字量为10011001。将低5位屏蔽,得10000000,循环右移5次,得00000100,此时低3位对应的就是Vi=3V电压时的档位,即第4档,CBA=100,程序将该档位由RB2RB1RB0输出,作为8选一模拟开关的通道选择,使CD4051输出2.5V,即5/8×4=2.5V。该电压经IC2运放跟随,再经IC3进行差分放大。设计时调整R11R12R13R14的阻值,使放大倍数为8位,则得放大器IC3输出Vo=8Vi-2.5=8(3-2.5)=4.0V。选择RA1通道进行第2A/D转换,结果为11001100,这就是11A/D转换结果的低8位。档位10011A/D转换的高3位,合起来就是11A/D转换的结果10011001100
  用这种方法实现的11A/D转换速度快PIC16C711基本上都是单周期指令,在4MHz振荡频率下指令周期1μs,进行1A/D转换最短时间20μs2A/D转换40μs2个运放变换时间20μs×2=40μs。总的转换时间为百μs级。
由此可看出高PIC16C711片内8A/D提高到11位的方法。此方法电路简单,速度快,调试方便,可提高单片机应用系统的性能价格比,具有一定的推广价值。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|联系我们|ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-10-19 02:43 , Processed in 0.053676 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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