你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【DMA error】STM32F407 DMA出错如何恢复?

[复制链接]
perchperch 提问时间:2014-8-20 22:47 /
首先谢过各位热心的网友~
基本情况是这样的:
1.使用 STM32F407,偶发(很少发生)ADC OVERRUN错误。依据手册说明,在ADC OVERRUN中断函数中进行恢复(重新配置DMA相关stream和ADC),还是无法恢复正常;会连续不断地进入ADC OVERRUN中断。
ADC相关配置为:DMA+ADC, DMA为circul模式、ADC为SCAN模式。 当ADC采集完一组channel之后,产生DMA中断。由定时器触发(频率 20kHz)ADC1进行一轮采样转换,并产生DMA2 stream中断;由定时器触发(频率 5kHz)ADC2进行一轮采样转换,并产生DMA2 stream中断;
2.在DMA2中,还挂了SPI的Tx和Rx。SPI为master模式。1.5ms为周期传输1008个字节,时钟为10MHz。
当ADC OVERRUN故障出现时,ADC相关的DMA stream 的相关状态都正常; SPI RX对应的DMA2 stream2出现错误状态TEIF
现在怀疑是不是DMA2总线负荷太大,导致DMA出错了。尝试了重新配置DMA2和SPI、ADC,也还是无法恢复正常。
各位网友有没有遇到过类似情况的?不吝赐教~
收藏 评论5 发布时间:2014-8-20 22:47

举报

5个回答
霹雳之火 回答时间:2014-8-21 08:38:40

RE:【DMA error】STM32F407 DMA出错如何恢复?

楼主把相关代码也贴出来,等待大神来回答。
回答时间:2014-8-21 10:23:35

RE:【DMA error】STM32F407 DMA出错如何恢复?

这样可以用排除法了。一个一个的开,看看还出不出这个问题,最好是把代码贴出来。好分析。
perchperch 回答时间:2014-8-21 13:48:34

回复:【DMA error】STM32F407 DMA出错如何恢复?

回复第 3 楼 于2014-08-21 10:23:35发表:
这样可以用排除法了。一个一个的开,看看还出不出这个问题,最好是把代码贴出来。好分析。
目前看来,出故障的时候都会发生spi1 rx dma stream出现teif错误。关闭了spi之后,故障没看到过发生的现象。但是也不能确定,时候就不会发生adc overrun故障了。这个故障发生时,adc就完全挂了。
 
 
perchperch 回答时间:2014-8-21 22:34:07

RE:【DMA error】STM32F407 DMA出错如何恢复?

怀疑是DMA总线负荷方面的问题,做了加压测试。
目前可以100%复现故障了。
测试方法是:
提高SPI的发送波特率到42MHz,每200us传输1008个字节。
这样的话,DMA2会很“忙”。
最后的问题还在于,DMA2出错了之后无法恢复正常工作。哪怕关闭了DMA2的时钟,全部重新配置也不行。。。
perchperch 回答时间:2014-8-21 22:35:05

回复:【DMA error】STM32F407 DMA出错如何恢复?

回复第 2 楼 于2014-08-21 08:38:40发表:
楼主把相关代码也贴出来,等待大神来回答。
 
 
 
贴代码不方便啊,都在公司的电脑里。
 

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版