第十一章ADC的一般应用1ADC介绍.docx

上传人:夺命阿水 文档编号:564055 上传时间:2023-08-27 格式:DOCX 页数:50 大小:566.86KB
返回 下载 相关 举报
第十一章ADC的一般应用1ADC介绍.docx_第1页
第1页 / 共50页
第十一章ADC的一般应用1ADC介绍.docx_第2页
第2页 / 共50页
第十一章ADC的一般应用1ADC介绍.docx_第3页
第3页 / 共50页
第十一章ADC的一般应用1ADC介绍.docx_第4页
第4页 / 共50页
第十一章ADC的一般应用1ADC介绍.docx_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第十一章ADC的一般应用1ADC介绍.docx》由会员分享,可在线阅读,更多相关《第十一章ADC的一般应用1ADC介绍.docx(50页珍藏版)》请在课桌文档上搜索。

1、第十一章ADC的一般应用11.1 ADC介绍STM32Fl0x系列芯片上带有的模数转换器为12位,该ADC是一种逐次逼近型模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值值。11.1.1 ADC主要特征1 .12-位分辨率2 .转换结束,注入转换结束和发生模拟看门狗事件时产生中断3 .单次和连续转换模式4 .从通道0到通道n的自动扫描模式5 .自校准6 .带内嵌数据一致的数据对齐7 .通道之间采样间

2、隔可编程8 .规则转换和注入转换均有外部触发选项9 .间断模式10 .双重模式(带2个或以上.ADC的器件)11 .ADC转换时间:STM32F103xx增强型产品:ADC时钟为56MHZ时为1s(ADC时钟为72MHZ为1.17s)STM32FIC)IXX基本型产品:ADC时钟为28MHZ时为1s(ADC时钟为36MHZ为1.55s)STM32F102xxUSB型产品:ADC时钟为48MHZ时为1.2s12 .ADC供电要求:2.4V到3.6V13 .ADC输入范围:VREF-VINVREF+14 .规则通道转换期间有DMA请求产生。11.1.2ADC功能描述ADC模块的框图,参考数据手册。

3、表1L1-1为ADC管脚的说明。表11-1-1ADC管脚名称信号类型注解Vref+输入,模拟参考正极ADC使用的高端/正极参考电压,2.4VVref+VddaVdda输入,模拟电源等效于VDD的模拟电源且:2.4VVddaVdd(3.6V)Vref-输入,模拟参考负极ADC使用的低端/负极参考电压,VREF=VSSAVssa输入,模拟电源地等效于VSS的模拟电源地ADC_IN15:0模拟输入信号16个模拟输入通道1 .ADC开关控制通过设置ADC-CRl寄存器的ADON位可给ADC上电。当第一次设置ADON位时,它将ADC从断电状态下唤醒。通过调用库函数ADC_Cmd(ADCl,ENABLE)

4、;可以实现将ADoN位置位。ADC上电延迟一段时间后(tSTAB),再次设置ADON位时开始进行转换。通过清除ADON位可以停止转换,并将ADC置于断电模式。在这个模式中,ADC几乎不耗电(仅几个A)o2 .ADC时钟由时钟控制器提供的ADCCLK时钟与PCLK2(APB2时钟洞步。RCC控制器为ADC时钟提供一个专用的可编程预分频器,详见复位和时钟控制(RCC)章节。3 .通道选择有16个多路通道。可以把转换分成两组:规则的和注入的。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15o规则组由多

5、达16个转换组成。规则通道和它们的转换顺序在ADC_SQRx寄存器中选择。规则组中转换的总数写入ADC_SQR1寄存器的L3:0位中。注入组由多达4个转换组成。注入通道和它们的转换顺序在ADCSQR寄存器中选择。注入组里的转换总数目必须写入ADCSQR寄存器的Ll:0位中。如果ADC_SQRx或ADCSQR寄存器在转换期间被更改,当前的转换被清除,一个新的启动脉冲将发送到ADC以转换新选择的组。温度传感器/VREFINT内部通道。温度传感器和通道ADCxN16相连接,内部参照电压VREFINT和ADCxN17相连接。可以按注入或规则通道对这两个内部通道进行转换。注意:传感器和只能出现在主A0C

6、7中。4,单次转换模式单次转换模式下,ADC只执行一次转换。该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为Oo一旦选择通道的转换完成:1如果一个规则通道被转换:转换数据被储存在16位ADC_DR寄存器中:EoC(转换结束)标志被设置;如果设置了EC)CIE,则产生中断。2如果一个注入通道被转换:转换数据被储存在16位的ADC_DRJ1寄存器中;JEoC(注入转换结束)标志被设置然后ADC停止。5,连续转换模式在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设

