一、ADC简介
ADC模拟-数字转换器
ADC可以将引脚连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁
12位逐次逼近型ADC,1us转换时间
输入电压范围: 0~3.3V,转换结果范围:0~4095
18个输入通道,可测量16个外部和2个内部信号源
规则组和注入组两个转换单元
模拟看门狗自动检测输入电压范围
STM32F2103C8T6 ADC资源:ADC1、ADC2、10个外部输入通道
二、逐次逼近型ADC

逐次逼近型ADC内部结构
ADC0809:是一个独立的8位逐次逼近型ADC芯片,在以前的时候,单片机的性能还不是很强,所以需要外挂一个ADC芯片才能进行AD转换,这个ADC0809就是一款比较经典的ADC芯片,但现在单片机的性能和集成度都有很大的提升,很多单片机内部就已经集成了ADC外设,这样就不用外挂芯片了,引脚可以直接测电压,使用还是非常方便的
结构的分析
首先在最左边这里IN0~IN7,是8路输入通道,通过通道选择开关,选中一路,输入到比较器前面的箭头的位置进行转换
其次下面的这里是地址锁存器和译码:就是你想选择哪个通道,就把通道号放在这三个脚上,然后给一个锁存信号,上面这里对应的通道开关就可以自动拨好了
上面这两个部分就可以看作是一个可以通过模拟信号的数据选择器
因为ADC转换是一个很快的过程,你给一个开始信号,过个us就转换完成了,所以说如果想转换多路信号,那不必设计多个AD转换器,只需要一个AD转换器,然后加一个多路选择开关,想转换哪一路,就先拨一下开关,选中对应通道,然后在开始转换就行了
这就是输入通道选择的部分,这个ADC0809只有8个输入通道,我们STM32内部的ADC是有18个输入通道的,所以对应这里,就是一个18路输入的多路开关,然后输入信号我们选择好了,我们来看下一部分
怎么才能知道这个电压对应的编码数据是多少呢
这个就需要我们用逐次逼近的方法来一一比较了,首先一个电压比较器,它可以判断两个输入信号电压的大小关系,输出一个高低电平指示谁大谁小,它的两个输入端,一个待测的电压,另一个这里DAC的电压输出端,DAC是数模转换器(给他一个数据,他就可以输出数据对应的电压,DAC内部是使用加权电阻网络来实现的转换,想要深入探究看江科大51单片机教程里的DA/AD一节)
现在我们有了一个外部通道输入的未知编码的电压和一个DAC输出的已知编码的电压,它们同时输入到电压比较器,进行大小判断,如果ADC输出的电压比较大,我就调小DAC数据,如果DAC输出的电压比较小,我就增大DAC数据,直到DAC输出的电压和外部通道输入的电压近似相等,这样DAC输入的数据就是外部电压的编码数据,这就是DAC的实现原理。这个电压调节的


3662

被折叠的 条评论
为什么被折叠?



