OpenEdv-开源电子网

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

以400KHz的频率中断采集10位的ADC数据可行吗?

[复制链接]

18

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2011-10-27
在线时间
0 小时
发表于 2012-2-4 13:54:53 | 显示全部楼层 |阅读模式

问题是这样的,我有一个ADC外部采样时钟是400kHz,我想把这个时钟送给单片机的外部中断,这样一个采样时钟,就读一组10位数据,这样做可行吗?

这样做单片机肯定频繁的进出中断,这段时间肯定做不了什么事情。但是采集的时间很短,也就0.1秒,所以用户也可以接受。大家认为这么做可以吗?还有没有更好的替代方法?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2011-6-17
在线时间
15 小时
发表于 2012-2-4 15:12:43 | 显示全部楼层
回复 支持 反对

使用道具 举报

18

主题

82

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2011-10-27
在线时间
0 小时
 楼主| 发表于 2012-2-4 15:39:47 | 显示全部楼层
ADC的芯片速度足够快,我是担心单片机这块速度不够,就用STM32啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-2-4 22:32:06 | 显示全部楼层
回复【3楼】fengye1966:
---------------------------------
400K的中断太频繁了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

1436

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2209
金钱
2209
注册时间
2010-12-16
在线时间
190 小时
发表于 2012-2-5 08:06:42 | 显示全部楼层
如果在采集期间不怎么干别的要求高的事,stm32的中断是可以完成这个任务的。
对于这种接口转换,用CPLD/FPGA做缓冲是最合适的,如果硬要用stm32做,使用外部触发DMA也可以省CPU时间,不过RAM要够才行。
或者使用循环DMA,可以省RAM,不过CPU要过一段时间处理一下采集的数据,处理时间最好小于DMA缓冲的时间的一半,这适合于对数据进行简单的处理,比如加权平均等操作,这种方法CPU使用率比LZ的方案要小,主要节省了中断的出入栈的时间。
如果想更省时间,可以减少循环周期,比如LZ是40k个数据,按照一般的写法是for循环40k次,可以考虑减少for的循环次数,增加单次循环的操作次数,这样可以充分利用M3的三级流水线,如果使用M4还可以调用DSP指令集,缺点是增加代码量。编译器的时间优化的一个措施也是使用这个方法。
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 20:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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