7、置ADJCR2寄存器上的ADON位启动,此时CONT位是1。每个转换后:1如果个规则通道被转换:转换数据被储存在16位的ADCDR寄存器中;EoC(转换结束)标志被设置;如果设置了EoCIE,则产生中断。2如果一个注入通道被转换:转换数据被储存在16位的ADC_DRJ1寄存器中;JEoC(注入转换结束)标志被设置;如果设置了JEe)CIE位,则产生中断。6.时序图如图Il-I-I所示,ADC在开始精确转换前需要一个稳定时间tSTAB。在开始ADC转换和14个时钟周期后,EoC标志被设置,16位ADC数据寄存器包含转换的结果。7.扫描模式此模式用来扫描一组模拟通道。扫描模式可通过设置ADC-CR

8、l寄存器的SCAN位来选择。一旦这个位被设置,ADC扫描所有被ADcLSQRX寄存器(对规则通道)或ADCJSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。如果设置了CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。如果设置DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。而注入通道转换的数据总是存储在ADCJDRx寄存器中。8,注入通道管理1触发注入清除ADCJ2R1寄存器的JAUTo位,并且设置SCAN位,即可使用触发注入功能。利用外部触发或通过设置ADC

9、_CR2寄存器的ADON位,启动一组规则通道的转换。如果在规则通道转换期间产生一外部注入触发,当前转换被复位,注入通道序列被以单次扫描方式进行转换。然后,恢复上次被中断的规则组通道转换。如果在注入转换期间产生一规则事件,注入转换不会被中断,但是规则序列将在注入序列结束后被执行。注:当使用触发的注入转换时,必须保证触发事件的间隔长于注入序列。例如:序列长度为28个4。C时钟周期伊个具有7.5个时钟间隔采样时间的转换力触发之间最小的间隔必须是29个C时钟周期。2自动注入如果设置了JAUTO位,在规则组通道之后,注入组通道被自动转换。这可以用来转换在ADC_SQRx和ADCJSQR寄存器中设置的多至

10、20个转换序列。在此模式里,必须禁止注入通道的外部触发。如果除JAUTO位外还设置了CoNT位,规则通道至注入通道的转换序列被连续执行。对于ADC时钟预分频系数为4至8时,当从规则转换切换到注入序列或从注入转换切换到规则序列时,会自动插入1个ADC时钟间隔;当ADC时钟预分频系数为2时,则有2个ADC时钟间隔的延迟。延时时序见图11-1-2。注意:不可能同时使用自动注入和间断模式。ADC clocklnj. eventReset ADCSOC图注入转换延时时序ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在校准期间,每个电容器上都会计算出一个误差修正码(数字

11、值),这个码用于消除在随后的转换中每个电容器上产生的误差。通过设置ADC_CR2寄存器的CAL位启动校准。一旦校准结束,CAL位被硬件复位,可以开始正常转换。建议在上电时执行一次ADC校准。校准阶段结束后,校准码储存在ADC_DR中。图U-I-3为ADC校准时序图。注意:1建议在每次上电后执行校准。2启动校准前,ADC必须处于关电状态依DOiO)超过至少两个ADCH寸钟周期。ConversionADC.CR2寄存器中的ALIGN位选择转换后数据储存的对齐方式。数据可以左对齐或右对齐,如图11-1-4和图11-1-5所示。注入组通道转换的数据值已经减去了在Adcljofrx寄存器中定义的偏移量,

