[研电赛技术支持]

SDIO+DMA传输数据会影响SIP4+DMA传输数据,怎么解决?

[复制链接]
514|11
手机看帖
扫描二维码
随时随地手机跟帖
叽叽歪歪7788|  楼主 | 2024-11-14 13:34 | 显示全部楼层 |阅读模式
本帖最后由 叽叽歪歪7788 于 2024-11-14 13:36 编辑

问题描述:GD32F407II使用SIP4全双工+DMA1通道4作为从机只发送数据,同时SDIO+DMA通道3向SD卡写入数据,程序在运行过程中,只要SDIO开启了DMA就会导致SPI4发送数据出现数据丢失。
C:\Users\admim\Desktop\01\1.png
C:\Users\admim\Desktop\01\.2.png

应用图

应用图

所使用的DMA通道

所使用的DMA通道

使用特权

评论回复
onlycook| | 2024-11-14 15:03 | 显示全部楼层
检查DMA1通道3(用于SDIO)和DMA1通道4(用于SPI4)的优先级设置。如果SDIO的DMA优先级高于SPI4的DMA优先级,当SDIO活动频繁时,可能会抢占SPI4的DMA资源,导致SPI4的数据传输被延迟或中断。

使用特权

评论回复
laocuo1142| | 2024-11-14 16:36 | 显示全部楼层
调整DMA优先级,使SPI4的DMA能够有足够的资源来及时传输数据。

使用特权

评论回复
flycamelaaa| | 2024-11-14 17:06 | 显示全部楼层
检查SPI4和SDIO的中断处理函数,它们是否能够正确处理中断,并且没有导致优先级反转或死锁的情况。

使用特权

评论回复
评论
叽叽歪歪7788 2024-11-19 13:32 回复TA
SPI4异常停止,卡在TBE=0,也就是发送缓冲区不为空 
powerantone| | 2024-11-14 18:26 | 显示全部楼层
减少中断的使用,或者优化中断处理代码

使用特权

评论回复
jcky001| | 2024-11-14 19:49 | 显示全部楼层
使用调试器逐步跟踪SPI4和SDIO的DMA传输过程,观察是否有异常行为。

使用特权

评论回复
probedog| | 2024-11-14 20:00 | 显示全部楼层
可能是总线冲突

使用特权

评论回复
classroom| | 2024-11-14 21:12 | 显示全部楼层
检查SPI4和SDIO的引脚连接,没有短路或断路问题。

使用特权

评论回复
两只袜子| | 2024-11-14 22:00 | 显示全部楼层
换SPI4和SDIO的外设或GD32F407II芯片

使用特权

评论回复
叽叽歪歪7788|  楼主 | 2024-11-19 13:30 | 显示全部楼层

如果是走线冲突,要怎么解?

使用特权

评论回复
stormwind123| | 2024-11-21 19:26 | 显示全部楼层
将SPI4和SDIO的DMA传输配置为全双工和块传输模式看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