发新帖本帖赏金 6.00元(功能说明)我要提问
返回列表
打印
[STM32F4]

STM32F4究竟能不能2.4M采集ADC

[复制链接]
5100|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
changle11sdo5|  楼主 | 2017-9-17 13:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先不考虑精度问题,以及多ADC模块交替采集提高采样率的方法,

单ADC模块最高速也只有2.4M,就算开了DMA,
那么,应该也要等DMA搬走ADC值寄存器里的数据后,ADC模块才能填装ADC值寄存器,这样就拖慢了,

还有,用软件或DMA断断续续地搬1字节,究竟谁快?(不用考虑拖慢其它功能代码的问题)

打赏榜单

yjmwxwx 打赏了 6.00 元 2021-08-24

沙发
aozima| | 2017-9-17 14:30 | 只看该作者
速度由外设决定,但DMA可以做到接近0延时。
且使用DMA时,CPU可以去做别的,比如示波器的UI显示和数据处理。

使用特权

评论回复
板凳
hanzhen654| | 2017-9-17 14:39 | 只看该作者
f4应该做不到这么快吧。

使用特权

评论回复
地板
mmuuss586| | 2017-9-17 16:27 | 只看该作者
多通道交叉采样也不错;

使用特权

评论回复
5
changle11sdo5|  楼主 | 2017-9-17 16:46 | 只看该作者
aozima 发表于 2017-9-17 14:30
速度由外设决定,但DMA可以做到接近0延时。
且使用DMA时,CPU可以去做别的,比如示波器的UI显示和数据处理 ...

只要高速采集ADC值,不用考虑占用CPU的问题,
DMA速度应该也是由系统时钟决定,
所以问软件搬数据还是DMA搬数据快?

使用特权

评论回复
6
changle11sdo5|  楼主 | 2017-9-17 16:52 | 只看该作者
hanzhen654 发表于 2017-9-17 14:39
f4应该做不到这么快吧。

也有可能行,DMA利用ADC采样时的3个时钟搬出ADC值寄存器的数据,

只不过这么小的时间不好测试是否靠谱

使用特权

评论回复
7
changle11sdo5|  楼主 | 2017-9-17 16:53 | 只看该作者
mmuuss586 发表于 2017-9-17 16:27
多通道交叉采样也不错;

不考虑多ADC模块交替采集提高采样率的方法

使用特权

评论回复
8
sonicll| | 2017-9-18 09:16 | 只看该作者
F4可以到2.4MSps的,我用F407 AD采样带DMA,然后FFT,按照2.4M采样速率计算信号频率,与实际输入信号频率是一致的

使用特权

评论回复
9
feelhyq| | 2017-9-18 09:44 | 只看该作者
aozima 发表于 2017-9-17 14:30
速度由外设决定,但DMA可以做到接近0延时。
且使用DMA时,CPU可以去做别的,比如示波器的UI显示和数据处理 ...

使用特权

评论回复
10
feelhyq| | 2017-9-18 09:50 | 只看该作者
ADC一次转换时间最小为3+12 = 15个时钟周期,最大为480+12 = 492个时钟周期。ADC的一个时钟周期计算如下:APB2频率 / ADC分频,举个例子,如果APB2时钟为 84MHz,ADC分频为2分频,那么ADC的频率为42MHz,一个时钟周期为0.023us, 因此最小转换时间为 15时钟周期*1us = 0.345us(2.9MHz), 最大492us(88.5KHz)。

使用特权

评论回复
11
mmuuss586| | 2017-9-18 09:59 | 只看该作者
changle11sdo5 发表于 2017-9-17 16:53
不考虑多ADC模块交替采集提高采样率的方法

那最快只能这么快,实际还要打一些折扣;

使用特权

评论回复
12
xiaox314| | 2017-9-18 20:38 | 只看该作者
差不多可以的,3个周期的采样周期,满频跑,采集端加个跟随,数值没问题

使用特权

评论回复
13
whtwhtw| | 2017-9-19 16:02 | 只看该作者
对的,需要加跟随

使用特权

评论回复
14
Ryze| | 2017-9-19 17:13 | 只看该作者
采集端加跟随是什么目的呢??

使用特权

评论回复
15
hanzhen654| | 2017-9-19 21:53 | 只看该作者
changle11sdo5 发表于 2017-9-17 16:52
也有可能行,DMA利用ADC采样时的3个时钟搬出ADC值寄存器的数据,

只不过这么小的时间不好测试是否靠谱 ...

那你试一下,多尝试几次,不行用F7试试。

使用特权

评论回复
16
huangqi412| | 2017-9-20 11:21 | 只看该作者
F3速度5M的飘过, 显然是DMA一次采集指定长度,比如10K,不能无限采集是因为没法实时处理或者传出去(F4有高速USB,可以实时传出去,也就可以无限采集).       DMA会占总线带宽,你2.4M假设毛估占3M,你单片机运行假设50M(难道你买个F4只运行10M?),  才占了 3/50=6%. CPU占用约等于0。

使用特权

评论回复
发新帖 本帖赏金 6.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

697

帖子

5

粉丝