12、因此结果可以是一个负值。SEXT位是扩展的符号值。对于规则组通道,不需减去偏移值,因此只有12个位有效。1)数据右对齐注入组SEXTSEXTSEXTSEXTDllDlOD9D8D7D6D5D4D3D2DlDO规则组0000DllDlOD9D8D7D6D5D4D3D2DlDO图11-1-42数据左对齐注入组SEXTDllDlOD9D8D7D6D5D4D3D2DlDO000规则组DllDlO1)91)8D7D6D5D4D3D2DlDO0000图11-1-511.1.5 可编程的通道采样时间ADC使用若干个ADC.CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC.SMPR2寄

13、存器中的SMP29位而更改。每个通道可以以不同的时间采样。总转换时间如下计算:TCONV=采样时间+12.5个周期例如:当adcclk=14mhz和1.5周期的采样时间TCoNV=I.5+12.5=14周期=ls11.1.6 外部触发转换转换可以由外部事件触发(例如定时器捕获,EXTI线)。表U-I-2、表11-1-3、表11-14表11-1-5描叙了不同通道外部触发的EXTSEL位设定值。如果设置了EXTTRIG控制位,则外部事件就能够触发转换。EXTSEU2:0和JEXTSEL2:0控制位允许应用程序选择8个可能的事件中的某一个可以触发规则和注入组的采样。注意:当外部触发信号被选为ADC规

14、则或注入转换时,只有它的上升沿可以启动转换。表Il-I-2ADCI和ADC2用于规则通道的外部触发触发源类型EXTSEL2:0定时器1的CCl输出片上定时器的内部信号000定时器1的CC2输出001定时器1的CC3输出010定时器2的CC2输出011定时器3的TRGo输出100定时器4的CC4输出101EXTI线11外部管脚110SWSTART软件控制位111注:TDl8RG0事件只存在于大容量产品对于规则通道,选中EXTT线路11和TTM8_TRG0作为外部触发事件,可以通过设置ADCl和ADC2的ADC1_ETRGREG_REMAP位和ADC2_ETRGREG_REMAP位实现。表11-1

15、-3ADCl和ADC2用于注入通道的外部触发触发源类型JEXTSEL2:0定时器1的TRGO输出片上定时器的内部信号000定时器1的CC4输出001定时器2的TRGo输出010定时器2的CCl输出011定时器3的CC4输出100定时器4的TRGo输出101EXTl线15外部管脚110SWSTART软件控制位111注:TlM8_CC4事件只存在于大容量产品对于规则通道,选中EXTl线路15和TIM8JDC4作为外部触发事件,可以通过设置ADCI和ADC2的ADC1_ENTRGINJ_REMAP位和ADC2_ENTRGINJ_REMAP位实现。11-1-4ADC3用于规则通道的外部触发触发源类型E

16、XTSEL2:0定时器3的CCl输出片上定时器的内部信号外部管脚000定时器2的CC3输出001定时器1的CC3输出010定时器8的CCl输出011定时器8的TRGo输出100定时器5的CCl输出101定时器5的CC3输出110SWSTART软件控制位111表111-5ADC3用于注入通道的外部触发触发源类型EXTSEL2:0定时器1的TRGo输出片上定时器的内部信号000定时器1的CC4输出外部管脚001定时器4的CC3输出010定时器8的CC2输出011定时器8的CC4输出100定时器5的TRGo输出101定时器5的CC4输出110SWSTART软件控制位111软件触发事件可以通过对寄存器

17、ADC_CR2的SWSTART或JSWSTART位置1产生。规则组的转换可以被注入触发打断。11.1.7 DMA请求因为规则通道转换的值储存在一个唯一的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。只有在规则通道的转换结束时才产生DMA请求,并将转换的数据从ADC_DR寄存器传输到用户指定的目的地址。注:只有ADC7和4DC3拥有。/VM功能。由4DC2转化的数据可以通过双ADC模式,JfflADC1的DMA性能来实现。11.1.8 双ADC模式在有2个或以上ADC的器件中,可以使用双ADC模式。在双ADC模式里,根据ADCLCRl寄

