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.

[参考译文] AM3358:在断开 USB 主机后将数据发送到端点

Guru**** 2476265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1462849/am3358-send-data-to-end-point-after-usb-host-detached

器件型号:AM3358

工具/软件:Starterware

客户有一个奇怪的问题、当 USB 主机分离时、向端点 FIFO 写入一个数据包、它是否会产生异常中断、如超时、NAK 等?

他们在使用 Starterware、程序通过他们自己,只需要知道的机制来修复软件错误售后.

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

    尊敬的 Tony:

    我假设 AM335x USB 处于主机模式?

    这个问题的原因是什么? 要确定 USB 设备是否已断开? 或任何其他原因?

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

    AM335x USB 是一种设备、它在分离后发送一帧数据、使其保持空闲状态、在重新连接后无法发送数据。  

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

    如果 Starterware USB 驱动程序使用中断模式、我认为 USB 控制器在断开时会生成断开中断。

    如果驱动程序不使用中断模式、代码应检查 MUSB DEVCTL 寄存器、位3-4 = 0x11表示 VBUS 存在、0x0表示 VBUS 缺失(分离)、则软件应清理以进行下一次连接。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 Starterware USB 驱动程序使用中断模式、我相信 USB 控制器在断开连接时会产生断开连接中断。

    是的、存在断开中断。 但其应用在导致该问题的断开连接后发送帧数据。

    如果断开连接后的额外帧数据可以生成中断?

    客户跟踪数据是否已写入端点、根据 TRM、即使已断开连接、它也应从端点发送、然后应生成 NAK、TXRDY 或超时的一些中断、但未观察到该中断。

    客户希望了解实施错误修复的机制。

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

    尊敬的 Tony:

    在这种情况下、不会因为传输失败而产生任何中断。 并且没有任何其他状态寄存器可指示主机已消失。 我能想到的唯一解决方案是使用断开中断来清理 SW 状态机。