加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

STM32 ADC采样频率的确定

(2013-09-21 15:31:52)
标签:

it

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的采样时间这些位用于

        独立地选择每个通道的采样时间。在采样周期中通道选择位必须保持不变。   

        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=100us        

      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 。 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有