18、存器中DUALMOD2:0位所选的模式,转换的启动可以是ADCl主和ADC2从的交替触发或同时触发。注意:在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。但是,主和从ADC的外部触发必须同时被激活。共有6种可能的模式:1同时注入模式2同时规则模式3快速交替模式4慢速交替模式5交替触发模式6独立模式还有可以用下列方式组合使用上面的模式:1同时注入模式+同时规则模式2同时规则模式+交替触发模式3同时注入模式+交替模式注意:在双4。C模式里,为了从主数据寄存器上读取从转换数据,DZVW位必须被使能,即使并不用它来

19、传输规则通道数据。11.1.9温度传感器温度传感器可以用来测量器件周围的温度(TA)O温度传感器在内部和ADCxNl6输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是17.1s图11-1-6是温度传感器的方框图。当没有被使用时,传感器可以置于关电模式。注意:必须设置了SM?EFE位激活内部通道:ADCxN16函度传感器)和ADCxN17(VREFN丁)的转换。1 .主要特征支持的温度范围:-40至25度精确度:+/-1.5。C温度传感器和VFlEFM通道框图INTERNALPOWERBLOCKTSVREFE ntrol bitTEMPERATURE SEN

20、SORADCx.IN16ADC1ADCx.IN17nverted data图117-6温度传感器框架图2 .读温度为使用传感器:1选择ADCxN16输入通道2选择采样时间大于2.2s3设置ADC控制寄存器2(ADC_CR2)的TSVREFE位,以唤醒关电模式下的温度传感器4通过设置ADON位启动ADC转换(或用外部触发)5读ADC数据寄存器上的VSENSE数据结果6利用下列公式得出温度温度(C)=(25-Vsense)/Avg_Slope+25这里:V25=Vsense在25。C时的数值Avg_Slope=温度与VSENSE曲线的平均斜率(单位为mV/。C或V)参考电气特性章节中V25和Avg

21、_Slope的实际值。注意:传感器从关电模式唤醒后到可以输出正确水平的Msense前,有一个建立时间C49C在上电后也有一个建立时间,为了缩短延时,应该同时设置400和丁S”?EFE位。11.1.10ADC中断规则和注入组转换结束时能产生中断,当模拟看门狗状态位被设置时也能产生中断。它们都有独立的中断使能位。表为ADC中断表注:ADCl和ADC2的中断映射在同一个中断向量上,而ADC3的中断有自己的中断向量。ADC_SR寄存器中有2个其他标志,但是它们没有相关联的中断:JSTRT(注入组通道转换的启动)STRT(规则组通道转换的启动)表11-1-6ADC中断中断事件事件标志使能控制位规则组转换

22、结束EOCEOCIE注入组转换结束JEOCJEOCIE设置模拟看门狗状态位AWDAWDIE11.2实现ADC最佳精度11.2.1 ADC模块自身相关的误差在STM32F10xxx的数据手册中,给出了不同类型的ADC精度误差数值。通常,精度误差是以LSB为单位表示。电压的分辨率与参考电压相关。电压误差是按照LSB的倍数计算:1LSB=VREF+/212或VDDA/212。1 .偏移误差这是定义为从第一次实际的转换至第一次理想的转换之间的偏差。当ADC模块的数字输出从0变为1的时刻,发生了第一次转换。理想情况下,当模拟输入信号介于0.5LSB至1.5LSB表达的范围之内时,数字输出应该为1;即理想

23、情况下,第一次转换应该发生在输入信号为0.5LSB时。偏移误差以EO标注。例子说明对于STM32FIOXXX的ADC模块,最小的可检测到的电压增量变化,按LSB表示为:1LSB=VREF+/4096域对于没有VREf+管脚的产品:Vdda/4096)如果VREF+=3.3V,理想情况下输入402.8VO5LSB=0.5x8056VM,产生数字输出1。然而实际上,这时ADC模块的读数可能仍然为0。如果在输入电压达到550V时,才能得到数字输出1,则:偏移误差Eo=实际的转换-理想的转换Eo=550V-402.8V=141.2VEo=141.2V/805.6V=0.17LSB当输入的模拟电压大于0

