[STM32H7] SPI DMA模式下收发不同步,数据偏移一位

[复制链接]
626|21
Clyde011 发表于 2025-10-11 07:21 | 显示全部楼层 |阅读模式
做高速SPI双向通信时,发现DMA模式下收发对不上位,像是对齐错了。单步模式没问题。怀疑是DMA请求触发点或者FIFO阈值设置问题。
 楼主| Clyde011 发表于 2025-10-11 07:23 | 显示全部楼层
看下SPI_CR2寄存器的FRXTH设置,很关键。
公羊子丹 发表于 2025-10-11 07:24 | 显示全部楼层
H7的SPI外设有点复杂,DMA要同步配置。
周半梅 发表于 2025-10-11 07:25 | 显示全部楼层
我以前遇到是MISO延迟半个时钟。
帛灿灿 发表于 2025-10-11 07:26 | 显示全部楼层
FIFO阈值要配合数据宽度一起改。
童雨竹 发表于 2025-10-11 07:27 | 显示全部楼层
你可以试下禁用NSS硬件管理。
万图 发表于 2025-10-11 07:29 | 显示全部楼层
是不是主从反了?H7会自动延迟半拍。
Wordsworth 发表于 2025-10-11 07:30 | 显示全部楼层
我建议抓SPI波形确认CS信号 timing。
Bblythe 发表于 2025-10-11 07:31 | 显示全部楼层
有时候Tx DMA先启动会造成错位。
Pulitzer 发表于 2025-10-11 07:32 | 显示全部楼层
Cube默认的DMA优先级也得调高。
Uriah 发表于 2025-10-11 07:33 | 显示全部楼层
我后来改成Polling模式验证同步才发现问题。
probedog 发表于 2025-10-11 15:44 | 显示全部楼层
DMA请求触发点估计不匹配。
stormwind123 发表于 2025-10-11 16:45 | 显示全部楼层
SPI的DMA请求可能在数据未完全准备好时触发,导致发送/接收的数据位数不对齐。
七毛钱 发表于 2025-10-11 16:45 | 显示全部楼层
FIFO阈值设置可能不合理。
内政奇才 发表于 2025-10-11 17:46 | 显示全部楼层
SPI时序配置有误?
海滨消消 发表于 2025-10-11 19:47 | 显示全部楼层
是不是DMA传输长度不匹配?
豌豆爹 发表于 2025-10-11 19:48 | 显示全部楼层
在高速通信中,DMA或SPI中断处理延迟可能导致数据错位
海滨消消 发表于 2025-10-11 20:49 | 显示全部楼层
将发送和接收的DMA流配置为双缓冲模式。
豌豆爹 发表于 2025-10-11 20:50 | 显示全部楼层
配置DMA双缓冲。
麻花油条 发表于 2025-10-11 22:50 | 显示全部楼层
用逻辑分析仪抓取信号,直接观察数据对齐情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

6164

帖子

0

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