Microchip
直播中

李晟才

7年用户 189经验值
私信 关注
[问答]

SPI DMA链接停止

我试图通过DMA进行SPI传输。一旦我有64位数据要传输,我就强制DMA1。此DMA传输完成,但DMA1链接到的DMA0不传输。即使再次设置了用于DMA1的CFORCE,也不会发生额外的DMA传输。为了排除故障,我已经将DMA传输发送到本地缓冲区中,以便我能看到DMA正在工作。有了发布的代码,我不希望SPI部分工作。

回帖(6)

陆欣楠

2020-3-12 09:53:58
你的单元格大小必须是你个人传输的大小,所以只有1字节。您还需要联合注释您的CHSIRQ事件触发器配置。
举报

高媛

2020-3-12 10:12:31
谢谢,我会检查一下。链接DMA通道有什么好处,如果你仍然必须有一个事件来触发每个通道传输。
举报

李缬呓

2020-3-12 10:19:03
谢谢,我会检查一下。链接DMA通道有什么好处,如果你仍然必须有一个事件来触发每个通道传输。你好,好处是延迟。让我举一个例子,我的一个设计是一个需要捕获24兆字节/秒的射频前端。数据通过16位端口到达PIC,并由外部中断之一上的事件计时。我使用两个菊花链的DMA通道来打包128kByte缓冲区,这给了我大约11msec来配置下一个通道传输,但是由于流中没有暂停,所以当一个块完成和当我需要下一个块开始复制之间的延迟是83nsec,或者说大约18co满。重新循环。菊花链确保我永远不会丢失一个样本。
举报

高媛

2020-3-12 10:29:49
谢谢,我会检查一下。链接DMA通道有什么好处,如果你仍然必须有一个事件来触发每个通道传输。你好,好处是延迟。让我举一个例子,我的一个设计是一个需要捕获24兆字节/秒的射频前端。数据通过16位端口到达PIC,并由外部中断之一上的事件计时。我使用两个菊花链的DMA通道来打包128kByte缓冲区,这给了我大约11msec来配置下一个通道传输,但是由于流中没有暂停,所以当一个块完成和当我需要下一个块开始复制之间的延迟是83nsec,或者说大约18co满。重新循环。菊花链确保我永远不会失去一个样本。谢谢您。在我尝试用DMA进行SPI的情况下,使用链接还是应该设置两个DMA通道,TX和RX,并分别将它们设置为在SPI TX Complete和SPI RX Complete向量上传输?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分