你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
同一个DMA的不同通道之间的数据会有冲突?
[复制链接]
yangwenchao2000
提问时间:2016-12-7 11:49 /
问题是:单独用STM32F373 的DMA2_CH3由内存向DAC1_CH1传数据,生成约13KHz正弦信号,没有问题。另外单独用DMA2_CH4将SDADC2转换结果通过DMA2_CH4送到内存,50KHz采样速率。也没有问题。上述两项工作同时做,DAC1_CH1出来的几乎是杂波。尝试将DAC1_CH1生成的正弦信号频率降低至2.5KHz,同时将SDADC2采样速率降低至12.5KHz,无济于事。
赞
0
收藏
1
评论
4
分享
发布时间:2016-12-7 11:49
举报
请先
登录
后回复
4个回答
yhyeefocus
回答时间:2016-12-7 12:25:16
a0a.1 32b0c
应该不会吧
赞
0
评论
回复
支持
反对
小小超
回答时间:2016-12-7 13:36:53
a0a.1 32b0c
程序有问题吧。。。
赞
0
评论
回复
支持
反对
yangwenchao2000
回答时间:2016-12-7 15:56:43
a0a.1 32b0c
ts2000 发表于 2016-12-7 13:36
程序有问题吧。。。
确实是程序的问题,程序中开启了DMA2_CH4传输完成中断,中断中释放了执行FFT信号量,执行了FFT后紧跟着执行了求模函数arm_cmplx_mag_f32,已经查明就是由于执行了这个求模函数导致生成正弦信号失效。求模函数中执行了大量的乘法及开平方计算。估计由于计算量比较大,占用了系统总线带宽。
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
结贴奖励
查看全部评分
赞
0
评论
回复
支持
反对
yangwenchao2000
回答时间:2016-12-7 17:59:14
a0a.1 32b0c
又发现执行FFT运算(arm_cfft_radix4_f32函数)会导致DMA2_CH4数据传输错误。
DMA传输时要让出一半的系统总线带宽给CPU( Cortex-M4 with FPU core),但是也不对啊。SDADC以50KHz速率采样,占用的带宽不会超过1MHz。100点的正弦序列生成13KHz的正弦信号也就占用1.3MHz带宽。系统总线带宽有72MHz,系统总线是32位宽。怎么算这两个DMA通道都不会占用一半的系统总线带宽。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
确实是程序的问题,程序中开启了DMA2_CH4传输完成中断,中断中释放了执行FFT信号量,执行了FFT后紧跟着执行了求模函数arm_cmplx_mag_f32,已经查明就是由于执行了这个求模函数导致生成正弦信号失效。求模函数中执行了大量的乘法及开平方计算。估计由于计算量比较大,占用了系统总线带宽。
评分
查看全部评分
DMA传输时要让出一半的系统总线带宽给CPU( Cortex-M4 with FPU core),但是也不对啊。SDADC以50KHz速率采样,占用的带宽不会超过1MHz。100点的正弦序列生成13KHz的正弦信号也就占用1.3MHz带宽。系统总线带宽有72MHz,系统总线是32位宽。怎么算这两个DMA通道都不会占用一半的系统总线带宽。