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

STM32H743 SPI从进入DMA完成中断时间疑问

[复制链接]
zhaaang 提问时间:2024-5-8 19:11 / 未解决

743 单工只接收SPI做从接收AD7768非标准SPI口数据时发现,DMA接收固定长度数据后,并未立即进入DMA传输完成中断,而是在SPI的CS拉高后才进入了DMA传输完成中断。从现象看DMA传输完成中断不是以指定数据传输完成就可以进中断?有好心人可以指路下相关资料么?

补充波形和代码,还请帮看下是测量逻辑不对?

主机输出非标准SPI,黄色CS,蓝色MOSI,红色SCK。DMA接收长度为32字,理论蓝色数据传输完进中断

Tek021.png

批注2024-05-09161236.png

DMA中断内控制GPIO引脚,红色波形为GPIO,GPIO置高时远在DMA传输完成之后。

Tek019.pngTek020.png

收藏 评论6 发布时间:2024-5-8 19:11

举报

6个回答
STMCU-管管 回答时间:2024-5-9 08:32:31
看看参考手册里边对于的配置
butterflyspring 回答时间:2024-5-9 09:46:42
DMA 和 SPI 是两个不同的外设。 DMA 基于SPI 的request 给与响应,但是这个request 没有 CS信号。

不过DMA的响应和搬运完成再到产生中断是需要一定时间的。
也有可能延迟后恰巧和CS 上升的时间差不多。

xmshao 回答时间:2024-5-9 10:10:26
DMA传输完成中断肯定是当DMA完成指定数据个数的传输后就发生的,跟SPI的CS是否拉高没有关系。


如果SPI的CS不拉高 难道就不发生DMA传输完成中断了?估计是你测量或评估上的误会。
zhaaang 回答时间:2024-5-9 16:30:49

butterflyspring 发表于 2024-5-9 09:46
DMA 和 SPI 是两个不同的外设。 DMA 基于SPI 的request 给与响应,但是这个request 没有 CS信号。</p>
<p>不过DMA ...

您好,我补充波形和代码,还请帮看下是我哪里的逻辑不对么?谢谢

zhaaang 回答时间:2024-5-9 16:31:05

xmshao 发表于 2024-5-9 10:10
DMA传输完成中断肯定是当DMA完成指定数据个数的传输后就发生的,跟SPI的CS是否拉高没有关系。</p>
<p>

您好,我补充波形和代码,还请帮看下是我哪里的逻辑不对么?谢谢

butterflyspring 回答时间:2024-5-10 17:02:51
从中断服务函数上看,改了库的架构,仅仅判断DMA 完成中断。

不过通常Cube库都是同时使能了DMA的其他中断,尤其是半完成中断。

楼主可以检查一下,如果使能了而没处理的话,那执行起来就会有影响了。


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