不带基准电压的单片机在外部电源不稳定的情况下如何保证ADC采集精度!

  • SingleYork
  • LV5工程师
  • |      2015-10-20 10:54:26
  • 浏览量 2008
  • 回复:9

问题的提出:

        本屌在做项目的时候遇到这么一个问题,我需要四个同样的控制板,对同一产品某一0-5V的模拟电压,由于我使用的单片机是STC12C5A60S2不带基准电压引脚,所以当初在引脚上只是按照芯片手册上的电路进行了简单的ADC采集,但是问题来了:我用的LM2576-5.0V的输出电压并不全是5V,有些是4.88V,有些是4.92V,有些是5.08V,等等,各种电压都有,一开始以为LM2576-5.0V的稳压管有问题,经查PDF资料,才发现,这款稳压管本身输出的电压就有误差,而我得到的电压也在误差范围内,这就让我很郁闷了,控制板已经做出来了,如果要改就硬件或者换MCU也不是那么简单的,但是不改的话,不同控制板由于稳压管输出的电压不一样,会导致采集到的同一模拟电压会不一直,无奈之下,值得请求帮助!幸运的是,在论坛的QQ群里找到了一位高手“Firefly+奔跑小蜗”帮我指点了一下,总算是找到了一种成本比较小的解决方法,万分感谢!

        下面就由本屌来详细介绍一下这种方法吧!

详细介绍:

        首先,我手上的两块控制板LM2576-5V的输出电压如下图所示:


 


        由于我使用的单片机没有额外的基准电压引脚,所有ADC的电压即为电源电压。


        


        但是这样问题就来了,由于电源电压不一样,就会导致采集同一模拟电压时,不同的控制板采集到的数据不一致!比如同样的采集4.63V的模拟电压,会出现下面两种结果:



        左边是稳压管5V时,采集到的电压4.63V,右边是稳压管为5.08V时采集到的电压4.56V。

        当时我的临时解决方法就是不同的控制板,用程序去校准,先用万用表量的LM2576输出的实际电压,然后用实际电压跟5V电压做一个比例系数,在AD采集的时候,乘上这个系数,那么问题得到了解决!

         乍一看确实问题解决了,但是如果以后控制板坏了需要重新换板呢?那岂不是又的量下板上的电压?这或许还能接受,但是要命的是,这款控制板有两三百片,如果程序都要调整的话,岂不是得弄好多套程序,而且到时候到底用那一套程序?确实还是个比较伤脑筋的事情!那么有没有只需要用到一套程序的办法呢?答案当然是肯定的!

        首先蜗牛大哥告诉我用了这么一个电路:



        从这个电路上我们可以看到,采集电压的范围变大了,从原来的0-5V变成了0-6V,我们可以通过调节可调电阻来实现准确的采集0-5V模拟电压!当然,在开始采集之前需要硬件校准!

        首先是软件校准,将采集到的电压从0-5V,放大到0-6V,如下图所示:


        接下来是硬件校准-即将软件放大后的电压校准回0-5V,原理是这样的:将上面电路图中的ADC_IN0接至标准的5V电压,然后调节可调电阻,使得AD采集到的电压显示为5V:



        本例中我用的是串口输出采集到的电压值,以便于调节:


                                            


        这样一来,校准就完成了,在后续控制板中,就只需要进行硬件校准就好了,而且这种硬件校准也比较简单!

        校准完成之后,那么我们就该来实际采样验证了!下面我们用了一个0-5V可调的电源模块来做模拟电压输出,将电压调制4.63V,如下图所示:


                                


        然后,我们将之前电路中的ADC_IN0、ADC_IN1连到4.63V电压输出端,打开串口,我们将看到如下数据:

                                


        实时证明,两路AD采集到的模拟电压都是4.63V,与实际的电压相符!实验目的到达!


        或许我讲的不是很详细,有些地方也可能分析的不对,但是最终还是得到了想要的结果了,而且这种方法确实也比较省成本,实现起来也比较简单,或许大家还有更好的方法,也欢迎大家一起来讨论!


 

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:9
SingleYork 2016-04-01
这也确实是一个好办法,我之前的设备因为硬件改不了,就是这么做的……
0   回复
举报
发布
xuyaqi 2016-02-15
实际硬件不动,通过软件修改标定系数也可达到各板测量一致问题。
0   回复
举报
发布
beifanggd 2015-11-19
实训经验,值得借鉴。谢谢分享。
0   回复
举报
发布
SingleYork 2015-10-21
感谢您的提议,我把最初的电路加上去了……由于时间关系,暂未做详细分析……
0   回复
举报
发布
suoma 2015-10-20
谢谢分享学习一下
0   回复
举报
发布
laoyaomao 2015-10-20
为什么不讲讲,加电路前的电路和加电路后的电路所采集的电压做个对比呢?
0   回复
举报
发布
东方青 2015-10-20
给力!挺起!
0   回复
举报
发布
SingleYork 2015-10-20
感谢指导……
0   回复
举报
发布
奔跑小蜗牛 2015-10-20
顶!!多谢分享经验出来!小伙子加油。
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子