模拟数字转换器零死角玩转STM32—M3系列淘宝:fire-stm32.taobao.com论坛:参考资料:《零死角玩转STM32》“ADC—电压采集”章节ADC简介02ADC功能框图讲解ADC简介ADC:AnalogtoDigital,模拟数字转换器1-三个独立的ADC1/2/32-分辨率为12位3-每个ADC具有18个通道,其中外部通道16个ADC功能框图讲解1-电压输入范围2-输入通道3-转换顺序4-触发源5-转换时间6-数据寄存器7-中断电压输入范围输入电压:VREF-≤VIN≤VREF+决定输入电压的引脚:VREF-、VREF+、VDDA、VSSAVSSA和VREF-接地,把VREF+和VDDA接3V3,得到ADC的输入电压范围为:0~3.3V。电压输入范围超出0~3.3V的电压怎么测?电压输入范围ADC可以测量:-10V~10V电压输入范围根据基尔霍夫定律(KCL),节点流入的电流等于流出的电流(Vint–Vout)/R2+(3V3-Vout)/R1=Vout/R3Vout=(Vint+10)/6电压输入范围R1/R2/R3的值怎么确定?输入通道每个ADC具有18个通道,其中外部通道16个输入通道每个ADC具有18个通道,其中外部通道16个输入通道分类外部的16个通道在转换的时候又分为规则通道和注入通道,其中规则通道最多有16路,注入通道最多有4路。那这两个通道有什么区别?在什么时候使用?输入通道分类规则通道:顾名思意,规则通道就是很规矩的意思,我们平时一般使用的就是这个通道。注入通道:注入,可以理解为插入,插队的意思,是一种不安分的通道。它是一种在规则通道转换的时候强行插入要转换的一种。这点跟中断程序很像,都是不安分的主。所以,注入通道只有在规则通道存在时才会出现。通道转换顺序通道转换顺序触发源1、软件触发:ADC_CR2:ADON/SWSTART/JSWSTART2、外部事件触发:内部定时器/外部IO选择:ADC_CR2:EXTSEL[2:0]和JEXTSEL[2:0]激活:ADC_CR2:EXTEN和JEXTEN转换时间ADC_CLK:ADC模拟电路时钟,最大值为14M,由PCLK2提供,还可分频,2/4/6/8,RCC_CFGR的ADCPRE[1:0]设置。PCLK2=72M。转换时间:Tconv=采样时间+12.5个周期数字时钟:RCC_APB2ENR,用于访问寄存器转换时间采样时间:ADC需要若干个ADC_CLK周期完成对输入的模拟量迚行采样,采样的周期数可通过ADC采样时间寄存器ADC_SMPR1和ADC_SMPR2中的SMPx[2:0]位设置,ADC_SMPR2控制的是通道0~9,ADC_SMPR1控制的是通道10~17。每个通道可以分别用不同的时间采样。其中采样周期最小是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-电压输入范围为:0~3.3V2-分辨率为12位3-最小精度为:3.3/2^124-设数字量为X,则有模拟量Y=(3.3/2^12)*X怎么根据数据量算出模拟量THANKS零死角玩转STM32—M3系列论坛:淘宝:fire-stm32.taobao.com扫描进入淘宝店铺