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.

[参考译文] MSP430F5638:如果00.06 05.34 保持较高,固件工具无法将较新的RAM BSL版本写入Rev D芯片

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/617029/msp430f5638-firmware-tools-failing-to-write-ram-bsl-versions-newer-than-00-06-05-34-to-rev-d-chips-if-pur-held-high

部件号:MSP430F5638

您好,

使用最新的MSP430固件升级示例BSL_USB_GUI (c/c++编译解决方案)时,偶尔会在计算机上弹出一个奇怪的问题。

我目前已部署了具有MSP430F5638 Rev D芯片的器件。 这些芯片与RAM BSL版本00.06 .05.34 配合使用,可以将我们的应用程序固件写入芯片。 由于我经常更新我的应用程序固件,因此在更新设备时,此工具非常重要。 Rev D已停止使用,因此我现在将Rev E芯片放入设备中。

问题的开始是RAM BSL 00.06。05.34 不能与Rev E芯片一起使用。 BSL_TX_BSL_Version_String()产生错误的版本,并且RAM BSL似乎未正确写入内存。 设备挂起,需要重启。  为了解决此问题,我已更新固件升级工具以使用RAM BSL 00.07 .08.38。 现在,该工具在所有计算机上与Rev E一起使用,在某些计算机上仅与Rev D一起使用。 使用00.07 .08.38 时再次出现错误,版本字符串无法正确生成,设备挂起,并要求关闭芯片电源后重启。 将RAM BSL 00.07 .08.38 写入Rev D芯片时无法正常工作的计算机与在操作系统,已安装软件和驱动程序方面正常工作的计算机非常相似。 计算机规格(如处理器和RAM)略有不同,但我非常怀疑这是问题所在。

使用JTAG将相应的闪存BSL BSL 00.07 .88.38 闪存到版本D芯片中以使用00.07。08.38 不起作用(相同的结果)。 降级Rev E芯片以使用与Rev D芯片相同的闪存BSL,然后使用RAM BSL版本00.06。05.34 可以工作。 虽然我担心的是芯片降级会增加一个额外的步骤,而且似乎不能保证芯片的正常运行。

总之,现在我在该领域拥有MSP430F5638的两个版本(D和E),并且我已经降级了Rev E芯片,这样我就不必使用两个不同的固件实用程序来升级应用程序固件。 我希望避免降级我的Rev E芯片或使用两种不同的固件实用程序,特别是因为00.07。08.38 应该同时支持两种版本。

这是我的问题的另一个转折。 要进入引导加载程序模式,必须在MSP430 USB芯片通电时将PUR引脚拉高。 实际上,我使用另一个电源板为MSP430芯片供电,该芯片在MSP430处于引导加载器模式的整个过程中保持PUR引脚高电平,这似乎是我问题的根源。 如果我在写RAM BSL时向下拉销,我不会遇到版本D和RAM BSL 00.07 .08.38 的问题。 知道了这一点,我无法解决问题,因为现场电源板的固件无法更新(没有令人难以置信的困难),无法将插针拉回。

