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个周期。
切记采样点数必须达到要求。