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.

[参考译文] AM6421:USB DMA 在 EPRST 之后挂起

Guru**** 2680595 points

Other Parts Discussed in Thread: AM6421

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1597601/am6421-usb-dma-hangs-after-eprst

器件型号: AM6421

您好、

我正在使用 am6421 为 USB 设备开发批量通信。
 当传输正在进行中且 EP_STS 寄存器中的 DBUSY 状态设置时、我尝试通过写入 EP_CMD 寄存器中的 S/PRST/字 段来取消发送到 OUT 端点的 DMA 传输请求。
执行上述过程之后、发起 DMA 请求不会开始传输。
这种行为是已知的吗?
此外、是否有任何权变措施?

此致、

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

    您好、

    能否请在此处指定什么是用例?

    另外、在再次开始 DMA 传输之前、您必须等待 EpRST 位再次变为 0。 复位结束后、您还需要设置 TRADDR。

    此致、

    Tushar

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

    尊敬的 Tushar:

    感谢您的答复。

    我使用的是最大数据包大小为 512 字节的批量输出端点。
    在通信期间、主机端会发生某种错误、并发送清除的功能请求。 作为响应、器件需要清除失速条件、同时还会执行端点复位(EPRST/)操作。

    此后、即使主机在器件启动 DMA 请求后发送出数据包、DMA 也不再正常运行。

    另外、在再次开始 DMA 传输之前、您必须等待 EPRST 位再次变为 0。 重置结束后、您还需要设置 TRADDR。

    我们的实施中已经处理了这一问题。

    此致、

    本笃史

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

    尊敬的 Tushar:

    很抱歉、但我们发现软件实现错误阻止了 TRADDR 的更新。
    感谢您的帮助。

    此致、

    本笃史

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

    嗨、Motofumi、

    感谢您的更新。 很高兴为您提供Slight smile

    此致、

    Tushar