目录
模拟量输入通道
A/D转换器简介
模拟量输入信号类型与量程自动转换
量程自动转换
STM32F103ZET6集成的ADC模块
STM32的ADC的主要特征
STM32的ADC模块结构
ADC中断事件主要有以下3个:
模拟量输入通道
模拟量输入通道一般由信号处理、模拟开关、放大器、采样—保持器和A/D转换器组成。 根据需要,信号处理可选择的内容包括小信号放大、信号滤波、信号衰减、阻抗匹配、电平变换、非线性补偿、电流/电压转换等。
A/D转换器简介
在计算机控制系统中,大多采用低、中速的大规模集成A/D转换芯片。 对于低、中速A/D转换器,这类芯片常用的转换方法有计数—比较式、双斜率积分式和逐次逼近式3种。计数比较式器件简单、价格便宜,但转换速度慢,较少采用。双斜率积分式精度高,有时也采用。由于逐次逼近式A/D转换技术能很好地兼顾速度和精度,故它在16位以下的A/D转换器件中得到了广泛的应用。 近几年,又出现了16位以上的∑-ΔA/D转换器、流水线型A/D转换器和闪速型A/D转换器。
模拟量输入信号类型与量程自动转换
模拟量输入信号主要有以下两类: 第一类为传感器输出的信号,如: ⑴ 电压信号:一般为mV信号,如热电偶(TC)的输出或电桥输出。 ⑵ 电阻信号:单位为Ω,如热电阻(RTD)信号,通过电桥转换成mV信号。 ⑶ 电流信号:一般为μA信号,如电流型集成温度传感器AD590的输出信号,通过取样电阻转换成mV信号。
对于以上这些信号往往不能直接送A/D转换,因为信号的幅值太小,需经运算放大器放大后,变换成标准电压信号,如0~5V,1~5V,0~10V,-5V~+5V等,送往A/D转换器进行采样。有些双积分A/D转换器的输入为-200mV~+200mV或-2V~+2V,有些A/D转换器内部带有程控增益放大器(PGA),可直接接受mV信号。 第二类为变送器输出的信号,如: ⑴ 电流信号:0~10mA(0~1.5kΩ负载)或4~20mA(0~500Ω负载)。 ⑵ 电压信号:0~5V或1~5V等。 电流信号可以远传,通过一个标准精密取样电阻就可以变成标准电压信号,送往A/D转换器进行采样,这类信号一般不需要放大处理。
量程自动转换
由于传感器所提供的信号变化范围很宽(从微伏到伏),特别是在多回路检测系统中,当各回路的参数信号不一样时,必须提供各种量程的放大器,才能保证送到计算机的信号一致(如0~5V)。 在模拟系统中,为了放大不同的信号,需要使用不同倍数的放大器。 随着计算机的应用,为了减少硬件设备,已经研制出可编程增益放大器(Programmable Gain Amplifier),简称PGA,其放大倍数可根据需要用程序进行控制。 采用这种放大器,可通过程序调节放大倍数,使A/D转换器满量程信号达到均一化,因而大大提高测量精度。这就是量程自动转换。
STM32F103ZET6集成的ADC模块
STM32F103ZET6 微控制器集成有18路12位高速逐次逼近型模数转换器(ADC),可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。 ADC的输入时钟不得超过14MHz,由PCLK2经分频产生。
STM32的ADC的主要特征
STM32F103的ADC的主要特征如下:
(1)12位分辨率。
(2)转换结束、注入转换结束和发生模拟看门狗事件时产生中断。
(3)单次和连续转换模式。
(4)从通道0到通道n的自动扫描模式。
(5)自校准功能。
(6)带内嵌数据一致性的数据对齐。
(7)采样间隔可以按通道分别编程。
(8)规则转换和注入转换均有外部触发选项。
(9)间断模式。
(10)双重模式(带2个或以上ADC的器件)。
(11)ADC转换时间:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)。
(12)ADC供电要求:2.4~3.6V。
(13)ADC输入范围:VREF-≤VIN≤VREF+。
(14)规则通道转换期间有DMA请求产生。
STM32的ADC模块结构
ADC相关引脚有:
(1)模拟电源VDDA:等效于VDD的模拟电源且2.4V≤VDDA≤VDD(3.6V)。
(2)模拟电源地VSSA:等效于Vss的模拟电源地。
(3)模拟参考正极VREF+:ADC使用的高端/正极参考电压,2.4V≤VREF+≤VDDA。
(4)模拟参考负极VREF-:ADC使用的低端/负极参考电压,VREF-=VSSA。
(5)模拟信号输入端ADCx_IN[15:0]:16个模拟输入通道。
1. ADC通道及分组 STM32F103微控制器的ADC最多有18路模拟输入通道。除了ADC1_IN16与内部温度传感器相连,ADC1_IN17与内部参照电压VREFINT(1.2V)相连,其他的16路通道ADCx_IN0~ADCx_IN15都被连接到STM32F103微控制器对应的I/O引脚上,可以用作模拟信号的输入。 为了更好地进行通道管理和成组转换,借鉴中断中后台程序与前台程序的概念,STM32F103微控制器的ADC根据优先级把所有通道分为两个组:规则通道组和注入通道组。
(1)规则通道组 划分到规则通道组(group of regular channel)中的通道称为规则通道。大多数的情况下,如果仅是一般模拟输入信号的转换,那么将该模拟输入信号的通道设置为规则通道即可。 规则通道组最多可以有16个规则通道,当每个规则通道转换完成后,将转换结果保存到同一个规则通道数据寄存器,同时产生ADC转换结束事件,可以产生对应的中断和DMA请求。 (2)注入通道组 划分到注入通道组(group of injected channel)中的通道称为注入通道。如果需要转换的模拟输入信号的优先级较其他模拟输入信号要高,那么可将该模拟输入信号的通道归入注入通道组中。
注入通道组转换的启动有两种方式:触发注入和自动注入。 (1) 触发注入。 触发注入方式与中断的前后台处理非常相似。中断会打断后台程序的正常运行,转而执行该中断对应的前台中断服务程序,在触发注入方式中,规则通道组可以看成后台的例行程序,而注入通道组可以视作前台的中断服务程序。 (2)自动注入。 在自动注入方式下,注入通道组将在规则通道组后被自动转换。
2. ADC工作过程 ADC通道的转换过程如下:
(1)输入信号经过ADC的输入信号通道ADCx_IN0~ADCx_IN15被送到ADC部件(即图11-2中的模拟至数字转换器)。
(2)ADC部件需要受到触发信号后才开始进行A/D转换,触发信号可以使用软件触发,也可以是EXTI外部触发或定时器触发。规则通道组的硬件触发源有EXTI_11、TIM8_TRGO、TIM1_CH1、TIM1_CH2、TIM1_CH3、TIM2_CH2、TIM3_TRGO和TIM4_CH4等,注入通道组的硬件触发源有EXT1_15、TIM8_CH4、TIM1_TRGO、TIM1_CH4、TIM2_TRGO、TIM2_CHI、TIM3_CH4和TIM4 TRGO等。
(3)ADC部件接收到触发信号后,在ADC时钟ADCCLK的驱动下,对输入通道的信号进行采样、量化和编码。
(4)ADC部件完成转换后,将转换后的12位数值以左对齐或者右对齐的方式保存到一个16位的规则通道数据寄存器或注入通道数据寄存器中,产生ADC转换结束/注入转换结束事件,可触发中断或DMA请求。
3.ADC触发转换 STM32F103微控制器ADC转换可以由外部事件触发(如果设置了ADCCR2寄存器的EXTTRIG控制位),例如定时器捕获、EXTI线等。
(1)ADC1和ADC2 ①1规则通道。 对于ADC1和ADC2的规则通道,外部触发转换事件有以下8个:SWSTART(软件控制位)、TIM1_CC1、TIM1_CC2、TIM1_CC3、TIM2_CC2、TIM3_TRGO、TIM4_CC4、EXTI_11/TIM8_TRGO。 ② 注入通道对于ADC1和ADC2的注入通道,外部触发转换事件有以下8个:JSWSTART(软件控制位)、TIM1_TRGO、TIM1_CC4、TIM2_TRGO、TIM2_CC1、TIM3_CC4、TIM4_TRGO、EXTI_15/TIM8_CC4。
(2)ADC3 ① 规则通道。 对于ADC3的规则通道,外部触发转换事件有以下8个:SWSTART(软件控制位)、TIM3_CC1、TIM2_CC3、TIM1_CC3、TIM8_CC1、TIM8_TRGO、TIM5_CC1和TIM5_CC3。 ② 注入通道对于ADC3的注入通道,外部触发转换事件有以下8个:JSWSTART(软件控制位)、TIM1_TRGO、TIM1_CC3、TIM8_CC2、TIM8_CC4、TIM5_TRGO和TIM5_CC4。
4. ADC中断
ADC在每个通道转换完成后,可产生对应的中断请求。对于规则通道,如果ADCCR1寄存器的EOCIE位置1,则会产生EOC中断;对于注入通道,如果ADC_CR1寄存器的JEOCIE位置1,则会产生EOC中断。而且,当ADC1和ADC3的规则通道转换完成后,可产生DMA请求。 ADC在每个通道转换完成后,如果总中断和ADC中断未被屏蔽,则可产生中断请求,跳转到对应的ADC中断服务程序中执行。其中,ADC1和ADC2的中断映射在同一个中断向量上,而ADC3的中断有自己的中断向量。
ADC中断事件主要有以下3个:
(1)ADC_IT_EOC,EOC(End Of Conversion)中断、即规则组转换结束中断,针对规则通道。
(2)ADC_IT_JEOC,JEOC(End Of inJected Conversion)中断,即注入组转换结束中断,针对注入通道。
(3)ADC_IT_AWD:AWDOG(Analog WatchDOG)中断,即模拟看门狗中断。
5.DMA请求 并非所有ADC的规则通道转换结束后都能产生DMA请求,只有当ADC1和ADC3的规则通道转换完成后,可产生DMA请求,并将转换的数据从数据寄存器ADC_DR传送到用户指定的目标地址。