野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14888|回复: 3

stm32 ADC+DMA采样速度疑问。

[复制链接]
发表于 2014-12-17 23:47:00 | 显示全部楼层 |阅读模式
新人新帖。先谢过各位。
我这个程序的目的:用STM32的ADC以最快速度采集(连续采集模式)3000个数据。同时通过DMA将数据传到存储器(内存地址递增模式,并开辟相应大小数据空间。)完成上述工作之后,通过串口将猜到的3000个数据传输到上位机。
出现的问题:主要是前两步,速度太慢。采集3000个点传到存储器一共需要20秒的样子(粗略估计)。
我的计算:我用内部时钟,9倍频,系统时钟72MHz。ADC时钟由系统时钟8分频得来,9MHz。采样时间1.5个时钟周期。这样来算采集一个数据时间1.56us。3000个点不到5个毫秒。算上DMA传输时间(DMA时钟为系统时钟)最多也不会超过1S钟啊。为什么我采样需要那么长的时间??
如果有用过这种方式采集数据的,最快速度能到多少??程序整体发不上来,我写的不够精简,有点大。我把ADC程序和主函数程序放上来,请大家指教。另:我的程序是根据野火ADC(DMA)程序更改而来。主函数只做采样和数据传输,不干别的活。

部分程序.zip

3.01 KB, 下载次数: 30

ADC+主函数

回复

使用道具 举报

发表于 2014-12-18 09:20:36 | 显示全部楼层
官方给出的数据是1MHz的采样率,如果是2个adc交叉采集可以达到2MHz
回复 支持 反对

使用道具 举报

发表于 2014-12-18 21:34:06 | 显示全部楼层
感觉采样时间是不是错了 ?
我用的STM32F103VET6   用的采样时间是55.5个周期  
我就是采样的时候  不是很准, 老是跳  估计没有加旁路电容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-19 18:49:04 | 显示全部楼层
我程序上有错误,逻辑不太对,经过改动之后,ADC+DMA单次时间在3us。但感觉还是跟理想状态有差距。还在继续找原因,
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 03:54 , Processed in 0.031969 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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