24、.5LSB产生第一次的转换,则偏移误差是正值。图11-2-1显示了正的偏移误差:数字输出理想的转换曲线0.5LSB实际的转换曲线vAlNai15475当输入的模拟电压小于05LSB产生第一次的转换,则偏移误差是负值。下图显示了负的偏移误差。如果输入的模拟电压VAlN=VSSA并且ADC产生了一个非0的数字输出,则偏移误差是负值,即一个负电压产生了第一次的转换。2 .增益误差增益误差定义为最后一次实际转换与最后一次理想转换之间的偏差。增益误差以EG标注。最后一次实际转换是从FFEh至FFFh的变换。理想情况下,当模拟输入电压等于VREF-0.5LSB时产生从FFEh至FFFh的变换,因此对于VR

25、EF+=3.3V的情况,最后一次理想转换应该在3.299597V。如果ADC数字输出为FFFh时,VAlNVVREF+-0.5LSB,则增益误差为负值。例子说明增益误差EG=最后一次实际转换-最后一次理想转换如果VREF+=3.3V并且VAlN=3.298435V时产生了从FFEh至FFFh的变换,则:Eg=3.298435V-3.299597VEG=-1162VEg=(-1162V/805.6V)LSB=-1.44LSB如果在VAlN等于Vref+时不能得到满量程的读数(FFFh)时,增益误差是正值,即需要一个大于VREf+的电压才能产生最后一次变换。3 .微分线性误差微分线性误差(DLE)

26、定义为实际步长与理想步长之间的最大差别。这里的“理想”不是表示理想的转换曲线,而是表示ADC的分辨率。Ed=实际转换步长-ILSB理想情况下,当模拟输入电压改变ILSB应该在数字输出上同时产生一次改变。如果数字输出上的改变需要输入电压大于ILSB的改变,则ADC具有微分线性误差。因此,DLE对应于需要改变一个数字输出所需的最大电压增量。例子说明一个给定的数字输出,应该对应到一个模拟输入的范围。理想情况下,步长应为ILSB。假定在模拟输入电压在1.9998V至2.0014V,得到了相同的数字输出,则步长宽度是2.0014V-1.9998V=1.6mV,此时ED是高端(2.0014V)与低端(L9

27、998V)的差减去ILSB对应的电压。如果VREF+=3.3V,模拟输入1.9998V(9Blh)可以产生的输出结果介于9B0h和9B2h之间;同样,模拟输入2.00I4V(9B3h)可以产生的输出结果介于9B2h和9B4h之间。这样对应9B2h的综合电压变化范围是:9B3h-9B1h,即:2.0014V-1.9998V=1.6mV(1660V)Ed=1660V-805.6VEd=854.4VEd=(854.4V805.6V)LSBEd=1.06LSB这里我们假定高于2.0014V的电压都不能得到9B2h的数字输出结果。当步长宽度小于ILSB,误差ED是负值。4 .积分线性误差积分线性误差(I

28、LE)是所有实际转换点与终点连线之间的最大差别。ILE以EL标注。终点连线可以理解为在A/D转换曲线上,第一个实际转换与最后一个实际转换之间的连线;EL是每一个转换与这条线之间的偏差。因此,终点连线对应于实际转换曲线,而与理想转换曲线无关。ILE也被称为积分非线性误差(INL),ILE是DLE在所有范围内的积分。例子说明如果第一次转换(从0至1)发生在550V,而最后一次转换(从FFEh至FFFh)发生在3.298435V(增益误差),则在转换曲线上,实际数字输出Ih至FFFh之间的连线就是终点连线。5 .总未调整误差总未调整误差(TUE)定义为实际转换曲线和理想转换曲线之间的最大偏差。这个参

29、数表示所有可能发生的误差,导致理想数字输出与实际数字输出之间的最大偏差。这是在对ADC的任何输入电压,在理想数值与实际数值之间所记录到的最大偏差。TUE不是EO、EG、EL、ED之和,偏移误差反映了数字结果在低电压端的误差,而增益误差反映了数字结果在高电压端的误差。例子说明如果VREF+=3.3V并且VAlN=2V,理想的结果是9B2h;但在转换中,得到了9B4h,这个偏差可能是DLE和ILE同时作用的结果:11.2.2与环境相关的ADC误差1 .电源噪声模拟电源引脚是用于为转换提供参考电压,因为ADC输出是模拟信号电压和模拟参考电压之间的比例数值,因此任何模拟参考电源上的噪声都会使转换的数值

