原创
ADuc7026学习-ADC(1)
2015-1-12 17:38
750
10
10
分类:
消费电子
ADuc7026学习-ADC
进度有点慢,手工做的东西不是很靠谱,不懂是不是JTAG接口电路的问题,有时候你随便插拔都用的好好的,可是有时候你动一下就下不了程序了,keil不是提示算法加载不成功就是提示TDO一直为高,可是有时候你放一晚或者插拔一下又能下了。郁闷...
好了,题外话不扯那么多,开撸.....
开撸之前咱来预热下,首先比较器,上图
比较比较顾名思义就是起到比较的作用。当比较器的同相端电压高于反相端电压时,输出端输出高电平,反之,当同相端电压低于反相端电压时,输出端输出低电平。这里我们先记住比较器的这个特性。
接着是DAC,上图
DAC又叫数模转化器,它能把数字信号转换成模拟信号。比如上图我们看到的是一个八位的DAC,这里假设它是电压型DAC,参考电压Vref = 5V,那么当我们从数据口D0~D7输入0-255之间的某个数字时,输出端输出相应的模拟电压Vo(0~5V)。比如通过D0~D7输入数字量0x00时,输出端电压Vo为0V,输入数字量为0xff时...输出端电压为5V。
好,基于以上的基础,现在要求我们用一个比较器、一个DAC和单片机实现测量一个外部电压,这个外部电压在0~5V范围内。那么我们可以这样做,上图
在上面的这个电路图中,DAC的参考电压为Vref= 5V,然后DAC为电压输出型DAC,它的输出端和比较器的反相端接在了一起,然后外部电压Vx从同相端输入,单片机通过给DAC输入不同的数字量控制DAC输出0~5V之间的模拟电压,同时通过引脚a检测比较器输出电压。那么要想测出外部电压Vx,我们可以这样编程实现:(假如Vx等于2V)
单片机先给DAC输入数字量0x00,控制DAC输出0V的模拟电压,然后单片机判断引脚a是否变为低电平,如果是高电平,加大输给DAC的数字量,每次加一,数字量依次为0x01、0x02、0x03...相应的DAC输出的模拟电压依次为20mv、40mv...只要引脚a电平为高,就一直加,直到引脚a变为低电平。当引脚a变为a电平的时候,因为我们的Vo是以20mv的电压为增量慢慢的接近Vx的,所以此时的反相端电压我们可以认为Vo=Vx,这样我们就测出了这外部电压Vx。
从上面可以看出比较器+DAC+其他器件 就可以做成一个ADC,ADC的精度由DAC决定,这种ADC我们叫逐次逼近型ADC。
PS:ADC又叫模数转换器,他能把模拟型号转换成数字信号。八位的ADC,参考电压 Vref = 5V的时候,是把5V电压分成了28 = 256份,一份为5/256mv约等于20mv(这个5/256我们通常叫最小分辨率),然后0~20mv范围内的模拟电压用数字量0x00表示,20~40mv范围内的模拟电压用0x01表示,以此类推......
文章评论(0条评论)
登录后参与讨论