1、模拟数字转换器零死角玩转STM32M3系列淘宝:fire-论坛: www.fireBBS.cn扫描进入淘宝店铺主讲内容参考资料:零死角玩转STM32“ADC电压采集”章节ADC简介ADC功能框图讲解ADC简介ADC:Analog to Digital,模拟数字转换器p 1-三个独立的ADC 1 / 2 / 3p 2-分辨率为12位p 3-每个ADC具有18个通道,其中外部通道16个ADC功能框图讲解1-电压输入范围2-输入通道3-转换顺序4-触发源5-转换时间6-数据寄存器7-中断电压输入范围输入电压:VREF- VIN VREF+决定输入电压的引脚:VREF-、 VREF+ 、 VDDA 、
2、 VSSAVSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到ADC 的输入电压范围为: 03.3V。电压输入范围超出03.3V的电压怎么测?电压输入范围ADC可以测量:-10V10V 电压输入范围根据基尔霍夫定律(KCL),节点流入的电流等于流出的电流(Vint Vout)/R2 + (3V3-Vout)/R1 = Vout / R3Vout = (Vint + 10) /6 电压输入范围R1 / R2 / R3 的值怎么确定?输入通道每个ADC具有18个通道,其中外部通道16个输入通道每个ADC具有18个通道,其中外部通道16个输入通道分类外部的 16 个通道在转换的
3、时候又分为规则通道和注入通道,其中规则通道最多有 16路,注入通道最多有 4 路。那这两个通道有什么区别?在什么时候使用?输入通道分类规则通道:顾名思意,规则通道就是很规矩的意思,我们平时一般使用的就是这个通道。注入通道:注入,可以理解为插入,插队的意思,是一种不安分的通道。它是一种在规则通道转换的时候强行插入要转换的一种。这点跟中断程序很像,都是不安分的主。所以,注入通道只有在规则通道存在时才会出现。通道转换顺序通道转换顺序触发源1、软件触发:ADC_CR2 :ADON/SWSTART/JSWSTART2、外部事件触发:内部定时器/外部IO选择:ADC_CR2 :EXTSEL2:0和 JEX
4、TSEL2:0激活:ADC_CR2 :EXTEN 和 JEXTEN转换时间ADC_CLK:ADC模拟电路时钟,最大值为14M,由PCLK2提供,还可分频,2/4/6/8,RCC_CFGR 的 ADCPRE1:0设置。PCLK2=72M。转换时间:Tconv = 采样时间 + 12.5 个周期数字时钟:RCC_APB2ENR,用于访问寄存器转换时间采样时间:ADC 需要若干个 ADC_CLK 周期完成对输入的模拟量进行采样,采样的周期数可通过ADC 采样时间寄存器 ADC_SMPR1 和 ADC_SMPR2 中的 SMPx2:0位设置, ADC_SMPR2控制的是通道 09, ADC_SMPR1
5、 控制的是通道 1017。每个通道可以分别用不同的时间采样。其中采样周期最小是 1.5 个,即如果我们要达到最快的采样,那么应该设置采样周期为 31.5个周期,这里说的周期就是 1/ADC_CLK。转换时间最短的转换时间:Tconv = 采样时间 + 12.5 个周期PCLK2 = 72M,ADC_CLK = 72/6 = 12MTconv = 1.5+12.4 = 14周期 = 14/12us=1.17us数据寄存器一切准备就绪后, ADC 转换后的数据根据转换组的不同,规则组的数据放在ADC_DR 寄存器,注入组的数据放在 JDRx。数据寄存器1-16位有效,用于存放独立模式转换完成数据2- ADC_CR2 :ALIGN3-只有一个,多通道采集的是最好使用DMA数据寄存器1-16位有效,用于存放注入通道转换完成数据2- ADC_CR2 :ALIGN3-有4个这样的寄存器中断1-ADC_SR,ADC_CR12- ADC_HTR,ADC_LTR电压转换1-电压输入范围为:03.3V2-分辨率为12位3-最小精度为:3.3/2124-设数字量为X,则有模拟量 Y = (3.3 / 212)*X怎么根据数据量算出模拟量THANKS零死角玩转STM32M3系列论坛: www.fireBBS.cn淘宝:fire-扫描进入淘宝店铺