打印
[资料分享]

单片机内部模拟比较器的应用

[复制链接]
602|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Violin11|  楼主 | 2019-10-19 22:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
单片机内部模拟比较器的应用



一般来说,内部带A/D转换器的单片机价格都比较昂贵,而且一般只有8到10位的分辨率,这在高分辨率要求的场合显然不适用;而普通的单片机则根本没有A/D转换器。随着现代电子技术的发展,出现了一些体积小、内含模拟比较器的单片机,如ATMAL的AT89C2051、ZILOG的Z86E04、MICROCHIP的PIC16C620等,这些单片机在使用时连接比较器的端口一般只作普通I/O使用,而对其内置的模拟比较器的应用却很少。下面以AT89C2051为例,谈谈利用单片机内置模拟比较器来构成A/D转换器的新方法。

1 硬件转换电路
       AT89C2051是MCS51单片机系列中的一种,它虽然只有20个引脚,却集成了51系列单片机的标准内核,其中包括2k程序存储器、128字节数据存储器、2个16位定时计数器、一个标准全双工UART和一个精确的模拟比较器,而这个模拟比较器是以前产品所没有的。图1是利用AT89C2051的模拟比较器来构成双积分式A/D转换器的电路原理图。其中:内置模拟比较器的结构如图中虚线包围部分所示,比较器的正、反相输入端分别与P1.0、P1.1连接,这是两个漏极开路无上拉电阻的输出和输入端口,当向P1.0、P1.1写“1”时,M1、M2截止,相当于P1.0、P1.1对数字部分悬空,这时比较器的输入不受单片机端口输出的影响;由于P1.0、P1.1具有很强的灌电流能力,当写入“0”时,P1.0、P1.1能吸入20mA的灌电流,而且M1、M2的饱和电压很低,利用这一特点可为积分电容彻底放电。比较器输出端在单片机内部与P3.6连接,读P3.6就可得到比较器的输出结果。因此,利用AT89C2051这个内置的比较器,再加上少量的外围器件就可组成双积分式A/D转换器。图1中,I0为恒流源,其电流约为0.5~2mA,Cf是积分电容,Cf与I0的选择取决于A/D转换的位数,Vref为参考电压,一般取模拟输入电压最大值的一半,U2是一个模拟开关,其中通道0接参考电压,通道1至7接模拟输入,即该A/D转换器有7个输入通道。

 


第五步是通过CPU的运算来求得A/D转换的结果,由第二步结果除以第四步结果,可以得到:
Vref/Vx=Tref/Tx

变换后得:
Vx=(VrefTx)/Tref

上式即A/D转换的结果。
从上式可以看出:A/D转换结果Vx只与Vref、Tx、Tref有关而与I0、Cf无关。这一点非常重要。因为它意味着在转换过程中抑制了恒流源和积分电容温漂所造成的误差,从而保证了该A/D转换器工作的稳定性,这也正是积分式A/D转换器的优点。理论上,该A/D转换器的精度只取决于参考电压的稳定性和单片机定时计数器的精确度,而这两点都相对比较容易保证。当然,这是指在恒流源为理想恒流源的情况,实际上恒流源的特性决定了该A/D转换器的非线性误差,因此,在要求较高的场合,应选用线性好的恒流源集成电路,如LM334等,而在要求不高的情况下则可用图3所示的由分立元件组成的恒流源电路来实现A/D转换。这时积分电容可选择温度系数较小的涤纶电容等。



使用特权

评论回复

相关帖子

沙发
airwill| | 2019-10-24 21:36 | 只看该作者
AT89C2051 的模拟比较器很差, 又有端口漏电流的问题。 性能不好。
可以看看现在大量带比较器和运放的 MCU.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

717

主题

1010

帖子

3

粉丝