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.

[参考译文] MSP430F6638:PC USB 导致我的器件锁定

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/977418/msp430f6638-pc-usb-causes-my-device-to-lock-up

器件型号:MSP430F6638

重新过帐时、除了新信息、更少的详细信息。

我的器件在 HID 配置中使用 TI USB API。

  • 当器件通过 USB 电缆连接到 PC、并且没有打开可与器件通信的应用程序时、将外设插入 PC 上的任何 USB 端口可能会导致我的项目锁定(大约每十次尝试一次)。
  • 当设备通宵通过 USB 电缆连接到无人值守的 PC、并且没有打开可与设备通信的应用程序时、当我早上返回办公室时、设备将被锁定。
  • 当器件通过 USB 电缆连接到 PC 时、应用程序已打开器件、因此无法用于 PC 上的任何其他应用程序、即使该应用程序未尝试与器件通信、我的器件仍将继续运行 (我的设备在整个周末都保持正常运行)。

有人有任何故障排除的想法吗? 它是否可以与 PC USB 选择性挂起相关、即使它应该被禁用?

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

    您好、Fusillade、

    您能否确保 PC 的所有睡眠状态均已禁用? 此外、从第三点开始、如果您连接到与设备通信的应用程序、则可以连续收集数据。  当您将另一个 USB 设备连接到 PC 时、这会触发该总线上 USB 设备的重新枚举。 我想知道 USB 重新枚举是否会导致您提到的第一个问题。

    BR、
    Leo

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

    在 我72小时后离开之前、昨天关闭了我的 PC 上运行的应用程序(旨在打开端口但不生成任何通信)、没有任何问题。 该器件已锁定。 已检查 Windows 10 Pro /版本2004/内部版本19041.746中的电源设置:

    • 设置/电源和睡眠/睡眠(插入时、PC 在"从不"后进入睡眠状态)
    • 设置/电源和睡眠/其他电源设置/选择或自定义电源计划/更改计划设置/更改高级电源设置/ USB 设置/ USB 选择性挂起设置/禁用
    • 设置/电源和睡眠/其他电源设置/选择或自定义电源计划/更改计划设置/更改高级电源设置/睡眠/睡眠后/从不
    • 设置/电源和睡眠/其他电源设置/选择或自定义电源计划/更改计划设置/更改高级电源设置/睡眠/允许混合睡眠/开启
    • 设置/电源和睡眠/其他电源设置/选择或自定义电源计划/更改计划设置/更改高级电源设置/睡眠/休眠后/从不
    • 设备管理器/USB 输入设备属性/电源管理/允许计算机关闭此设备以节省电源/打开 (上次我检查时已关闭、但已有一段时间)

    根据 USB 输入设备 HID 下的设备管理器设置、电源管理表示它允许计算机关闭此设备以节省电力。 我假设 Windows 会生成一个 USB 事件、以警告器件即将发生什么。 因此、如果 Windows 决定"关闭此器件以节省功耗"、则必须设计 TI USB API 来处理 USB 事件。 这是否是一个 USBVECINT_PWR_VBUSOff 事件?

    您提到了重新枚举。 如果 Windows 选择重新枚举设备会怎样(当我在 PC 上插入和拔下设备时、它可以根据 Wireshark 中生成的数据执行什么操作)? TI USB API 如何处理此事件? 它只是复位(USBVECINT_RSTR) USB 总线吗?

    我假设我的器件在上述情况下无法正确处理 USB 事件。 我只是尝试确定这些事件是什么、以便我可以从那里进行调试。

    谢谢

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

    供参考。 我更改了以下设置并开始了新测试。

    • 设备管理器/USB 输入设备属性/电源管理/允许计算机关闭此设备以节省电源/关闭

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

    更改以下设置后:

    • 设备管理器/USB 输入设备属性/电源管理/允许计算机关闭此设备以节省电源/关闭

    我将设备连接到 PC 48小时、没有任何问题。

    最终测试。 在我的设备由电池供电并将 USB 连接器插入仪器的情况下、我重新启动了 PC。 立即锁定我的设备。

    因此、我遇到的问题似乎是 PC 关闭 USB 端口时出现的问题。 如果是这种情况、TI API 应用程序中的哪个事件会处理此类事件? 这是否是一个 USBVECINT_PWR_VBUSOff 事件?

    谢谢。

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

    您好、Fusillade、

    如果器件锁定、则可能是位于单独微控制器上的固件出现问题、该微控制器提供 USB HID 转 I2C 桥接器。  尽管我们不发布此代码、但我可以告诉您、当我们收到此事件时、我们会关闭时钟-这可能是您看到平台锁定的原因。

    BR、
    Leo

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

    有什么技巧可以解决这个问题?

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

    您好、Fusillade、

    由于我们不发布此代码、最佳解决方案是在设备管理器中关闭 USB 电源管理、以便不会将此事件发送到平台。

    BR、
    Leo

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

    Leo、

    感谢你的帮助。 我将继续处理该问题。 我有一个在同一器件上运行的固件的精简版本、但它不会表现出这种行为、这让我相信这是一个固件配置问题。