30、产生变化。例如:模拟参考电压为3.3V,输入信号为IV,则转换的结果是:(1/3.3)X4095=4D9h如果在供电电源上有一个峰-峰为40mV的纹波,则当VREF+处于尖峰时,转换的结果变为:(1/3.34)X4095=4CAh通常开关式电源(SMPS)具有内部的快速开关功率晶体管,这会在输出上产生高频噪声,开关噪声的范围介于15kHz至IMHZ之间。2 .电源稳压ADC转换结果是模拟输入信号与VREF+数值的比率,电源稳压对于ADC的精度是非常重要的。如果电源输出,在连接到VDDA或VREF+时,因为负载和它自身输出阻抗的原因而下降,则在转换结果上将产生误差:niitI_VAlN(2)这里

31、n是ADC的分辨率(STM32中n = 12)DlgltaIOUtPut-VRFF如果参考电压变化了,数字输出会跟着变化。例如:如果参考电压为3.3V,并且VAlN=IV,则数字输出为:12Digitaloutput=1*3=4D9h如果提供的电压连接到Vref+后改变到3.292V,则数字输出变为:12DigitaI。UtPUt=2F=4DCh由电压下降引入的误差为:4DCh-4D9h=3LSB3 .模拟输入信号的噪声在采样时间里,小的但是高频的信号变化可以导致大的转换误差。这样的噪声是由诸如电机、引擎点火、电力线等电子设备产生,并且在源信号(如传感器)上叠加了一个多余的噪声信号;因此,AD

32、C转换的精度受到了影响。4 .ADC的动态范围与最大输入信号幅度严重不匹配ADC的动态范围与最大输入信号的幅度相匹配,对于得到最大的ADC转换精度是非常重要的。假定要转换的信号在OV至2.5V之间变化,而VREF+等于3.3V,则最大信号的ADC转换数值是3102(2.5V),如图11-2-2所示。这样,就有993个未使用的转换数值(4095-3102=993),即丢失了转换信号的精度。如何使ADC的动态范围与最大输入信号的幅度相匹配,请参见图11-2-10将最大的信号幅度与ADC动态范围匹配。VVref+=3,3V.(4095h)未使用的ADC转换范围2.5V.(3102h)tai15499

33、图11-2-25 .模拟信号源阻抗的影响因为ADC的引脚需要有电流流入,在信号源与ADC引脚之间的模拟信号源的阻抗或称串行电阻(RAIN),将产生一个电压降。阻容网络中的RADC和CADC上,对电容的充电由RADC控制。随着源电阻(RADC)的增加,对保持电容的充电时间也相应增加。图11-2-3显示了模拟信号源电阻的影响。对CADC有效的充电由RADC+RAIN控制,因此充电时间常数是IC=(RADC+RAIN)xCADCo如果采样时间小于CADC通过RADC+RAIN(tsIC)充电的时间,则ADC转换得到的数值会小于实际数值。注:tc是电容CADC完全充电的时间:VC=VAINVc:电容C

34、ADC上的电压tc=(Radc+Rain)XCadc6 .信号源的容抗与PCB分布电容的影响当转换模拟信号时,需要考虑信号源的容抗和在模拟输入引脚端的分布电容(参见图11-2-4),信号源的电阻和电容构成一个阻容网络,除非外部的电容(CAIN+Cp)能够完全充电至输入信号的电压,否则ADC转换的结果将是不准确的。(CAIN+Cp)的数值越大,信号源的频率就越受限制。信号源上的外部电容和分布电容分别用CAIN和Cp表示。具有RADC、CAlN和CP的模拟输入STM32:信号源:VAJNR”:2ANX;yWI:CAIN!*Cpl.l.fai15483图11-2-4引脚分布电容7 .注入电流的影响在

