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.

[参考译文] SPI-AM243X:传输大容量4096时 MCU-PLUS-SDK DMA 失败

Guru**** 2465220 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/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-4096

器件型号:MCU-PLUS-SDK AM243X

工具与软件:

尊敬的 专家:

   当使用 mcspi DMA 模式与外设通信时、如果 传输大小过大、则会出现问题。

     设置大小= 128、正常。

     设置 size = 4096、MCSPI_TRANSFORIT ()(无返回)。 调试并发现仅触发了 MCSPI_udmaIsrTx ()。

   导入示例工程"mcspi_loopback_dma"并将 APP_MCSPI_MSGSIZE 修改为4096可重复出现问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我正在查看您的问题、您可能希望在一两天内得到回复。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我能够 重现 此问题、发现如果我们将 DMA 大小更改为4096字节、则不会进行 DMA 传输。

    我需要进一步调试问题.

    我的建议是现在将 DMA 事务拆分两次。

    例如、您需要传输4096*2字节、然后使用不同的源缓冲区调用两次 MCSPI 传输。

    根据 SOC 级别、MCSPI 可以支持在 X - F FIFO 模式下传输到16 * 2048字节。 这样、发送多于4096字节就没问题。

    我觉得这可能是软件方面的问题,需要进一步调试.

    请查看下面的 TRM。

    您能否确认要从 DMA 传输多少字节?

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anil:

       我们以前曾尝试过将4096拆分为2*2048、但测试是有效的。 但此问题使我们担心是否存在一些未知的 DMA 故障、从而导致压力测试或仍会触发问题的特定场景。 因此、我们希望能够澄清这一问题的原因。 目前我们使用的是轮询模式、但我们希望 DMA 模式安全、这样我们就可以随时切换到 DMA 模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、梁罗

    我理解您的担忧。

    但是、这个带有 DMA 驱动程序的 MCSPI 已经成熟、大多数客户都在使用它。

    遗憾的是、大多数用户使用的不超过4096字节。

    我的建议是、请触发 DMA 两次以传输4096字节、从而启用 DMA。

    我需要进一步调试为什么在4096字节有限制。 获得解决方案后、将在此处更新。  

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anil:

    是否有任何更新? 预计该问题将很快得到确认。

    尽管轮询/中断模式 符合 我们的应用、 并且我们也在进行2048字节的 DMA 应力测试、因为它可以与 不同应用的系统负载添加一起使用。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已经在设置中尝试 完成具有 X 和 Y 参数配置的4096字节、但 DMA 事务仍未完成。

    所以、我们需要进一步调试、到目前为止、我的建议是请使用2048字节进行两次触发、以进行4096字节传输。

    我可以在内部提出错误以在 MCU+SDK 中修复此问题。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    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。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、  我们将尝试使用2048字节、希望尽快确定问题的根本原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、当然可以使用上述解决方案。

    一旦在 MCU+SDK 中修复状态、我将会更新该状态。

    此致、

    Anil。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、未来的读者、

    我将关闭此线程、并提出错误以在 MCU+SDK 中修复这些问题。

    因此,如果你想使用4096字节,将 DMA TX 拆分两次,暂时解决这个问题。

    此致、

    Anil。