TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C SSI 接收DMA 接收完成中断 触发时机

麻烦请教大家一个关于SSI 接收DMA 接收中断 触发时机的问题

应用背景

使用TI TM4C1294 SSI DMA进行报文接受。

DMA 配置如下 :

ROM_uDMAChannelTransferSet(UDMA_CHANNEL_SSI0RX | UDMA_PRI_SELECT,
                                                             UDMA_MODE_BASIC,
                                                             (void *)(SSI0_BASE + SSI_O_DR),
                                                             g_ui8RxBuf, sizeof(g_ui8RxBuf));

HWREG(SSI0_BASE + SSI_O_IM) |= SSI_IM_DMATXIM | SSI_IM_DMARXIM;  //使能DMA接收发送完成终端

我的问题如下:

当对端有数据发给TM4C 的SPI接受,但发送的数据长度小于sizeof(g_ui8RxBuf),麻烦问一下在接受完对端发送

的数据后是否能产生DMA接受完成中断SSI_MIS_DMARXMIS?

如果可以,是不是意味着如果我使用了SSI DMA接受数据,那么只需要在SSI 的终端处理函数中 处理SSI_MIS_DMARXMIS

这个中断,就可以完成接受数据的任务?

多谢

xyz549040622:

在使能μDMA操作后,SSI模块在接收FIFO或发送FIFO可以传输数据时向接收或发送通道产生μDMA请求。对于接收通道,只要接收 FIFO中有数据,就会发出单次传输请求。如果接收 FIFO 中的数据是 4 个或者更多,就会发出多个连续传输请求。对于发送通道,只要发送 FIFO 中存在一个空位,单次传输请求就会发出。如果发送 FIFO 中的空位有 4 个或者更多,就会发出多个连续传输请求。

这是手册中说的。即使你FIFO中的数据不满,也会触发传输。但是不会满足DMA接收完成中断的。

yihui sun:

回复 xyz549040622:

这是手册中说的。即使你FIFO中的数据不满,也会触发传输。但是不会满足DMA接收完成中断的。 

您好,如果这时没有DMA的接受完成中断,那么我们怎么处理DMA已经接收的数据呢?

谢谢

xyz549040622:

回复 yihui sun:

DMA接收到后你存到数组中,想怎么处理就怎么处理。

赞(0)
未经允许不得转载:TI中文支持网 » TM4C SSI 接收DMA 接收完成中断 触发时机
分享到: 更多 (0)