35、任一个模拟引脚上负的注入电流都会在ADC输入上(或靠近的数字输入引脚)引入漏电流,最差的情况是在相邻的模拟通道上。当VAINVSS时,会产生负的注入电流,导致有电流从I/O引脚流出,见图11-2-5说明。8 .温度的影响温度会对ADC的精度产生较大的影响,主要有2项误差:偏移误差和增益误差。这些误差可以通过微控制器的固件程序补偿。9.I/O引脚间的串扰因为I/O脚之间的耦合电容,I/O端口的翻转可能对ADC的模拟输入产生一些噪声。可能会因为PCB走线过于靠近,或互相交叉而产生这样的串扰影响。内部数字信号和I/O脚的翻转会产生高频的噪声;翻转大吸入电流的I/O脚,因为电流的扰动,有可能在电源上产

36、生电压尖峰。PCB上一个数字信号与模拟输入线的串扰,可能会影响模拟信号(见图11-2-6)o模拟输入STM32STM32数字I/O情形1模拟输入数字I/O情形2ai15485图11-2-610.EMI导致的噪声由于PCB线路有可能变成天线,从邻近的电路产生的电磁辐射可以在模拟信号上引入高频噪声(见图11-2-7)O11.2.3如何减小与外部环境相关的ADC误差1 .减小电源噪声1电源端从噪声角度讲,线性稳压器具有较好的输出。市电经降压、整流和滤波,再经过线性稳压器。强烈建议在整流输出端连接滤波电容。请参考线性稳压器的数据手册。如果使用开关型电源,建议使用一个线性稳压器为模拟部分供电。建议在电源

37、线和地线之间连接具有好的高频特性的电容,即在靠近电源一端应放置一个01F和一个1至10F的电容。电容允许交流信号通过,小容量的电容过滤高频率的噪声,大容量的电容过滤低频率的噪声。通常瓷介电容具有较小的容值(IPF至0.1F),和较小的耐压(16V至50V)。建议在靠近主电源(VDD和VSS)和模拟电源(VDDA和VSSA)管脚的地方,放置这样的瓷介电容。这样的电容可以过滤由PCB线路引出的噪声。小容值的电容可以响应电流的快速变化,并快速地放电适应快速的电流变化。留电容也可以与瓷介电容一道使用。可以使用大容值的电容(10F至100F)过滤低频率的噪声,通常可以使用电解电容。建议把它们放在靠近电源

38、端。可以使用在电源线上串联铁氧体电感滤除高频噪声。因为串联的电阻非常小,除非电流非常大,这个方法可以产生非常小的(可以忽略的)直流损失。在高频时,它的电阻很大。2STM32FlOX芯片端多数的STM32FIoXXX微控制器的VDD和VSS管脚都是互相靠近的,Vref+和VSSA也是靠近的。因此可以在非常靠近微控制器的地方放置一个电容器。每一对VDD和VSS管脚都需要使用单独的去藕电容器。VDDA管脚必须连接到2个外部的去藕电容器(IOnF瓷介电容+1F的留电容或瓷介电容)。参见图11-2-8和图11-2-9的去藕电路例子。对于100脚和144脚封装的产品,可以在VREF+上连接一个外部的ADC

39、的参考输入电压,从而改善对输入低电压的精度(参见2.2.4节)。在Vref+上的电压范围是2.4V至Vdda。如果在VREf+上单独提供参考电压,必须在这个管脚上连接2个电容器,10nF和1F,而且VREF+不能超出2.4V至VDDA的范围。ai15487图11-2-8100脚和144脚封装的电源和参考电压去藕电路ai15488图11-2-936脚、48脚和64脚封装的电源和参考电压去藕电路2 .电源稳压的建议供电系统应该有好的线性和负载调节特性,因为ADC模块使用VREF+或VDDA作为模拟参考,数字数值的输出是这个参考电压与模拟输入信号的比值,Vref+必须在各种负载情况下保持稳定。任何时

40、候,不管因为开启了一部分的电路导致负载增加,电流的增加不应引起电压的下降。如果在宽的电流范围内能够保持电压的稳定,这样的电源具有好的负载调节特性。例如:LDlo86D2M33电压调压器,在VlN从2.8V至16.5V的范围内(hoad=10mA)的典型线性调节是0.035%,在3d从0至1.5A的范围内的负载调节是0.2%(详见LDlO86的数据手册)。线性调节的数值越低,稳压性能越好。同样,负载调节数值越低,稳压性能越好,输出的电压越稳定。还可以使用诸如LM236作为VREf+的参考电压,这是一个2.5V的电压参考二极管(详见LM236数据手册)。3 .消除模拟输入信号的噪声1平均值方法平均

