stm32 DMA干扰中断的严重问题!

[复制链接]
12150|15
 楼主| lxwxgd 发表于 2010-6-4 11:56 | 显示全部楼层 |阅读模式
各位大侠,不知有人碰到过没有,在打开ADC的DMA操作后会严重干扰到中断的问题。
用的芯片是STM32f103,我在调步进电机和ADC。步进电机用定时中断直接驱动,ADC用DMA直接操作,两个模块单独调都没问题,可是只要同时打开,步进电机就无**常转动。只要把DMA关掉就正常了。郁闷中。。。。。是不是STM32的DMA设计有问题,有没有什么好的解决方法。
原野之狼 发表于 2010-6-4 12:58 | 显示全部楼层
随便说说 仅供参考
用过别的片子 DMA时数据总线会被占用的 程序假死中
对于STM32 没用过 不懂 请看数据手册
香水城 发表于 2010-6-4 13:24 | 显示全部楼层
DMA的工作原理是挪用MCU占用总线的时间,临时接管系统总线。

在DMA模块占用总线的时候,如果CPU也需要访问系统总线,CPU就会临时避让,等DMA操作周期结束在继续运行。

你的问题恰好出在这里,估计你的定时中断操作已经基本榨干了CPU的所有时间,或者定时中断内的操作对CPU速度的要求太高。没办法,你必须降低定时中断内的操作对CPU速度的要求。
 楼主| lxwxgd 发表于 2010-6-4 14:56 | 显示全部楼层
那该怎么办,看来AD采样只好不用DMA了。
香水城 发表于 2010-6-4 15:02 | 显示全部楼层
可以考虑使用DMA驱动步进电机。
 楼主| lxwxgd 发表于 2010-6-4 17:10 | 显示全部楼层
发现一个问题,当DMA打开时,TIM1的定时脉冲被放大了10倍,原来两个脉冲间隔为1.5ms,打开DMA操作后两个脉冲间隔变为15ms。在MDK中调试时暂时关闭DMA也没有任何效果。
 楼主| lxwxgd 发表于 2010-6-4 17:21 | 显示全部楼层
而且此后无论关闭ADC还是DMA,定时器的脉冲间隔都无法变回原来1.5ms,只有修改TIM1-PSC的值才有效。我原来的TIM1-PSC值为0x3f,现在要设置为0xa才行,现在初步怀疑是在初始化DMA操作时影响了Tim1的时钟源,否则不至于我在MDK中关闭了DMA,中断还恢复不了原来的脉冲间隔。
 楼主| lxwxgd 发表于 2010-6-4 17:45 | 显示全部楼层
不知大家遇见过上述情况没有。事实上我在同时DMA后Tim1中断后,只好把Tim1的预分频值缩小10后发现中断脉冲又恢复到原来的宽度,说明我的定时中断操作并没有把CPU或总线占死,否则的话应该无论怎么调整定时器定时都不应该能够缩小。
香水城 发表于 2010-6-4 18:01 | 显示全部楼层
不知大家遇见过上述情况没有。事实上我在同时DMA后Tim1中断后,只好把Tim1的预分频值缩小10后发现中断脉冲又恢复到原来的宽度,说明我的定时中断操作并没有把CPU或总线占死,否则的话应该无论怎么调整定时器定时都不 ...
lxwxgd 发表于 2010-6-4 17:45


这样的话,还是要检查一下程序中哪里有问题。
gxgclg 发表于 2010-6-5 09:16 | 显示全部楼层
AD采样可以考虑不用DMA模式
JohnsonJiang 发表于 2013-10-29 17:59 | 显示全部楼层
时隔两年,我遇到了与楼主类似的问题,我是在STM32中跑UCOS,加上ADC+DMA后UCOS跑死,无法任务调度,关闭DMA后一切正常,不知道楼主两年后有没有解决此问题!
wyq200704 发表于 2013-12-27 23:09 | 显示全部楼层
STM32F1系列的DMA本来就是Lite轻量级的DMA,采用的steal模式,并不会完全占用系统总线,但会导致cpu执行速度减慢。使用dma肯定要考虑这个问题,dma传输数据的速度不能太高,F1系列有个专门的dma应用手册讲这方面的内容。如果对dma要求较高,可以看看F2系列,对dma有很大的改进。
e99996 发表于 2015-4-22 21:45 | 显示全部楼层
时隔两年了,我遇到了和大家类似的问题,可是关于DMA的传输速度影响CPU运行的标准是多少?
周董 发表于 2015-4-22 22:10 | 显示全部楼层
我是在STM32中跑UCOS也遇到过ADC的DMA操作相关的问题。
kent8013 发表于 2015-7-20 15:46 | 显示全部楼层
我也遇到DMA ,干扰中断问题,不知道有什么方法解决没有
643757107 发表于 2015-7-22 21:27 来自手机 | 显示全部楼层
如果对dma要求较高,可以看看F2系列,对dma有很大的改进。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部