工具与软件:
尊敬的 专家:
当使用 mcspi DMA 模式与外设通信时、如果 传输大小过大、则会出现问题。
设置大小= 128、正常。
设置 size = 4096、MCSPI_TRANSFORIT ()(无返回)。 调试并发现仅触发了 MCSPI_udmaIsrTx ()。
导入示例工程"mcspi_loopback_dma"并将 APP_MCSPI_MSGSIZE 修改为4096可重复出现问题。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
尊敬的 专家:
当使用 mcspi DMA 模式与外设通信时、如果 传输大小过大、则会出现问题。
设置大小= 128、正常。
设置 size = 4096、MCSPI_TRANSFORIT ()(无返回)。 调试并发现仅触发了 MCSPI_udmaIsrTx ()。
导入示例工程"mcspi_loopback_dma"并将 APP_MCSPI_MSGSIZE 修改为4096可重复出现问题。
您好、
我能够 重现 此问题、发现如果我们将 DMA 大小更改为4096字节、则不会进行 DMA 传输。
我需要进一步调试问题.
我的建议是现在将 DMA 事务拆分两次。
例如、您需要传输4096*2字节、然后使用不同的源缓冲区调用两次 MCSPI 传输。
根据 SOC 级别、MCSPI 可以支持在 X - F FIFO 模式下传输到16 * 2048字节。 这样、发送多于4096字节就没问题。
我觉得这可能是软件方面的问题,需要进一步调试.
请查看下面的 TRM。

您能否确认要从 DMA 传输多少字节?
此致、
Anil。
您好、
[报价 userid="525901" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1469981/mcu-plus-sdk-am243x-spi-dma-fail-when-transfer-large-size/5649307 #5649307"]我已经在设置中尝试 完成具有 X 和 Y 参数配置的4096字节、但 DMA 事务仍未完成。
所以、我们需要进一步调试、到目前为止、我的建议是请使用2048字节进行两次触发、以进行4096字节传输。
我可以在内部提出错误以在 MCU+SDK 中修复此问题。
[报价]如上所述、我 在内部提出了该错误以在 MCU+SDK 中修复这些问题。
通常、这些版本可能需要3个月的时间。 同时,请尝试采用上述解决方案(拆分两次转移)并继续。
我也可以在我这边调试这个问题。 如果我有任何解决方案、我可以提供解决方案。
此致、
Anil。