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.

[参考译文] RTOS/TM4C1294NCPDT:定制板上的 USB 连接问题、在 EVAL 板上工作正常。

Guru**** 2481465 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/702226/rtos-tm4c1294ncpdt-usb-connection-issue-on-custom-board-working-fine-on-eval-board

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

参考:

我在 TI EVAL 板上使用了 USB CDC 驱动程序、但在定制板上无法正常工作。

根据我在 USBAnalyzer 中读取的内容、它似乎已连接、但无法响应 VID/PID 编号、因此突出显示了 USB NODEVICE 错误(或类似错误)。 定制板具有 与 LPC154x 器件上使用的隔离器件相同的设计、该器件工作正常。 我不确定 USB-ID 是否会产生影响。 我尚未安装任何 TI 驱动程序。 截至今天、我拥有具有 RTOS 和 Tiva 库的最新版本 CCS 8.0。 我的 PC 是窗口10。 定制板具有与 EVAL 板中相同的 TM4C1294器件。  

该固件基于 RTOS、TI 库中的 TI 示例 USB CDC 驱动程序、我复制到自定义工作区并添加了多个代码(GPIO、计时器、SPI 等)以实现自定义操作。 即使使用修改的固件、USB 在 EVAL 板(TM4C1294 BoosterPack)上也能正常工作、但在定制板上却无法正常工作(请参阅原理图)。  

在定制板中、我有16MHz XTAL 而不是25MHz XTAL、但我包含了将16MHz 升压到120MHz 以匹配系统时钟的代码(请参阅下面的代码)。 稍后、如果可以解决 USB 时钟问题、我将把16MHz 更改为25MHz (按顺序)。

(1)是否有用于校正16MHz USB 时钟的代码、您能否提供哪一个。

(2)由于 XTAL 16MHz 和25MHz 的不同、USB 运行是否会产生影响、即使系统时钟也是120MHz。  

(3)我愿意了解如何解决问题并让 USB 正常工作。 多年前、我通过 LPC1549学习和工作过 USB 项目、因此我对 他们很熟悉。

#ifndef THISEVALBOARD
uint32 ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
#endif 

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经研究了关于 SysCtlClockFreqSet 的数据表和 TivaWare USB 文档、并排除了时钟频率问题、因为它在 VCO 上设置为480MHz、所以假设它根据 USB 的需要提供60MHz。 我不希望25MHz 能解决这个问题、但我会尝试一下、以防万一。

    我想注意的是、我在 EVAL USBCDC 演示代码中找不到 SysCtlClockFreqSet 或类似的布置、请说明此固件如何正确设置时钟、它们是否使用默认值 XTAL = 25MHz、VCO = 480MHz 和 SYSCLK = 120MHz?

    我研究了 USBCDC 配置、其中在 CDC 下在 USB_device 上运行、它设置为 eUSBModeForceDevice、这意味着 ID 和 VBUS 被忽略、所以我排除了这一点。 我不需要将 ID 绑定为高电平或低电平?我只需将其保持悬空、除非我不知道有错误。

    然后、我在 D+和 D-极性连接方面对 EVAL 板电路进行了比较、从而使隔离栅通过通电、并且未发现任何缺陷。

    我尚未在窗口10中安装驱动程序、也不需要安装、因为它在 EVAL 板上工作正常。

    我想不出来了,建议?

    一个想法是、我可以破解非隔离式 GPIO 线路并暂时连接到 USB 连接器、以便在隔离侧之前检查 USB 响应。 我想先尝试其他选项、然后再进行讨论。

    第二个想法是移除100R 电阻器 R18以隔离 ID 和隔离 VBUS。 我在其他地方用 VBUS 隔离式和 ID 隔离为电路板供电、并查看窗口10的响应在上下文中显示出来 。

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

    您好 Richard、

    我明天需要在办公室中更详细地审查这一点,但有一些初步意见:

    1) 1)在我提供的示例中有 SysCtlClockFreqSet 代码:

    //从 PLL 以120MHz 运行。
    //
    G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
    SYSCTL_OSC_MAIN |
    SYSCTL_USE_PLL |
    SYSCTL_CFG_VCO_480)、120000000); 

    2) 2) 16MHz 晶体应该可以、我没有看到任何关于16MHz 与 USB 不兼容的报告。 25MHz 晶体的唯一要求是以太网。

    3) 3)只要您不使用 OTG 模式、保持 ID 引脚悬空是可以的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    感谢您附上原理图、您能从您的终端看到它、如果不能、我可以重新发送。
    我发现硬件中有错误,它设置为240MHz VCO 以提供120MHz SYSCLOCK (由 SysCtlClockFreqSet()处理)而不是480MHz,这是否会影响 USB 的16MHz/25MHz XTAL?
    R.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Richard、

    我看不到原理图、请重发、谢谢。

    当您提到硬件中的错误时、您是指 SYSCTL_22/SYSCTL_23吗? 如果没有、这将不会影响 USB 的 XTAL。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    图像已按要求删除

    Ralph、如果可以、请在使用后删除图像、谢谢。

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

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

    您好 Richard、

    对于一个 RTOS、无需 Tivaware 调用即可将 MOSC 或 PLL 设置为 USB0 30Mhz 时钟最小值。  在一段时间前、当 RTOS 配置 引导时钟选项卡 有复选框用于启用 PLL 时、犯了同样的错误、如果 选中启用的输出 、则禁用 PYSDIV 时钟分频。 Enable PLL (启用 PLL)复选框与典型 PLL 配置相反、我们将其保留为未选中状态。

    此外  、如果 VBUS 引脚部分 受损、强制器件模式 USB 配置可能无法工作。  这是 PB1可耐受+5V 电压、但 如果 MCU 断电且 USB 电缆保留 在计算机 USB 端口中、注入电流可能会从 PC USB 端口流入 PB1。 只需几次、MCU 引脚 PB1就会受损。

     

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

    感谢您提供的所有详细信息、我已经有适当的时间来回顾所有内容。

    因此、您能够传输一些数据包、但还不能完成枚举? 如果是、我不确定问题是否与硬件相关。 如果 USB 总线能够与 PC 成功通信、我不明白为什么它在进入 PID/VID 交换时会由于硬件而停止。

    更具体地说、如果16MHz 晶体出现问题、您将无法进行任何 USB 通信、因此我相信您的晶体配置正常。

    我不是专注于硬件、而是有一个关于软件的建议:

    您之前提到过不应用 TI Windows 驱动程序、您是否在平均时间内尝试过? 如果没有、请尝试应用最新的 USB 驱动程序补丁(将在下面链接)。 由于这是一个新的主板、它将枚举在一个新端口上、并且现在可能需要处理 Windows 驱动程序。 LaunchPad 的枚举可能会在首次连接时保存、因此如果在需要更新的驱动程序之前在 Windows 10中正确枚举、则看起来并不是您所认为的必要、 但实际上、您很可能需要它们来进行新设计、以便正确枚举。

    software-dl.ti.com/.../SW-TM4C-2.1.4.178.PATCH-1.0.zip