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.

[参考译文] MSP430F5528:未知 USB 器件

Guru**** 2525540 points
Other Parts Discussed in Thread: MSP430F5528

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/913862/msp430f5528-unknown-usb-device

器件型号:MSP430F5528

大家好、我们将为 键盘应用准备一个使用 MSP430F5528的板。 运行的代码来自键盘演示板(https://www.ti.com/tool/TIDM-KEYBOARD)、我们在 HW 上所做的唯一更改是 XT2晶振从4MHz 更改为6MHz、我们也更改了 XT2的寄存器设置、与当前相比没有其他更改。 通过 USB 电缆将电路板插入笔记本电脑后、Win10会显示未知 USB 设备(设备描述符请求失败)。

我测量了 XT2引脚、晶体以6MHz 运行、同时测量 USB 差分信号、它看起来信号良好。 请告知问题的可能根本原因?

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

    问题源可以是与软件或硬件相关的、并且可以使用支持 HID BSL 的 XT2 (4、8、12或24 MHz)轻松进行检查。 如果器件被整体擦除、在连接到 PC USB 端口后、器件应该被自动枚举为 HID BSL、这表明硬件方面一切都正常。 遗憾的是(不知道原因)您选择了6MHz、USB BSL 在此设置中没有太大帮助。 在我的项目中、我始终使用24MHz XT2 (也适用于 MCLK)、默认情况下、HID BSL 和 TI USB 堆栈示例支持该功能。  

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

    您好、那么要解决这个问题的权变措施是什么? (如果无法自动枚举为 HID、我们是否可以修改代码以便仍可以继续?) 由于我们手头没有您提到的晶体、而且芯片以前从未进行过编程、因此在购买后应该是默认值。

    Linux 开发中是否也会出现此问题?

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

    这不是与操作系统相关的问题、很难通过断点调试 USB 代码。 尝试找到并修改6MHz XT2的 PLL 分频器...

    CLK = 6000000 Hz
    DIVQ = 1   DIVM = 8
    PLLCLK = 48000000 Hz   ACC = 0ppm
    USBPLLDIVB = 0007h

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

    由于我不熟悉 MSP430、也不是真正的软件人员、您能帮助我理解以下内容吗:

    1. 6MHz XT2是否仍然能够执行键盘应用、我们只需要修复在空白芯片上自动调用 USB HID BSL 吗? 或者、您是否说根本原因可能在其他地方、而不是6MHz 晶体? (我现在对 USB 信号质量产生怀疑、因为我们使用了很长的电缆、中间有几个焊接点)  

    2.您提到的 PLL 分频器修改应植入其中? 这些数字是我们可以使用还是需要进一步调试?

    3.我阅读了应用手册“使用 MSP430TmMCU 开始 USB 设计”,其中 提到:

    BSL 被设计成自动识别应用于 XT2的四个频率:

    •4MHz

    •8MHz

    •12 MHz

    •24 MHz

    如果使用 BSL 进行生产编程、则必须使用这四个频率中的一个。 如果在 A 之后使用 BSL

    已执行 JTAG 会话、您可以使用该 JTAG 会话对的修改版本进行编程

    可识别您的频率的 BSL。

    以上是否与此问题有关? 如果是、我们可以按照此步骤解决此问题、对吧?

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

    MSP430硬件 USB 模块可与6MHz XT2配合使用、但默认情况下、所有 TI 源(来自 USB 开发堆栈的示例)都配置为4MHz XT2 (因为此源焊接在 LP 上)。 请记住、是否有一些 GUI 工具可用于轻松重新配置、但可以在源代码中找到 XT2 PLL 分频器注释值。

    固件可由 SBW/JTAG 上载到空白器件、在这种情况下、XT2值不相关、因为它未被使用。 固件也可以通过 MSP430 USB 固件升级 GUI 在 Win 或 Phyton CLI 上通过器件本身上传、使用出厂预加载的 HID BSL、但在这种情况下、XT2必须为4、8、12或24 MHz。

    我在 MSP430 USB 扩展板上使用了非常糟糕的 P2P 布线、因此从未出现 USB 问题。

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

    我们遵循了 TIDU521 "使用 MSP430的键盘控制器"文档:

    6.1.2晶体 XT2
    使用不同的晶体进行设计。
    说明:
    1.修改 USB_XT_FREQ_VALUE:
    ..\Projects\USBKBD\src\USB_config\descriptors.h

    我们将 XT2频率更改为6、但它不起作用(晶体输出6MHz、但仅报告了未知的 USB 器件)。 那么,所提到的6.1.2中的变化是否还不够? 仍然需要改变 PLL 分频器?  

    让您对它的了解大有不同。