STM32 ADC 采样频率的确定
1. 先看一些资料,确定一下 ADC 的时钟:
(1)、 由时钟控制器提供的 ADCCLK 时钟和 PCLK2(APB2 时钟)同步。CLK 控制器为
ADC 时钟提供一个专用的可编程预分频器。
(2)、 一般情况下在程序 中将 PCLK2 时钟设为与系统时钟相同
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
(3)、 在时钟配置寄存器(RCC_CFGR) 中有为 ADC 时钟提供一个专用的可编程预分器。
位 15:14 ADCPRE:ADC 预分频由软件设置来确定 ADC 时钟频率
00:PCLK2 2 分频后作为 ADC 时钟
01:PCLK2 4 分频后作为 ADC 时钟
10:PCLK2 6 分频后作为 ADC 时钟
11:PCLK2 8 分频后作为 ADC 时钟
我们可对其进行设置例如:RCC_ADCCLKConfig(RCC_PCLK2_Div4);
另外 ADC 时钟使能设置:RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|
RCC_APB2Periph_ADC2 | RCC_APB2Periph_GPIOC, ENABLE);
(4)、 可编程的通道采样时间
ADC 使用若干个 ADC_CLK
周期对输入电压采样,采样周期数目可以通过
ADC_SMPR1 和 ADC_SMPR2 寄存器中的 SMP[2:0]位而更改。每个通道可以以不
同的时间采样。总转换时间如下计算:
TCONV = 采样时间+ 12.5 个周期
例如:当 ADCCLK=14MHz 和 1.5 周期的采样时间
TCONV = 1.5 + 12.5 = 14 周期 = 1μs
SMPx[2:0]:选择通道 x 的采样时间这些位用于独立地选择每个通道的采样时间。在
采样周期中通道选择位必须保持不变。