OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5304|回复: 16

请教一个定时器触发ADC转换的问题

[复制链接]

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
发表于 2017-11-13 16:55:05 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 rjx007 于 2017-11-14 06:54 编辑

想对音频信号进行采样后再FFT运算,但有一个问题没搞清楚,即用定时器来触发ADC转换,我的问题是:此时采样频率是由ADC决定的,还是由定时器决定的?下面的例子的采样频率究竟是多少?(系统时钟是72M.),ADC的采样周期和中断溢出时间是什么关系?请各位多指教,先谢谢啦!
。。。。。。。。。。。
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
。。。。。。。。
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_55Cycles5);

。。。。。。。。

TIM_TimeBaseStructure.TIM_Period = 25;        //定时中断频率=(72M/71+1)/25      
TIM_TimeBaseStructure.TIM_Prescaler = 71;    // 分频36000  

。。。。。。。


最佳答案

查看完整内容[请看2#楼]

肯定是以定时器的触发周期,才是采样频率。这用问么? 假设你 adc采集速度,比定时器触发还慢,那就肯定有问题 所以,肯定只能以定时器触发来计算采样率,所以没什么纠结的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-11-13 16:55:06 | 显示全部楼层
rjx007 发表于 2017-11-18 17:51
原子老板。我的问题是用定时器触发ADC,采样频率怎么计算?

肯定是以定时器的触发周期,才是采样频率。这用问么?
假设你 adc采集速度,比定时器触发还慢,那就肯定有问题
所以,肯定只能以定时器触发来计算采样率,所以没什么纠结的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2016-1-27
在线时间
64 小时
发表于 2017-11-13 19:21:25 | 显示全部楼层
为什么不用DMA?你可以先设置好采集次数,次数达到后,再一次性处理数据。
回复

使用道具 举报

8

主题

206

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-4-6
在线时间
234 小时
发表于 2017-11-13 20:36:55 | 显示全部楼层
既然是定时器中断触发ADC进行采样。那么应该是定时器的来决定的吧。但是,这里需要了解一个东西就是,外部触发ADC采样时,ADC由采集到转换需要时间,这个时间就是ADC的采样时间(采样1次所需的时间 T = 采样时间+12个周期 = (55.5+12)*ADCCLK), 定时器触发间隔采样。这个时间应该就是需要的采样频率吧。
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-14 10:24:54 | 显示全部楼层
仍然不太了解,继续求解。
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-17 14:13:38 | 显示全部楼层
继续诚心求解。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-11-18 01:17:29 | 显示全部楼层
可以定时器触发adc采集的,定时器+adc+dma,论坛应该有参考,搜下吧
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-18 17:51:04 | 显示全部楼层
原子老板。我的问题是用定时器触发ADC,采样频率怎么计算?
回复

使用道具 举报

8

主题

569

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2363
金钱
2363
注册时间
2015-5-8
在线时间
320 小时
发表于 2017-11-18 17:57:19 | 显示全部楼层
都说采样频率了,就是看ADC吧,你是六分频就是12M
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-19 10:00:52 | 显示全部楼层
本帖最后由 rjx007 于 2017-11-19 10:02 编辑

12M是系统时钟72M经6分频后ADC的时钟,不是采样频率吧?谁能给我一个确切的答案啊?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-11-20 00:55:37 | 显示全部楼层
rjx007 发表于 2017-11-19 10:00
12M是系统时钟72M经6分频后ADC的时钟,不是采样频率吧?谁能给我一个确切的答案啊?

当然不是,你连这都搞不懂,说明根本没看教程啊。。。
好好看我们教程
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-20 10:30:48 | 显示全部楼层
本帖最后由 rjx007 于 2017-11-20 10:53 编辑

首先声明,鄙人的确是一个小白,否则不会在这里诚心求教,而且我对于之前曾耐心回答过我问题的所有人都心存感激。
但原子老板也可能误解我的意思了,我9楼的话是针对8楼的。
这个帖子的最初的本意,也就是核心问题是问:用定时器去触发ADC转换时,ADC的采样率是否由定时器中断的频率来决定的,还是由ADC本身的采样周期决定的?,也就是说,用定时器触发ADC转换时,既有ADC本身的采样周期的设定,但用定时器触发时,定时器又有中断时间设定,究竟哪个决定了采样率?就这么个问题,上面几位的回答都没有切中要害,所以我才不断的发问。
至于其它的问题,如ADC及定时器本身我并无什么疑问。


回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2017-11-20 10:51:32 | 显示全部楼层
adc里面那个采样周期例如239.5和55.5那些值,越大越精确。
如果你设了最大,假如每次采集需要10us,定时器定的每个周期只有9us,那么这个239.5就不能用。
为啥,不难理解吧。因为还没处理完就又触发第二次了。得大于那个10us。
一般可能定时器定的时间是固定不能动的,那么只有改小那个239.5,直到小于你定时器的每个周期时间。
小小蜗牛
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-20 11:01:02 | 显示全部楼层
感谢楼上的解答,这个我的明白。
因为想做一个音乐频谱,所以必须知道采样频率是多少,知道了采样频率,再根据点数才能计算出频谱的分辨率(每根谱线的具体频率)。所以有一楼的问题。
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-11-20 12:55:20 | 显示全部楼层
TIM_TimeBaseStructure.TIM_Period = 25;        //定时中断频率=(72M/71+1)/25      
TIM_TimeBaseStructure.TIM_Prescaler = 71;    // 分频36000

1 000 000 ÷ 26 = 40 KHz 不到一点吧  是不,  所以ADC的 采样时间小于25ms 就行了吧
回复

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2017-7-7
在线时间
42 小时
发表于 2017-11-21 08:59:01 | 显示全部楼层
原子哥有没有采样的周期比定时器周期长的情况,出现这种情况该怎么解决
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2017-11-21 11:45:17 | 显示全部楼层
其实2楼原子老师已明确回答了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 17:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表