历史上的今天
返回首页

历史上的今天

今天是:2025年05月04日(星期日)

2018年05月04日 | STM32 ADC 采样 频率的确定

2018-05-04 来源:eefocus

一 STM32 ADC 采样 频率的确定

1.       :

先看一些资料,确定一下ADC 的时钟:

(1),由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。

    (2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同

    /* HCLK = SYSCLK */

    RCC_HCLKConfig(RCC_SYSCLK_Div1);

 

    /* PCLK2 = HCLK */

    RCC_PCLK2Config(RCC_HCLK_Div1);

 

    /* PCLK1 = HCLK/2 */

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时钟

我们可对其进行设置 例如:

    /* ADCCLK = PCLK2/4 */

RCC_ADCCLKConfig(RCC_PCLK2_Div4);

 

另外 还有 ADC 时钟使能设置

/* Enable ADC1, ADC2 and GPIOC clock */

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2 |

                         RCC_APB2Periph_GPIOC, ENABLE);

 

    

    (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


推荐阅读

史海拾趣

AVAGO公司的发展小趣事

随着公司规模的扩大和技术的不断积累,AVAGO公司开始寻求多元化的发展道路。除了继续深耕半导体领域外,公司还积极拓展其他相关领域,如传感器、无线通信等。同时,公司还与其他行业的领军企业建立了紧密的战略合作关系,共同推动技术创新和市场拓展。

Gazelle Microcircuits Inc公司的发展小趣事
随着半导体技术的进步和元件的更新换代,许多原本需要负电压供电的电路现在可以通过正电压供电的电路来实现相同或更好的功能。
Hoffman Engineering公司的发展小趣事

在电子行业快速发展的背景下,Hoffman Engineering也面临着诸多市场挑战。为了应对这些挑战,公司不断进行战略调整和优化。例如,在市场竞争日益激烈的情况下,Hoffman Engineering加强了品牌建设和市场推广力度,提升了品牌知名度和市场影响力。同时,公司还注重与产业链上下游企业的合作与共赢,共同推动行业的健康发展。这些战略调整和优化措施的实施,使Hoffman Engineering在激烈的市场竞争中保持了稳健的发展态势。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

FTDI的创立可以追溯到1992年3月13日,由弗雷德·达特(Fred Dart)领导创建。初期,公司专注于为个人电脑市场提供服务,特别是针对主板芯片组的解决方案。FTDI的首发产品就得到了IBM等知名企业的青睐,这些芯片被成功应用于AMBRA和PS/2系列个人电脑中,为当时快速发展的计算机技术贡献了重要力量。这一早期成功奠定了FTDI在电子行业中稳固的基础。

Caddock公司的发展小趣事

Caddock公司的发展可以追溯到1962年,当时公司推出了Micronox电阻系统。这一创新技术使电阻器在极端操作条件和恶劣环境下实现了高水平的稳定性和可靠性。这一重大突破为Caddock公司赢得了市场的广泛认可,并为后续的电阻材料技术发展奠定了坚实的基础。

Galil Motion Control Inc公司的发展小趣事

Caddock公司的发展可以追溯到1962年,当时公司推出了Micronox电阻系统。这一创新技术使电阻器在极端操作条件和恶劣环境下实现了高水平的稳定性和可靠性。这一重大突破为Caddock公司赢得了市场的广泛认可,并为后续的电阻材料技术发展奠定了坚实的基础。

问答坊 | AI 解惑

8条帮你理清CPLD开发板和FPGA开发板的区别

市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:① C ...…

查看全部问答>

电机的控制

用的是直流电机,信号由PWM来控制,采用H桥驱动,经过齿轮箱,把旋转运动转化为直线运动,负载是控制弹簧的开度。 有人告诉我,电机的电压越大,电流越小,这是为什么? 当电机扭矩不够大,带不动负载时,电机是什么状态,转还是不转? 当电机把 ...…

查看全部问答>

中兴通讯电源输入端口的电磁兼容设计

中兴通讯电源输入端口的电磁兼容设计…

查看全部问答>

WinCE 3G卡 USB驱动 求救

dear all: 小弟最近做一个HW的3G卡,WinCE下的USB虚拟串口驱动,在USB中,有8组接口,用了其它的一组有2个端点,8号端点OUT写数据,88号端点IN读取数据,为什么能写成功,IN不到数据呢,望大家指教, 代码如下: dw = IssueBulkTransfer( pDrv-> ...…

查看全部问答>

怎么安装Print Processor

怎么安装Print Processor…

查看全部问答>

版主,STM32I2C疑惑

问题一:STM32的I2C里那个BUSY位,置1的条件是SDA或SCL为低,是包括自己发起传输时将SDA和SCL拉低吗,是否意思是,不管这两条线是谁拉低的,只要有一根线出现低电平就置位BUSY?清除的条件是检测到STOP,那这个STOP是包括自己发出的STOP的还是总线上其 ...…

查看全部问答>

【求助】AD16好像不能接负电压

我将AD16的A0-直接接地,A0+端接上负电压譬如 -0.2V,AD16采样的值为零。好像A0-和A0+不能接负电压,, 郁闷!!! A0-和A0+的压差最大不能超过+-600mv,A0-和A0+不能为负压,,是不是这样理解的?请指教!…

查看全部问答>

恩智浦充分挖掘多功能汽车钥匙的潜能

推出市场就绪型NFC“智能”汽车钥匙 中国上海,2011年6月15日 --\" 智能\"汽车钥匙市场的先驱--恩智浦半导体NXP Semiconductors N.V. (NASDAQ:NXPI) 今日宣布推出针对多功能汽车钥匙的生产就绪单芯片解决方案--NCF2970 (KEyLink L ...…

查看全部问答>

大家用过IAR Embedded Bench编译环境的介绍一下哈

最近在尝试使用IAR Embedded Bench编译环境做一个小项目,但是对这个编译环境不是很理解啊!为什么上面自带的例程烧写到lpcxpresso-cn 1114这个板子上的时候,lcd灯没一点反应呢????…

查看全部问答>

【武汉华嵌】Linux进程间通信之信号量

作者:武汉华嵌嵌入式培训中心  技术部 信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语。在UNIX下有三种分别如下: Posix有名信号量;Posix基于内存的信号量;System V信号量。 在这里只和大家分享下有关Syst ...…

查看全部问答>