STM32中ADC模数转换器

一、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的实现原理。这个电压调节的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值