STM32F103ZET6 之 ADC 采样率的确定

1、STM32 ADC 介绍

STM32 ADC 是一个12 位精度、 一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模

式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。

ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。转换时最快为1us,当ADC的输入时钟超过14MHz 时其会损失一些精度。当然如果可以达到我们的精度,输入时钟

高点也没事。

在网上看到一回答ADC不超过14MHz 的答案:资料上的都是推荐,事实上很多芯片的设计都是有超额余量的,很多人都会超额的利用这些资源,并且很好的工作。

若所看的程序频率是超过14M,也没有错,可能作者的目的在于快速而宁愿损失一些精度,ADC的分辨率是12位,若是超过这个频率也是工作的,只不过采样到的精度可能仅到10

位,若这个已到 作者的要求,也无错误之说了。


2、看参考手册,确定ADC 的时钟以及通道采样时间:

1)ADC 时钟        ADC 接在APB2 上,APB2的时钟为72MHz,通过分频的方式给ADC 提供时钟,预分频主要有2、4、6、8 四种分频方式。

2)通道采样时间  通道采样时间会影响采样的精度。


3、转换时间

公式:TCONV = 采样时间+ 12.5 个周期 

例如:当

ADCCLK=14MHz 

1.5 

周期的采样时间

 

TCONV = 1.5 + 12.5 = 14 

周期

 = 

1

μ

s

例如:当ADCCLK=14MHz 和1.5 周期的采样时间   TCONV = 1.5 + 12.5 = 14 周期 = 1μs


1)一般情况,如果是软件启动,那么转换时间即是采样周期。

2)若通过定时器进行触发启动ADC,则还需要加上定时器的相关时间。


4、确定采样率

1)如果我们的输入信号是 20KHz  (周期为 50us),若要将它恢复出来,一个周期最少采样20个点,此时采样率要达到400KHz,所以ADC的采样率必须在400KHz 以上。为

了达到最好的精度,我们选取ADC时钟为12MHz,即6分频。在12MHz 以及保证采样率的情况下,采样时间越长其,准确性就越好。

可以计算 2.5us = (12.5 + 采样时间)/ 12MHz ,可以求得采样时间为17.5;所以采样时间的选择必须小于等于17.5个周期,才能保证采样率在400KHz 以上。所以我们可以选

择1.5、7.5、13.5,为获得更高的精准度,我们可以选择13.5个周期。


切记采样点数必须达到要求。

你可能感兴趣的:(STM32,ADC,采样率,处理器【STM32】)