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.

[参考译文] TM4C1290NCPDT:LM 闪存编程器问题

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1292625/tm4c1290ncpdt-lm-flash-programmer-issue

器件型号:TM4C1290NCPDT

所有、

我们将使用 LM Flash Programmer 升级 FW、有时会以不可预测的方式注意到以下几点、并且仅在某些 PC 上:  

  • 有时无法通过 USB 进行通信
  • 在其他情况下、该过程无法完成、从而导致部分固件下载  
  • PC:Dell Latitude 5500
  • 操作系统: Windows 10 Pro,版本19041.1415
  • LM 闪存编程器- Build 1613
  • 驱动程序 USB:已安装 TivaWare_C_Series-2.2.0.295
    • 在文件夹"…TivaWare_C_Series-2.2.0.295\windows_drivers"中安装特定补丁所需的 prev 版本中、是否确认内容已相同?

有关更多详细信息、请参阅以下屏幕截图:

  • 遇到的问题

点击 PROGRAM 按钮后立即显示:

谢谢

法比奥

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

    您好!

     闪存擦除后、ROM 引导加载程序将启动、并将 USB 器件端口枚举为 DFU 器件。 我只需使用 LM 闪存编程器尝试 DFU 下载简单的 blinky.bin 即可。 我可以反复下载新固件而不会 出现任何问题。 我只有一台 PC 可以尝试。  

    我还使用命令行 dfuprog.exe 下载固件。  

    -我首先擦除闪存。  

    -我将在 LaunchPad 上看到两个支持 DFU 的设备。 一个是 USB 调试端口上的 ICDI、另一个是 USB 器件端口上枚举的 Tiva DFU。  

    -我不是 Windows 方面的专家,但我看到了 Stellaris 设备固件升级属性的驱动程序版本和日期。  

    -我将 Tiva DFU 器件切换到 DFU 模式。  

    -我下载 blinky.bin 后可以看到 LED 在闪烁。  

    您能否提供以下信息、以便我们缩小问题范围?

    • 看起来闪存已被擦除、 您正在 尝试在 DFU 模式下使用 ROM USB 引导加载程序。 是这样吗?
    • 该问题是在定制板上还是在 LaunchPad 上观察到的?
    • 您的不同计算机的驱动程序数据/版本是什么? 它们之间是否有差异?
    • 您能在 LaunchPad 上试用一下吗? 结果是什么?
    • 您可以加载一个简单的 blinky.bin 或 hello.bin 程序吗? 您会看到同样的问题吗?
    • 您可以尝试使用 dfuprog.exe 吗? 这是一个命令行工具、用于在 DFU 模式下使用 USB 下载固件。 它是 TivaWare SDK 的一部分。 如果尚未下载、请从 https://dr-download.ti.com/secure/software-development/software-development-kit-sdk/MD-oCcDwnGrsI/2.2.0.295/SW-USB-win-2.2.0.295.msi 下载
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Charles、

    感谢您的回答。

     

    我写信给 Fabio 以获得支持、他在此处创建了一个线程来通知您、所以让我来问您的问题。 在我的答案下面,加上一些截图。

     

    -看起来闪存已被擦除、客户正在尝试在 DFU 模式下使用 ROM USB 引导加载程序。 是这样吗?

    • 正确、但闪存并不总是被擦除。 我们使用 BOOTCFG 寄存器方法通过在启动时将某个 GPIO (PG6)接地来调用 ROM USB 引导加载程序。 我认为 uC 正确地进入了 ROM USB 引导加载程序、因为当我在引导模式下打开电路板时、Windows 能够检测到 USB 外设。 为此、我遵循以下步骤:对 PG6进行接地短路、通过 USB 将我们的电路板连接到 PC、启动"LM Flash Programmer "、然后启动电路板。

     

    -这个问题是在定制板上还是在 LaunchPad 上观察到的?

    • 我只想说在定制板上、有关更多详细信息、请参阅后续要点。

     

    -您的不同计算机的驱动程序数据/版本是什么? 它们之间是否有差异?

    • 我在使用相同驱动程序版本、相同电路板和相同 USB 电缆的两台不同 PC 上测试了下载过程。 在 PC1上,该过程失败,如 Fabio 所述(下一点指的是此 PC),在 PC2上,该过程正常运行。 对于这两台 PC、已安装的 TivaWare 版本为"TivaWare_C_Series-2.2.0.295"、但其中会显示"器件管理器"版本的驱动程序2.1.4。 这种行为合适吗? 如果我尝试手动更新驱动程序并使用 TivaWare 目录"C:\ti\TivaWare_C_Series-2.2.0.295"以搜索驱动程序、Windows 系统会告知我这些驱动程序是最新的。 下面有一些 screnshot.

             

             相同的驱动器。

             

             PC1:无法下载。

             

           PC2:下载工作原理。

     

    -闪存被擦除后,我尝试使用 LM 闪存编程器下载一个简单的 blinky.bin。 我没有问题。

    -如果他们还没有尝试过,可以在 LaunchPad 上尝试。 结果是什么?

    • 我尝试通过 USB DFU 在 LauchPad 上加载 blinky.bin 和 hello.bin、在我这边也能正常工作。 请参见下图。

         

         

    -他们可以加载一个简单的 blinky.bin 或 hello.bin 程序吗? 他们会看到同样的问题吗?

    • 您是打算在定制电路板而非定制软件上加载 blinky.bin 或 hello.bin 吗? 在这种情况下,我尝试了 PC1,结果与上面的图片中显示的结果相同(错误-3,错误-4…),不可能有闪存。

     

    -他们可以尝试 dfuporg.exe。 这是一个命令行工具、用于在 DFU 模式下使用 USB 下载固件。 它是 TivaWare SDK 的一部分。 如果尚未下载、请从 https://dr-download.ti.com/secure/software-development/software-development-kit-sdk/MD-oCcDwnGrsI/2.2.0.295/SW-USB-win-2.2.0.295.msi 下载

    我在 PC1上使用该工具进行过尝试、具体结果如下。

    LaunchPad:

    • "USB Connected devices (USB 已连接设备)"中列出了该电路板。
    • 我可以切换到 DFU 模式(该模式已处于该模式)
    • 我可以上传 blinky.bin

                    

     

     自定义板、我有2种不同的场景:

    • 场景1:
      • USB Connected 设备中未列出该电路板、但 Windows 会检测到该 USB 设备。 请参见下面的图片、其中"Gestione discustivi"="设备管理器"
      • 我无法继续执行后续步骤

                    

                    

    • 场景2:
      • "USB Connected devices (USB 已连接设备)"中列出了该电路板。
      • 我可以切换到 DFU 模式(该模式已处于该模式)
      • 我无法上传 blinky.bin、错误-4也在这里。

             

     

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 我只想说在定制板上、有关更多详细信息、请参阅后续要点。

    [/报价]
    • 我尝试通过 USB DFU 在 LauchPad 上加载 blinky.bin 和 hello.bin、在我这边也能正常工作。 请参见下图。

    [/报价]

    LaunchPad:

    • "USB Connected devices (USB 已连接设备)"中列出了该电路板。
    • 我可以切换到 DFU 模式(该模式已处于该模式)
    • 我可以上传 blinky.bin

                    

    [/报价]

    基于上述信息、LaunchPad 可以在 PC1和 PC2上工作。 这是正确的理解吗?

    我假设您使用 LM 闪存编程器或 dfuprog.exe 将自定义代码加载到 LaunchPad 中、那么它在 PC1和 PC2上也能正常运行。 这也是正确的理解吗?

    我在使用相同驱动程序版本、相同主板和相同 USB 电缆的两台不同 PC 上测试了下载过程。 在 PC1上,该过程失败,如 Fabio 所述(下一点指的是此 PC),在 PC2上,该过程正常运行。 对于这两台 PC、已安装的 TivaWare 版本为"TivaWare_C_Series-2.2.0.295"、但其中会显示"器件管理器"版本的驱动程序2.1.4。 这种行为合适吗? 如果我尝试手动更新驱动程序并使用 TivaWare 目录"C:\ti\TivaWare_C_Series-2.2.0.295"以搜索驱动程序、Windows 系统会告知我这些驱动程序是最新的。 下面的一些搜索。
    [/quote]
    [/quote][/quote]

    您可以做一个实验吗? 在 Windows 设备管理器中、您能否卸载 Stellaris 设备固件升级器件、然后重新安装驱动程序。 我想知道这是否会在 PC1上有所不同。  

    • 您是打算在定制电路板而非定制软件上加载 blinky.bin 或 hello.bin 吗? 在这种情况下,我尝试了 PC1,结果与上面的图片中显示的结果相同(错误-3,错误-4…),不可能有闪存。

    [/报价]

    您是否有可以在 PC1和 PC2上工作的定制电路板? 或者您仅有一个板需要测试? 我之所以提出这个问题、是因为如果您至少有一个主板可以在 PC1和 PC2上工作、那么您可以进行 ABA 交换测试-这意味着将用于 PC1的主板上的 MCU 交换到出现故障的主板、反之亦然。  

     A-B-A  交换方法是一种简单的交叉检查测试、可以确认发现的问题不是系统性问题。

    • A-B-A  交换方法
      (1)拆除可疑部件( A )。
      (2)更换可疑部件( A )、具有已知良好的组件( B )并检查原电路板现在是否工作正常。
      (3)安装可疑部件( A )连接到已知正常的主板,然后查看是否在正常的主板上发生同样的故障。

    步骤3很重要、因为它可以帮助我们排除任何可能问题是由系统问题或良好电路板上的多个轻微不良元件相互作用引起的。

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

    您好 Charles、

    基于上述信息、LaunchPad 可以在 PC1和 PC2上工作。 这是正确的理解吗?

    我假设您使用 LM 闪存编程器或 dfuprog.exe 将自定义代码加载到 LaunchPad 中、那么它在 PC1和 PC2上也能正常运行。 这也是正确的理解吗?

    [/报价]

    是的、回答正确。 我们可以使用两台 PC 在 LaunchPad 上加载我们的代码。

    您能做一个实验吗? 在 Windows 设备管理器中、您能否卸载 Stellaris 设备固件升级器件、然后重新安装驱动程序。 我想知道这是否会在 PC1上有所不同。  [/报价]

    我尝试过 PC1,没有区别。

    您是否有可以在 PC1和 PC2上工作的定制电路板? 或者您仅有一个板需要测试? 我之所以提出这个问题、是因为如果您至少有一个主板可以在 PC1和 PC2上工作、那么您可以进行 ABA 交换测试-这意味着将用于 PC1的主板上的 MCU 交换到出现故障的主板、反之亦然。  

     A-B-A  交换方法是一种简单的交叉检查测试、可以确认发现的问题不是系统性问题。

    • A-B-A  交换方法
      (1)拆除可疑部件( A )。
      (2)更换可疑部件( A )、具有已知良好的组件( B )并检查原电路板现在是否工作正常。
      (3)安装可疑部件( A )连接到已知正常的主板,然后查看是否在正常的主板上发生同样的故障。

    步骤3很重要、因为它可以帮助我们排除任何可能问题是由系统问题或良好电路板上的多个轻微不良元件相互作用引起的。

    [/报价]

    我们有很多主板,但错误似乎取决于 PC:换句话说,对于 PC1和 PC2,每块主板,我看到的行为都是一样的。 正如我之前说过的:

    • PC1:无法正确连接和刷写定制电路板上的软件。
    • PC2:可以在定制电路板上连接和刷写软件。

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

    是的、回答正确。 我们可以使用两台 PC 在 LaunchPad 上加载我们的代码。

    [/报价]

    我们有很多主板,但错误似乎取决于 PC:换句话说,对于 PC1和 PC2,每块主板,我看到的行为都是一样的。 正如我之前说过的:

    • PC1:无法正确连接和刷写定制电路板上的软件。
    • PC2:可以在定制电路板上连接和刷写软件。
    [/报价]

    大家好、Angelo、

     根据您以上反馈、可以总结出 LaunchPad 在 PC1和 PC2上工作的情况。  所有定制电路板在 PC1上都无法正常工作,但在 PC2上工作正常。 这是公平的说法吗?

     目前、我对如何诊断问题的想法不多。  您是否有可供使用的 USB 分析仪? 我本来希望如果有一个 USB 分析器、那么您就可以辨别出 PC1与主板、PC2和主板之间任何细微的不同流量。  

    -您的电路板是从 USB 端口获取电源、还是您使用不同的电源?   

    也许您可以检查 PC1与 PC2相比是否对电路板产生了干扰/噪声。

     *查看主板的电源、并查看连接到 PC1与 PC2时是否有任何区别。  

     *查看 USB0DM 和 USB0DP 信号、并比较 PC1连接时的信号与 PC2的信号。

    -您有多少块 LaunchPad? 是否所有 LaunchPad (如果有多个)都可以在 PC1和 PC2上工作?

    -最后,是否可以进行 ABA 交换测试? LaunchPad 根据您在 PC1上的实验运行。 我真的希望你有不止一个空闲. 您是否可以将 LaunchPad 上的 MCU 替换为您的自定义板之一、反之亦然。 这确实有助于了解问题是出在 MCU、电路板还是仍然与 PC 相关。  

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

    尊敬的 Charles:

     根据您的上述反馈,总结为 LaunchPad 在 PC1和 PC2上工作。  所有定制电路板在 PC1上都无法正常工作,但在 PC2上工作正常。 这是一个公平的陈述吗?

    是的、是这样。

     目前、我对如何诊断问题的想法不多。  您是否有可供使用的 USB 分析仪? 我本来希望如果有一个 USB 分析器、那么您就可以辨别出 PC1与主板、PC2和主板之间任何细微的不同流量。  

    -您的电路板是从 USB 端口获取电源、还是您使用不同的电源?   

    也许您可以检查 PC1与 PC2相比是否对电路板产生了干扰/噪声。

     *查看主板的电源、并查看连接到 PC1与 PC2时是否有任何区别。  

     *查看 USB0DM 和 USB0DP 信号、并比较 PC1连接时的信号与 PC2的信号。

    [/报价]

    遗憾的是、我没有 USB 分析器、但是我将检查我们的电路板并使用示波器对 USB 信号进行比较。 我将查看4种不同的情况:PC1+LaunchPad、PC1+Custom Board、PC2+LaunchPad、PC2+Custom Board。 如果我发现了什么、我会告诉您、如果您有任何新想法、请随时向我通报最新情况。

    谢谢您的建议。

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

    大家好、Angelo、

     您有任何更新吗?

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

    您好 Charles、

    很抱歉这么晚才回答、我要等一段时间才能确定我们找到的解决方案是否有效。

    在使用示波器进行信号分析后、我们得出结论:我们的电路板需要对 USB0DM 和 USB0DP 跟踪进行硬件修复。 完成此硬件修改后、可使用每个 PC 刷写定制板。 我相信最初、由于某些 PC 上安装了不同的 USB 硬件、因此问题只出现在这些 PC 上。

    非常感谢您的支持!

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

    大家好、Angelo、

    这是否意味着我们可以 认为该问题已解决?

    请告知我们

    谢谢

    法比奥

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

    尊敬的 Fabio:

    是的、谢谢。

    安杰洛

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

    大家好、Angelo、

     很高兴您似乎解决了这个问题。 我现在将关闭机票。 如果您有任何更新、您可以写入此帖子、该帖子会将其状态更改为自动打开。