stm32 adc 采样率

2016-10-09来源: eefocus关键字:stm32  adc  采样率
STM32的ADC的采样时间及模拟信号的最大带宽。
请看STM32技术参考手册的16.2节,和STM32F103xx数据手册的5.3.17节表44。可以在ST的中文网站下载到上述2个手册: [url=http://www.stmicroelectronics.com.cn/stonline/mcu/MCU_Pages.htm]http://www.stmicroelectronics.com.cn/stonline/mcu/MCU_Pages.htm[/url]
前面所说“STM32的ADC的采样及转换时间最小为1us”,实际上STM32的ADC采样及转换时间可以通过程序编程进行调整,共有8种选择,按 ADC模块的驱动时钟算分别为:
1.5 ADC时钟周期
7.5 ADC时钟周期
13.5 ADC时钟周期
28.5 ADC时钟周期
41.5 ADC时钟周期
55.5 ADC时钟周期
71.5 ADC时钟周期
239.5 ADC时钟周期
采样及转换时间最小的1us是在CPU时钟为56MHz(STM32F101xx为28MHz)时达到。


可能提出的问题
tS(fADC = 14 MHz)最小 = 0.107?s.实际上就是 =1.5T/14.还有几件事:

1.采样及转换时间最小的1us是在CPU时钟为56MHz(STM32F101xx为28MHz)时达到。"这句话出自何处?

我倒是看到fADC的最大值是14MHz.

2.这句话是自身矛盾的。为什么为了达到1Mhz的采样率,好芯片要更高的时钟?

3.采样时间和采样周期是两个概念。采样时间是整个ADC性能的重要参数。(请参考采样示波器的“采样”的概念)

4.您在上面提到的采样时间的选择,AD转换周期(TCONV) = 采样时间+ 12.5个周期。如何选择?依据是什么?

5.我上面提到的“模拟信号的最大带宽”这个概念,我在坛上关注了大半年,发现大家从未讨论过。而这对用好ADC是很重要的。


问题1:采样及转换时间最小的1us是在CPU时钟为56MHz(STM32F101xx为28MHz)时达到。"这句话出自何处? 我倒是看到fADC的最大值是14MHz

答:这句话出自《STM32技术参考手册》第16.2节

ADC conversion time:

– STM32F103xx performance line devices: 1 us at 56 MHz (1.17 us at 72 MHz)

– STM32F101xx access line devices: 1 us at 28 MHz (1.55 us at 36 MHz)

关于fADC的最大值是14MHz,请看《STM32F103xx数据手册》第5.3.5节,表18下面的注释:

Specific conditions for ADC: fHCLK = 56 MHz, fAPB1 = fHCLK/2, fAPB2 = fHCLK, fADCCLK = fAPB2/4, ADON bit in the ADC_CR2 register is set to 1.

即fADC在fHCLK=fAPB2=56MHz时达到14MHz。

2.这句话是自身矛盾的。为什么为了达到1Mhz的采样率,好芯片要更高的时钟?

103当然可以用和101同样的时钟并达到1Mhz的采样率。

但因为103的APB2可达72MHz,而101的APB2只可达36MHz,如果用户想使用APB2的其他外设,用户会不希望为了配合ADC的14M而 采用低的时钟。所以这句话可以这样说:“在不影响ADC最高采样率的情况下,APB2最高可跑到56M"

3.采样时间和采样周期是两个概念。采样时间是整个ADC性能的重要参数。(请参考采样示波器的“采样”的概念)

103的DATASHEET有的,"ADC characteristics"

tS Sampling time, fADC = 14 MHz, 0.107 μs ,就是1.5×1/fADC

4.您在上面提到的采样时间的选择,AD转换周期(TCONV) = 采样时间+ 12.5个周期。如何选择?依据是什么?

要看外接的等效输入电阻及电容。103的DATASHEET上有一个公式 

R(AIN)
还有一个图表

Ts (cycles) tS (μs) RAIN max (kΩ)

1.5 0.11 1.2

7.5 0.54 10

13.5 0.96 19

28.5 2.04 41

41.5 2.96 60

55.5 3.96 80

71.5 5.11 104

239.5 17.1 350

5.我上面提到的“模拟信号的最大带宽”这个概念,我在坛上关注了大半年,发现大家从未讨论过。而这对用好ADC是很重要的。

同样拿示波器举例,示波器前端有运放,再接ADC。对于运放,一般才提”模拟信号的最大带宽“,但对于后面的ADC,重要的指标是采样、保持、转换时间, 根据Nyquist采样定律,至少2倍采样率才能重现波形,而通常做法是4~10倍,所以对于103,一定要提“模拟信号的最大带宽”这个概念的话,有工 程意义上的值是1M/4~10 约为250k~100k。

1. STM32F的ADC最高采样率是1MHz。

2. 原翻译错了,根据aes_sea的建议“采样及转换时间最小的1us是在CPU时钟为56MHz(STM32F101xx为28MHz)时达到”应改成 “在不影响ADC最高采样率的情况下,STM32F101xx的APB2最高可跑到56M..."

我的理解是:

STM32F10X的ADC的最高工作频率为14MHz,不能达到18MHz,(这是ST的无奈,当然已经很不错了。)而芯片的fSYSCLK和fADC 又必须保持2N倍的关系。

所以,若用户考虑ADC的性能,fADC=14MHz,则选SYSCLK=14*4=56MHz。

若用户考虑系统的性能,fSYSCLK=72MHzf,则选fADC=72/6=12MHz。

此时,ADC最高采样率是12/14=0.857MHz。

3. 最小采样时间就是1.5个ADC时钟周期。

4. 由于芯片的保持电容<5P,而其模拟开关的导通电阻<1K,本来要求AD源的输出阻抗<1.2K,为了方便用户,简化AD源的电路,采 样时间是可选的。

故上述表格本应反过来:根据用户的各个AD源的输出阻抗,选择合适的采样时间。

5. “根据Nyquist采样定律,至少2倍采样率才能重现波形”是老的观念。

否则,采样示波器的的最高频率怎么会远高于其ADC的最高频率。软件无线电也不会出现了。

技术高手应该明白“通带采样”的概念。而这又和“最小采样时间”关联。

6. 我的本意是希望引起大家的重视。前段时间,本坛有位先生在用STM32F10X做数字示波器,反响很好。正是因为看到大家都关心,才发出这个帖。


带宽是相对于模拟信号而言的,即能够采集到的最大的模拟信号的频率。采样率是相对于数字信号而言,即采样时间所决定。这两点在AD转换器上都有体现,一般 来讲AD的采样率要大于带宽,但也有小于带宽的,这就是将来高带宽的示波器的思想,用多个AD,利用相位差,在一个时钟周期内多个AD完成协同工作,这样 就可以降低单个AD的采样率,是未来的趋势。

关键字:stm32  adc  采样率

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2016100930254.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32 RAM 调试
下一篇:详解STM32 ISP设置及使用说明

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32解决:st-link连接下载程序的问题

STM32解决:Error: Flash Download failed - "Cortex-M3"本人由于使用普中科技的stm32 的开发板的 USB的下载的地方坏了,所以不得不使用arm仿真器 st-link 进行下载。鼓捣了半天下面总结一下几个问题:1、st-link的驱动下载首先你插上st-link的时候,电脑的设备管理器这个地方是有感叹号的,说明还没有装好驱动,所以我就在网上找啊找。终于根据:win8【笔者没这个系统,无法测试,请大家测试后报告】:http://pan.baidu.com/s/1sjJQxZn(转载来自:https://blog.csdn.net/imxiangzi/article
发表于 2019-07-19
STM32解决:st-link连接下载程序的问题

解决stm32f103通过stlink不能烧录程序问题

问题:   stm32(stm32f103c8T6)开发板只能通过串口烧录程序,而st—link居然不行描述:解决:st-link固件升级用stm32cubemx快速开发时没有配置好调试模式重新生成代码就可以了如果还是不行的话,就得升级一下stlink固件了,具体升级方法可百度
发表于 2019-07-19
解决stm32f103通过stlink不能烧录程序问题

STM32下载不成功问题汇总

在某宝上买了五个最小系统核心板是STM32F103C8T6的芯片,刚拿到手准备下载程序调试,上电后板子自带LED闪烁,这是商家自己下载的示例程序,说明芯片工作着,用KEIL4进行下载自己程序,把自己编译好的程序下载。用的JLINK的四线下载调试下载口,SW的调试接口,点击下载后发现擦除成功,下载失败,提示:Load "..\Output\STM32-DEMO.axf" Set JLink Project File to "F:文件RFID程序电机USERJLinkSettings.ini"* JLink Info: Device "STM32
发表于 2019-07-19
STM32下载不成功问题汇总

STM32高级开发(11)-使用GDB调试你的工程

/scripts/target/stm32f4x_stlink.cfg在执行完此条指令后该终端就会一直执行OpenOCD的程序了,不要关闭它,我们再打开一个终端界面,进入我们的工程目录,比如我这里进入的就是我的libopencm3样例工程下的blink子工程目录。$ cd '/home/yangliu/workspace/libopencm3-my-example/blink'然后我们使用指令输入调试文件并打开GDB程序。$ arm-none-eabi-gdb blink.elf 然后我们在GDB的指令界面中,输入连接指令,连接本地的3333端口。(gdb)target remote localhost:3333此时
发表于 2019-07-19
STM32高级开发(11)-使用GDB调试你的工程

STM32F4标准外设库模板工程建立与使用

SW4STM32安装其实固件库安装过程很简单,在第一次新建工程时会提示选择使用Stdperiph 驱动还是Cube HAL,由于Stm32官方大力推行Cube HAL固件库,所以Cube HAL的固件库直接可以从网上直接一键下载安装。然而对于老的StdPeriph固件库不能一键式下载安装,会提示出错。所以,我们需要自己下载一个.zip固件包,放在C:UsersLYAppDataRoamingAc6SW4STM32firmwares文件夹下,其中的LY就是计算机的用户名。然后新建工程时在选择Stdperiph固件时会自动解压缩,这样就能使用该库进行编译了。界面如下所示:工程配置器件与时钟或者,修改晶振与时钟,根据注释可以算得
发表于 2019-07-19
STM32F4标准外设库模板工程建立与使用

基于STM32的外设的GPIO外设设置总结

1、背景外设驱动的寄存器设置对于外设功能正常运行异常重要。现在对GPIO的配置进行总结。2、GPIO的配置总结复用GPIO配置GPIO设置为输出或者是复用模式时,需要设置输出速度;而无论设置为什么模式,都要对GPIO的内部上下拉进行设置。注意:在输入模式(普通输入/模拟输入)下,OTYPE和OSPEED参数无效!!
发表于 2019-07-19
基于STM32的外设的GPIO外设设置总结

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved