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.

[FAQ] [参考译文] [常见问题解答] AM2612:USB:DFU 和 SBL DFU 应用程序不工作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494171/faq-am2612-usb-dfu-and-sbl-dfu-application-not-working

器件型号:AM2612

工具与软件:

尊敬的 TI 专家:

我使用的是 AM261x-LP 板、并遇到了以下 USB 问题:

  1. 我尝试了通过提供的 dfu-util 工具运行 SBL dfu 应用程序。  在使用 dfu-util 工具发送 SBL dfu .tiimage 后、我无法使设备枚举。 有时我也会遇到与超时相关的问题。
  2. 我尝试从 MCU+ SDK 运行 DFU USB 应用程序。 也不起作用。
  3. 在 DFU 引导模式下、AM261x-LP 不会枚举。 这是我的硬件或 ROM 代码的问题吗?

您能帮忙吗?

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

    MCU_PLUS_sdk_am261x_10_00_01_10中的 USB 低电平驱动器存在已知问题。 常见的问题包括:

    1. SBL DFU 无法正常工作
      此处需要两种修复方法:

      1.1优化 USB 发布库的问题
      在与编译器优化配合使用时、USB 驱动程序会出现问题、这会破坏"发布"库和使用此库的应用程序。 一种快速权变措施是在 CCS 或命令行中更改 Makefile 中的应用程序属性、以使用调试库而不是发布库(适用于 TinyUSB 库和 USB synp 库)。
      对于基于 CCS 的工程:
      步骤1:在项目资源管理器中、右键单击项目并打开属性:
      步骤2:导航至 ARM Linker 并按如下所示更改库的配置文件:

      第3步:点击"Apply and Close"
      步骤4:重新编译应用程序

      对于命令行构建:
      步骤1:在 USB 应用程序目录中、导航到  am261x-lp/r5fss0-0_nortos/ti-arm-clang/makefile
      步骤2:修改 libs_common 列表以链接调试库(适用于 USB-synp 和 usb-tusb)、而不是发布库。
      步骤3:使用链接的调试库保存并重新构建应用。 要了解如何从命令行构建应用程序、请参阅: 将 AM261x SDK 与 Makefile 一起使用

      现在测试新生成的图像。
      注意:上述问题将受到调试、并将在未来的 SDK 版本(AM261x MCU_PLUS_SDK v10.02和更高版本)中得到修复

      1.2 dfu-util 工具的超时问题
      MCU_PLUS_SDK 包含作为 SDK 一部分提供的预构建 dfu-util 二进制文件。 由于存在与超时相关的问题、因此 AM261x-LP 不能与标准 DFU-UTIL 工具配合使用。 同样的详细信息可在以下位置找到: https://software-dl.ti.com/mcu-plus-sdk/esd/AM261X/latest/exports/docs/api_guide_am261x/SDK_DOWNLOAD_PAGE.html#INSTALL_DFU_UTIL

      对 DFU-UTIL 源代码进行了两处修改:
      1.增加 DFU 超时-这样做是为了处理较大应用程序映像的传输
      2.缩短 dfuMANIFEST 状态下的睡眠时间。 这是为了确保 USB 主机可以在 ROM 复位 AM261x 之前读取 DFU 器件的状态并将控制传递给 SBL 应用程序。

      此常见问题解答包含更新的 DFU-UTIL 工具(默认情况下也包含在 MCU_PLUS_SDK v10.02及更高版本中)、建议改用这些 DFU-UTIL 二进制文件。
      对于 Windows:
      e2e.ti.com/.../dfu_2D00_util.exe
      Linux 系统:
      e2e.ti.com/.../dfu_2D00_util

    2. USB DFU 器件应用程序无法正常工作
      此问题与上述问题类似、可以通过链接调试库而不是发布库来解决。 请按照上面1.1部分中的步骤操作。

    3. 在 DFU 引导模式下、AM261x-LP 不会枚举
      当处于 DFU 引导模式时、运行 USB 的 ROM 代码负责枚举。 此代码位于只读存储器中、无法更改。 在某些 AM261x-LP 上观察到的问题是由 R355电阻器引起的。 如果您遇到此问题、建议从 AM261x-LP 板上完全卸载 R355电阻器。 LaunchPad 用户指南中介绍了相同的内容。 默认情况下、该电阻器为 DNI、但据观察、完全移除该电阻器可解决该问题。

    此致、
    Shaunak