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.

[参考译文] MSP432E401Y:USB 串行接口故障排除

Guru**** 2535750 points
Other Parts Discussed in Thread: MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb

器件型号:MSP432E401Y

您好!

我的应用将 USB 作为串行端口实现、因为我将 usbdevcserial 示例的功能复制到了其中、它对我来说非常有效。 我向一位客户发送了一个原型板、它对他来说可以用了大约一天、但后来突然停止工作、所以现在我想尽可能地了解 USB 串行的工作原理、这样我就可以找出问题所在。

除了5V 和接地之外、似乎还有3条线路用于发送和接收信号;Target_ID、USB_P 和 USB_N 我现在最感兴趣的是:

1.对于这3个信号中的每一个,哪些信号从计算机侧驱动,哪些信号从远程侧驱动。

2.告诉计算机 COM 端口已连接到 USB 的信息。

3.什么告诉计算机它是哪个 COM 端口。

4.关于如何传输和接收数据的任何信息也将非常有用。

谢谢你。

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

    您好!

    [引用 userid="470468" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb ]1. 对于这3个信号中的每一个、从计算机侧驱动哪些信号、从远程侧驱动哪些信号。[/quot]

    我发现这个网站提供了非常适合初学者的 USB 相关信息。 请看一下、您应该会发现您的大部分问题都在这个网站上得到了解答。  https://www.beyondlogic.org/usbnutshell/usb1.shtml

    [引用 userid="470468" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb ]2. 什么告诉计算机 COM 端口已连接到 USB。[/quot]

       当一个支持 CDC 类的 USB 器件(运行 usbdevcserial 示例的 MSP432)被插件时、它将被枚举为一个串行器件。 主机(PC)将在所谓的枚举过程中与器件交换信息、以了解主机连接的器件类型。 一旦主机知道设备的功能,Windows 将使用相应的驱动程序。 本网站对 使用 CDC 类的 USB 虚拟 COM 端口的工作方式进行了出色的说明。  http://janaxelson.com/usb_virtual_com_port.htm

    [引用 userid="470468" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb "]

    3.什么告诉计算机它是哪个 COM 端口。

    [/报价]

    这将由 Windows 分配。 如果您插入不同的电路板、通常会导致不同的 COM 端口。 您需要咨询 Windows、因为我的知识仅限于 MCU 方面。  

    [引用 userid="470468" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb "]

    4.关于如何传输和接收数据的任何信息也将非常有用。

    [/报价]

    请参阅第1部分中回答的网站。  

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

    感谢 Charles、这是非常有用的信息。 我之前有一个原型板、它也停止了通过 USB 端口进行通信、因此我已经开始对该板进行故障排除、假设它与客户遇到的问题相同。

    参考显示 USB_P 上的3V 指示集线器一个全速器件被连接至端口。 我查看了连接到 USB 端口的良好器件、可以在 USB_P 上看到3V 然后我查看了坏原型板、它在该引脚上没有3V 电压、因此我认为这可能是集线器看不到它的原因。

    然后、我按照初始化例程来查看施加该电压的位置、希望我能够了解为什么不在坏的原型板上施加该电压。

    3V 被施加在 usbdcomp.c 的第483行:

    MAP_USBDevConnect (USB0_BASE);

    并且、使用反汇编器、它由指令分支到的例程进行设置

    BLx R1 (其中 R1为0x0100A3D7)

    但是当我尝试去那个区域时、我得到:

    0100a3d6:??? 存储器映射阻止读取0x0100A3D6 [代码= 0x2000]

    因此、我一直在尝试弄清为什么3V 不会出现在坏的原型板上。

    我还认为 USB_P 引脚、PL6、 可能需要设置为允许更高的驱动电流、但当我在 slau723a 中查看如何实现此目的时、在1192页上、看到 PL6和 PL7具有4mA 的驱动能力、并且驱动能力不能改变。

    是否有人对我应该如何继续弄清楚串行 USB 为什么在坏的原型板上无法正常工作有任何其他想法?

    谢谢你。

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

    Brad、您好!

     很抱歉,我不在办公室,刚回来。  

    [引用 userid="470468" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb/4219048 #4219048"]

    UT 当我尝试转到该区域时、我得到:

    0100a3d6:??? 存储器映射阻止读取0x0100A3D6 [代码= 0x2000]

    [/报价]

    MAP_USBDevConnect 将调用存储在 ROM 中的 API、该 API 的起始地址为0x01000000。 如果您使用 USBDevConnect 而不是 MAP_USBDevConnect、则它将作为应用程序的一部分构建 API、但代价是使用闪存区域。 但是、使用 C 语言进行调试会更容易。  

    [引用 userid="470468" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1136486/msp432e401y-troubleshooting-serial-over-usb/4219048 #4219048"]

    因此、我一直在尝试弄清为什么3V 不会出现在坏的原型板上。

    我还认为 USB_P 引脚、PL6、 可能需要设置为允许更高的驱动电流、但当我在 slau723a 中查看如何实现此目的时、在1192页上、看到 PL6和 PL7具有4mA 的驱动能力、并且驱动能力不能改变。

    [/报价]

     

    我不知道原因。 我建议您执行 ABA 交换测试。 将坏板上的 MCU 换用已知良好的 MCU。 坏板是否正常工作? 将怀疑有问题的 MCU 交换到已知良好的主板。 它是否会继续失败? 如果是板级或 MCU 级问题、这将有助于进行故障排除。  

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

    您好、Charles、

    我从客户那里得到原型板、他板上的 USB 端口有与原型板相同的症状。

    我一直在做一些功课、期待他的电路板回来、我在 slaa770的第35页上了解到、我应该在 USB 连接器上的 VBUS 和 MSP432E401Y 上的引脚 PB1之间放置一个100欧姆的电阻器、以限制可能的 ESD 损坏。

    我用新的板上的 MCU 替换了他的板、它再次开始正常工作。  现在、我假设问题是由该板上没有100欧姆电阻器导致的、它发生了间隙。  我的计划是安装并装回电阻器。

    请告诉我 、您是否能想到我应该考虑的其他任何东西。

    谢谢你。

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

    Brad、您好!

     有关 MSP432E 设计指南、请参阅第4.3节、其中介绍了 USB 总线上100欧姆的差分阻抗以及其他最佳实践。  https://www.ti.com/lit/pdf/slaa770