Other Parts Discussed in Thread: SYSCONFIG
器件型号: TMS320F28P550SJ
主题: SysConfig 中讨论的其他器件
尊敬的专家:
我的客户使用 SPI(主器件)+ DMA。 其中、TXFFST < TXFFIL (0x1) 会触发 SPITXDMA、DMA 将数据从缓冲区移动到 TXFIFO。 Trnasfer 大小设置为 128。
此设计为当 FIFO 为空 (<1) 时、触发 DMA 将在 TX FIFO 中移动数据、然后 TXFFST=1。 SPI 倒装数据、TXFFST=0、再次触发 DMA。 这会重复进行、直到 DMA 在通道停止时移动 128 个数据。
问题是第一个 SPITXDMA 未被触发。 初始化 SPI 和 DMA 后、我的状态如下所示:
- SPI TX FIFO 和 TXFFST< TXFFIL 中不包含任何内容。

- DMA 已启动、RUNSTS=1、但未设置 PERINTFLG。

- 接下来、向 PERINTFRC 写入 1。 一旦我向它写入 1、DMA 就会被触发、并且它被 SPITXDMA 重复触发、直到它完成 WHO 传输。
这表示未命中 SPITXDMA 的第一个触发。 这里的问题是什么?
我们知道 Ex5_loopback_DMA 可以实现此设计。 但我们需要找到根花瓶、以便客户可以修复自己的代码。
我有客户代码 snipet、并使用以下项目进行了复制。
spi_ex5_loopback_dma_hunkey.zip
该主题提到 SPITXDMA 对边沿敏感、但我找不到更多信息。
webexteams://im?space=c4bf65d0-2477-11e-917e-f308078ad72d&message=c3b76310-76c0-11f1-ace7-4bdfd6559a74