在列出所有这些信息后,我尝试调试此固件工具,我非常好奇,为什么在将较新的RAM BSL写入Rev D芯片时,PUR引脚拉得过高会导致问题...只是在似乎是随机计算机的情况下? 我还尝试过Python固件工具,如果我使用Rev D芯片将PUR针固定在较高的位置,它始终无法正常工作。

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

    Andrew,您好!

    您能否提供您正在使用的操作系统?

    就BSL版本而言,E版芯片应该在版本00.08 .88.39 及其相关的RAM版本00.08 .09.39 上。 您正在加载的版本从未在此设备上。 您可以在Flash BSL用户指南(www.ti.com/lit/slau319)中检查每个版本的预编程BSL的版本号。 就PUR行而言,这只能通过在BOR后高电平驱动以调用BSL来实现。 如果在传输过程中保持高位,则会影响D+线路,并导致PUR线路上的驱动问题变为输出。

    另请参阅以下资源。

    www.ti.com/lit/slaa457
    www.ti.com/lit/slaa452

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

    您好,Jace:

    我使用的是Windows 7 64位的所有机器。 它们是专业版,专业版N,企业版N的混合版本。它们都安装了Microsoft Visual C++ 2005-2012可2012可重新分发的32-64位版本。

    我对Rev E芯片和任何以00.07 和更高版本开头的RAM BSL版本没有任何问题。 我将Rev E芯片降级为与Rev D芯片相同的闪存BSL的唯一原因是,我可以使用相同的固件更新工具(因此使用相同的RAM BSL)为芯片的两个版本上载。 我的设备的部署方式是,有些位置会显示D和E,由于可用于更新这些设备的用户类型,最好使用一个固件更新工具,而不是两个不同的工具。

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

    我建议将BSLS更新为最新版本,而不是降级Rev E芯片。 版本E未使用旧版本进行测试,但新版本应与旧版本兼容。 另请参阅我对上述PUR行的评论。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Jace:

    关于您对PUR行的评论,我想指出以下几点:

    1) "在软件驱动PUR高电压后,下拉电 阻足够弱,不会影响D+的运行...至少这是您提到的sla452c。sla457a还谈到下拉电阻器,它似乎可以防止我遇到的问题(我已经实施了)。 我找不到任何明确的表述,即不要让PUR保持向上,而原理图/示例/和USB规格似乎允许这样做。这与您所说的内容相矛盾...

    2)  如果按下按钮,则在BOR后立即驾驶PUR,然后将其拉回,这在直觉上是困难的,因为很难判断BOR后的PUR采样时间和确切时间 (这是BOR后采集的PUR与BOR后提取PUR之间的差异)。 我在文档中找不到在BOR之后采集PUR样本的持续时间。 唯一描述的是"跟随BOR的时刻"。 因此,我们按照随芯片提供的评估套件中的方法实施了PUR, 在将USB插入评估板时,通过按下按钮将PUR保持在高位时,可以调用BSL。 由于没有明确的文档警告,不在USB操作期间保持PUR驱动的高电平,而只是解释说下拉将保持D+的安全,这似乎是相当矛盾的。

    我知道需要将Rev D BSL升级到较新的版本以适应单个软件实用程序。 实际上,我们已经尝试升级修订版D,结果 与 更新的闪存BSL的修订版D不能在相同的问题计算机上使用相应的00.07 BSL (或任何更新的版本- 06.36 ,00.07 ,08.38 ,00.08 ,08.38 ,00.08。08.39)相同。 如上所述,JTAG闪存器件已应用于该领域(其中数百个!) 这是一场物流和成本高昂的噩梦。

    因为这感觉像是一个利基问题(我仍然不能弄清楚问题计算机的独特之处!),并且似乎完全具体地说明了新的RAM BSL如何评估PUR线,我想知道我是否可以尝试RAM BSL 00.07。04.34 ...它应该存档在某个位置。  

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

    Andrew,您好!

    对于1:

    这并不矛盾。 较弱的下拉功能是为了在不使用/空闲时保持将线路拉至地面。 它被设置为较弱,因此D+线仍可在需要时驱动该线。 通过添加额外的外部源来拉取PUR线(以及D+线),尝试驱动D+的任何设备/芯片组在需要时都可能根本无法驱动该线。 这可能会导致通信问题,具体取决于设备另一端的情况。

    对于2:

    这部分的出现有些延迟,因此在人的层面上时间安排并不是一个太大的问题。尽管如此,将时间控制得太高或太长可能会导致上文所述的通信问题。

    对于RAM BSL版本,00.07 .04.34 从不是为这些USB设备构建的。 它是为其他MSP430 USB器件而构建的,但我们保证此器件工作的唯一BSL版本是随器件附带的BSL版本及其随附的RAM BSL,如BSL用户指南中所示。

    00.04 .84.34 (A版至D版) RAM 00.04 .09.34

    00.08 .88.38 (E版至2015年5月) RAM 00.08 .09.38

    00.08 .88.39 (E版和更高版本) RAM 00.08 .09.39

    您可以根据需要尝试其他版本(位于 自定义BSL用户指南/代码库中),但只有上述版本已针对您的设备进行测试/使用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊,为了理解事情,根据您所说的,新的闪存BSL/RAM BSL似乎想要控制PUR线(我假设它想要将其拉下来以正确地取消设备的枚举) 由于我们设计它是为了在写入过程中保持PUR线高,因此它会导致应用程序写入出现问题。

    遗憾的是,这并不能真正解释为什么它只在某些计算机上失败,但我觉得这可能太难在此时进行分类。