41、值法是一个简单的技术,通过对一个模拟输入信号的多次采样和软件计算取平均值实现。这个技术有利于消除那些不频繁变化的模拟输入信号上的噪声。平均值法需要在一个相同的模拟输入电压上进行多次采样,保证模拟输入信号在转换完成之前,保持在相同的电压,否则模拟输入的变化将会出现在结果数值中,从而引入新的误差。2增加一个外部漉波器使用一个外部滤波器可以消除高频噪声,没有必要使用昂贵的滤波器去处理超出需要频率之外的频率分量。因此,一个相对简单的具有阻断频率fc,刚好超过需要频率的低通滤波器,可以有效地限制噪声和假波。采样速率超过最高的需要频率即可,通常为25倍于fc。4,将最大的信号幅度与ADC动态范围匹配这个方

42、法可以通过合理地选择参考电压或使用一个前级放大器,使用IADC的全量程输出,得到最大可能分辨率,从而提高精度。1)选择参考电压(仅适合于100脚和144脚封装的产品)在要测量信号希望的范围内选择参考电压。如果要测量的信号有偏移,则参考电压也应该有相应的偏移。如果要测量的信号有由一个最大的幅度,则参考电压也应该有相应的最大幅值。这个参考电压与要测量信号的幅值匹配,就能够使用ADC模块的全范围输出,得到最大的分辨率。在100脚和144脚封装的STM32FlOXXX产品中,ADC参考电压由外部的Vref+提供,VREF-管脚必须与地线相连。VREf+管脚为上述匹配方法提供了可能。例如:如果要测量的信

43、号在OV至2.5V之间变化,建议选用VREF+=2.5V;可以选用LM235作为参考电压(详见LM235的数据手册),图11-2T0示范了这些条件。注:Vref+.的电压必须处于24V和。八之间。VVref+= 3.3 V. (4095h)2.5 V . (3102h)未使用的ADC转换范围rv .4095 uDigHaI0utpul = -3T nC . I4095Digital0utpul =V-Vref+= 25 V (4095h) 把 Vref+ 从3.3V变 为 25 Vai156OO图11-2-10选择参考电压2使用前置放大器如果要测量的信号太小(与ADC的测量范围相比),则最好使

44、用一个外部的前级放大器,这个方法可以用于所有封装的STM32F10xxx产品,特别是那些没有VREf+管脚的封装。例如:如果要测量的信号变化范围是OV至IV之间,而VDDA是3V,这个信号可以被放大,使它的峰峰幅度与VDDA的数值相同,增益为3。图11-2-11示范了这个例子。这个放大器可以把输入信号的范围转换至ADC模块的范围,它同样可以在输入信号与ADC输入之间引入偏移量。特别要注意设计这个放大器时不要引入额外的误差(如额外的偏移,放大镜增益的稳定性、线性度、频率响应等)。VVDDA = 3V. (4095h)1 V. (1365h)未使用的ADC转换范围信号放大之前DigitaIcWUt

45、 =等XVmrfc. . I 4095 G “DIgltalOUSUt = _3X VMail 56015 .模拟信号源的阻抗计算假定最大允许的误差是1/4LSB,下面计算一下最大允许信号源的阻抗。VC是内部CADC电容器上的电压(参见图这样得到:误差=VAlN-Vc=LSB最差情况下的误差:Vain=Vref+图11-2-12令ts是采样时间。tS=TsfADC,其中TS是按周期计算的采样时间(1)对于给定的ts,对应VAIN=VREF+的误差大于对应VAINVVREF+时的误差,这是因为把CADC从OV充电至Vain,在VAlN=VREf+时需要比在VAINVVREf+时需要更多的时间(参见图18)。因此VAlN=VREF+时是计算最大允许信号源阻抗时需要考虑的最坏情况误差=VREF+-Vref+ 1REN2 VX1-4其中:Rmax=(RAIN+RADC)max(2)N是ADC的分辨率(对于STM32而言,N=12)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号