打印

关于STM32F103 ADC的采样转换频率

[复制链接]
11530|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zy_sh_npk|  楼主 | 2008-4-16 14:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手册上说ADC采样器的最快采样速度是1M,理论上当实际当选用72M时钟时最快可以达到1.28M.在我的开发板上(keil的MCBSTM32)调试时,对同一模拟量采样时有时会差异比较大(也有可能是信号输入阻抗太大的缘故).如果我对采样速度有要求(刚好大于1M),对采样的绝对精度要求不高(实测经过改造过的MCBSTM32的ADC采样器的供电电源后,精度约在±1 bit 到±2 bit之间).

那位有经验,谈谈可以这样使用STM32F103的ADC吗?(选用72M的时钟,约1.2M采样转换频率)
有什么缺点呢?
沙发
香水城| | 2008-4-16 15:30 | 只看该作者

楼主的理解有误,STM32 ADC的最大采样转换频率为1MHz

STM32F103是在CPU频率为56MHz时,ADC的最大采样转换频率达到1MHz。但是当CPU频率为72MHz时,ADC的最大采样转换频率变为854.7kHz,即1.17us,比1MHz慢。

使用特权

评论回复
板凳
JIANG_WX| | 2008-4-16 15:45 | 只看该作者

采样速度最快可达107ns

ADC的采样速度是可调的,最低可达107ns(当ADC clock为14MHZ).

使用特权

评论回复
地板
zy_sh_npk|  楼主 | 2008-4-16 16:12 | 只看该作者

采样装换得速度到底该怎样计算呢?

从STM32F的手册中可以看出,ADCclk应该是从APB2分频所得。APB2如果选择72M,ADCclk的分频难道就不能选择4分频了吗?或者说ADCclk的分频有什么限制吗?

使用特权

评论回复
5
zy_sh_npk|  楼主 | 2008-4-16 16:14 | 只看该作者

怎么不能上传文件了呢?

怎么不能上传文件了呢?(手册上有关ADC分频的图片传不上去)

使用特权

评论回复
6
香水城| | 2008-4-16 16:47 | 只看该作者

ADC采样转换时间计算

请看STM32技术参考手册的16.7节:

16.7 Channel-by-channel programmable sample time

ADC samples the input voltage for a number of ADC_CLK cycles which can be modified using the SMP[2:0] bits in the ADC_SMPR1 and ADC_SMPR2 registers. Each channel can be sampled with a different sample time.

The total conversion time is calculated as follows:
    Tconv = Sampling time + 12.5 cycles

Example:
    With an ADCCLK = 14 MHz and a sampling time of 1.5 cycles:
    Tconv = 1.5 + 12.5 = 14 cycles = 1us


在STM32的数据手册中已经明确fADC的最大值为14MHz,当这个频率超过14MHz时,ST不保证它的工作正确性。

使用特权

评论回复
7
zy_sh_npk|  楼主 | 2008-4-16 17:41 | 只看该作者

从STM32F103的手册上看

从手册上看,也说明ADCclk是可以超过14M的,只是ST不保证它的工作正确性而已!测试结果在ADCclk超过14M时,转换结果的却和<14M时差异很大(远超过手册上标明±2 bit)。

但如果对转换结果的绝对精度要求不高的情况下,可以将ADCclk超过14M使用吗?
还有其它的什么缺点呢?
大家都有这样的经验吗?

使用特权

评论回复
8
香水城| | 2008-4-16 17:50 | 只看该作者

手册上哪里说ADC的频率可以超过14MHz?

数据手册中第5.3.17节下的表44清楚地写明fADC最大为14MHz。

STM32F103xx数据手册下载

使用特权

评论回复
9
zy_sh_npk|  楼主 | 2008-4-16 18:00 | 只看该作者

谢谢香版主的及时答复

首先谢谢香版主的及时答复,不过我想知道的是:
1.ADCCLK的频率可以超过14M吗?
2.当ADCCLK的频率可以超过14M时,会有什么情况发生?仅仅是结果不准确吗?

使用特权

评论回复
10
香水城| | 2008-4-16 18:12 | 只看该作者

“fADC的最大值为14MHz”,意思就是:ADCCLK的频率不可以超过14

我已经强调多次,“fADC的最大值为14MHz”,这句话的意思就是:ADCCLK的频率不可以超过14M

至于“当ADCCLK的频率超过14M时,会有什么情况发生”,我也不知道,但至少芯片不会爆炸。


我不知道为什么你要反复问这个问题?你为什么要超出芯片的极限条件去使用它?

使用特权

评论回复
11
香水城| | 2008-4-16 18:16 | 只看该作者

请注意:任何一个芯片生产厂家都不可能对超出极限条件的

否则极限条件变得没有意义;除非超出极限条件的使用会造成事故,但不是以特性参数的形式给出,而是以警告的形式给出。

使用特权

评论回复
12
kewxke| | 2008-4-16 20:22 | 只看该作者

呵呵,香版发飙了啊

一般的人当然是按照datasheet上说明来操作,
但是像lz这样勤学好问的不妨让他去探索发现嘛。

使用特权

评论回复
13
alien2006| | 2008-4-16 20:39 | 只看该作者

呵呵,正常使用是应该在规定的要求之内

    不过我实地用过,在我那个用STM32做的虚拟示波器的帖子里,当采样率设置为1M的时候确实是在超频使用了,一般主时钟都是用72M,所以14M的ADCCLK不大好生成,所以是我用的是18M了。不过STM32的质量很不错,我测试过1M采样率情况下误差不大,至少跟500K的采样率没啥差别,很准确的。
    话说回来自己业余玩玩可以这样用,要是工业上产品上这样用肯定是不行的了。

使用特权

评论回复
14
香水城| | 2008-4-16 21:37 | 只看该作者

勤学好问当然要鼓励,否则我也不会重复三遍地回答那个问


请看我在2、6、8楼的回答。但我不知道他是没看我的帖子还是有别的什么用意,不得不用大号字体第四次强调。

非常赞同alien2006的说法,超频这玩艺“自己业余玩玩可以这样用,要是工业上产品上这样用肯定是不行的了。”

大家都是学工科,搞工程、做产品不是儿戏,岂能乱来。
 

如果楼主说只是想玩玩,那就请便,下面这个帖子中有更多的高级玩家:STM32能不能超频啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

22

帖子

0

粉丝