单片机
返回首页

STM32F407 ADC时钟设置及采样频率设置

2016-10-12 来源:eefocus

/*************************************************
在system_stm32f4xx.c中有如下定义:
 
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N     / / /
    #define PLL_M      8
    #define PLL_N      336
    /* SYSCLK = PLL_VCO / PLL_P     //
    #define PLL_P      2
    /* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ ///
    #define PLL_Q      7
*************************************************/
根据公式:/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N     / / /即 PLL_VCO=8/8*336=336M
而  /* SYSCLK = PLL_VCO / PLL_P     //即 系统时钟SYSCLK=336/2=168M(系统时钟不能超过168M)
而/* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ ///即USB SDIO RNG的时钟为24M
 
rcc_cofig()中可以定义各个总线时钟的分频:
HCLK = SYSCLK / 1   (AHB1Periph)  则HCLK=168M 与系统时钟相等   
PCLK2 = HCLK / 2    (APB2Periph)  则PCLK2=168/2=84M(函数中定义分频值)
PCLK1 = HCLK / 4      (APB1Periph)则 PCLK1  =168/4(函数中定义分频值) 
 
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2; //
在ADC设置中设置为PCLK2的2个分频
则ADC时钟脉冲为84/2=42M
 ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_3Cycles);
则ADC采样的频率为42/(3+12)=2.8M(其中3是上面函数定义的参数(可变),12是采样值转换的固定时间(固定))
注意:采样频率与
ADC_CommonInitStructure.ADC_TwoSamplingDelay =ADC_TwoSamplingDelay_5Cycles;//ADC_delay_between_2_sampling_phases
这个函数没有任何关系。
 
由于系统时钟最大不能超过168M,所以ADC采样的最大值为2.8M/S.
如果想设定为2M的采样频率,则需要修改PLL_N为240;
进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章