处理中...

首页 > 资料大全 > 解决方案 >

CLK控制器为ADC时钟提供专用可编程预分频器解析方案

CLK控制器为ADC时钟提供专用可编程预分频器解析方案
来源:华强电子网 时间:2012-03-30
 一 STM32 ADC 采样 频率的确定
先看一些资料,确定一下STM32 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);

[ SUPESITETAGCODE100 ][ SUPESITETAGCODE101 ]  (4)16.7 可编程的通道采样时间
 
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的采样时间
 
这些位用于独立地选择每个通道的采样时间。在采样周期中通道选择位必须保持不变。
 
000:1.5周期 100:41.5周期
 
001:7.5周期 101:55.5周期
 
010:13.5周期 110:71.5周期
 
011:28.5周期 111:239.5周期
注:
– ADC1的模拟输入通道16和通道17在芯片内部分别连到了温度传感器和VREFINT。
 
– ADC2的模拟输入通道16和通道17在芯片内部连到了VSS。
 
2. 具体分析如下:
 
(1)我们的输入信号是50Hz (周期为20ms),初步定为1周期200个采样点,(注:一周期少采20个点,即采样率少为1k) ,每2个采样点间隔为 20ms /200 = 100 us
 
ADC可编程的通道采样时间我们选小的 1.5 周期,则 ADC采样周期一周期大小为100us /1.5=66us 。 ADC 时钟频率为 1/66us =15 KHz。
 
ADC可编程的通道采样时间我们选71.5 周期,则 ADC采样周期一周期大小为(100us /71.5) 。 ADC 时钟频率为 7.15MHz。
 
(2)接下来我们要确定系统时钟:我们 用的是 8M Hz 的外部晶振做时钟源(HSE),估计得 经过 PLL倍频 PLL 倍频系数分别为2的整数倍,72 MHz。为了 提高数据计算效率,我们把系统时钟定为72MHz,(PLL 9倍 频)。则PCLK2=72MHz,PCLK1=36MHz;
 
我们通过设置时钟配置寄存器(RCC_CFGR) 中 有 为ADC 时钟提供一个专用的可编程预分器,将PCLK2 8 分频后作为ADC 的时钟,则可 知ADC 时钟频率为 9MHz
 
从手册可知: ADC 转换时间:STM32F103xx 增强型产品:ADC 时钟为56MHz 时为1μs(ADC 时钟为72MHz 为1.17μs)
 
(3)由以上分析可知:不太对应,我们重新对以上中 内容调整,提出如下两套方案:
 
方案一:我们的输入信号是50Hz (周期为20ms),初步定为1周期2500个采样点,(注:一周期少采20个点,即采样率少为1k) ,每2个采样点间隔为 20ms /2500 = 8 us
 
ADC可编程的通道采样时间我们选71.5 周期,则 ADC采样周期一周期大小为8us /71.5 。 ADC 时钟频率约为 9 MHz。
 
将PCLK2 8 分频后作为ADC 的时钟,则可知ADC 时钟频率为 9MHz
 
方案二:我们的输入信号是50Hz (周期为20ms),初步定为1周期1000个采样点,(注:一周期少采20个点,即采样率少为1k) ,每2个采样点间隔为 20ms /1000= 20 us
 
ADC可编程的通道采样时间我们选239.5周期,则 ADC采样周期一周期大小为20us /239.5 。 ADC 时钟频率约为 12 MHz。
 
将PCLK2 6 分频后作为ADC 的时钟,则可 知ADC 时钟频率为 12MHz

热门推荐

更多 >
ESP32-S3 2022-03-16
RG200U 2022-03-16
USR-C322 2022-03-16

资料浏览排行榜

更多 >
商品名称 大小 浏览量
1 EPCS128SI16N 0.94MB 22002次
2 1N4001 0.19MB 17870次
3 DAC1220E 0.95MB 15867次
4 EP1C6Q240I7N 2.47MB 15824次
5 GRM32RR71H105... 0.10MB 14007次
6 DR127-3R3-R 0.72MB 11684次
7 DMG2305UX-7 0.40MB 9281次
8 DMP2008UFG-7 0.24MB 9069次
9 DS1337U+ 0.28MB 9065次
10 DX4R105JJCR18... 0.26MB 8983次