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.

[参考译文] MSP430F67791A:观察到 BSL 问题

Guru**** 2393265 points
Other Parts Discussed in Thread: MSP430F67791A, MSP430F5324, MSP-FET, MSP430FR5729, MSP430G2231

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/936005/msp430f67791a-bsl-problem-observed

器件型号:MSP430F67791A
主题中讨论的其他器件: MSP430F5324MSP-FETMSP-EXP430G2MSP430FR5729MSP430G2231

您好!

在使用片上 UART BSL 对定制板上的 MSP430F67791A 闪存进行编程时、我遇到了一些问题。

我已使用 P2.0(数据传输)、P2.1(数据接收)、TEST、RST 引脚来进行引导加载。 BSL Scripter 软件和我的定制板之间使用了 LaunchPad 硬件。我已遵循 TI.com 上列出的 TI BSL 文档和软工具。 我的两个意见和问题如下:

1) 1)我无法使用 BSL 顺利地对芯片进行编程(例如,我成功完成10次的编程2次)。 在出现故障的情况下、LaunchPad 的红色和绿色 LED 持续闪烁、有时红色 LED 停止闪烁、绿色 LED 非常小。即使我在连接后按下 LaunchPad 上的按钮、行为仍然相同。我在两个 MSP430F67791A 板上尝试过。

有趣的是,我有另一个基于 MSP430F5324的定制板,它具有类似的 BSL 连接,这不会有这样的问题。使用相同的启动板和 BSL 连接,它可以使用 UART BSL 顺利地进行编程。

任何建议。

2) 2)在我的应用中、我在信息存储器0x1800处存储一些值。 因此、我的.TI-TXT 文件包含这部分代码。当我将.txt 文件传递给 BSL Scripter 命令时、它表示无法写入该位置并退出。

解决此问题的方法是什么?

e2e.ti.com/.../experiment_5F00_MSP430F67791A.txt

此致、

ARS

 

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

    您好、ARS、

    您使用的是哪款 LaunchPad? 我假设您使用的是 LaunchPad 上的板载调试器。 还是使用 MSP-FET? 您所面临的问题可能是由于您不使用 MSP-FET 进行 BSL 编程、这是建议的做法。 请查看 《MSP 调试器用户指南》中的表1 、了解更多详细信息。

    此致、

    James

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

    感谢您的评论。

    [引用 user="James Evans 的说法]您使用的是哪款 LaunchPad? 我假设您使用的是 LaunchPad 上的板载调试器。 [/报价]

    我要使用的 LaunchPad 是 将所需信号连接到我的 BSL 定制板上提到的 MCU 芯片。  LaunchPad 是 MSP-EXP430G2。

    我已遵循 TI 应用报告 SLAA535.适用于其他 MSP430 MCU 的相同设置。

    此处的 MSP430目标 是我的 msp430f67791A 板

    [引用 user="James Evans 的说法]您所面临的可能是因为您不使用 MSP-FET 进行 BSL 编程、这是建议的做法

    上述设置非常适合 MSP430F5324、MSP430FR5729等。已经使用此设置对8K+芯片进行了编程。

    我们正在寻找现场 F/W 升级的低成本解决方案...所以我们选择了 launchpad 接口 而不是 MSP-FET。 我们在实验室中使用 MSP-FET 进行调试/开发。

    Launchpad 上的芯片中是否需要对 msp430f67791A 的 BSL 接口进行软件更改?

    从我原来的帖子........

    在我的应用程序中、我将一些值存储在信息存储器0x1800。 因此、我的.TI-TXT 文件包含这部分代码。当我将.txt 文件传递给 BSL Scripter 命令时、它表示无法写入该位置并退出。 可能的原因是什么?

    Regds、

    ARS

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

    我在 上一篇文章中遗漏了 setup(来自 TI 应用报告 sla535a )。 此处的 MSP430目标  是定制 的 msp430f67791A 电路板

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

    尊敬的 James / TI 团队:

    请告诉我有关该主题的任何更新。

    Rgds、

    ARS

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

    尊敬的 TI 团队:

    很抱歉、我现在没有收到任何解决方案。您能否检查/确认。 通过上述 launchpad 设置、是否可以通过 UART BSL 升级 MSP430F67791A 的固件。

    如果是"否"、请返回、以便我们可以将该部件放入该特定项目中。

    Rgds、

    ARS

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

    您好、ARS、

    [报价用户="ARS"]我遵循了 TI 应用报告 SLAA535.适用于其他 MSP430 MCU 的相同设置。[/quot]

    在之前的帖子中、您不清楚如何使用 LaunchPad 进行 BSL 编程、因此感谢您提及此应用手册。

    [报价 USER="ARS"]在失败的场景中,LaunchPad 的红色和绿色 LED 持续闪烁[/QUERT]

    我在 SLAA535中找到了这一信息。 您可能需要检查 BSL 调用失败的原因。

    如果 BSL 调用失败、红色和绿色 LED 将以交替模式持续闪烁。 复位后、Launchpad 上的 MSP430G2231只能在开始时生成一次 BSL 进入序列。 因此、为了重新生成 BSL 进入序列、有必要通过按下 S1复位按钮来复位 Launchpad 上的 MSP430G2231。

    有关 BSL 调用失败原因的更多详细 信息,请参阅《MSP430Tm闪存器件引导加载程序(BSL)用户指南》中的第1.3.1.1.1节:阻止使用共享 JTAG 引脚调用 BSL 的因素。

    [报价用户="ARS"]是否可以  通过 UART BSL[/报价]升级 MSP430F67791A 的固件?

    如果需要稳健性、那么我建议使用 MSP-FET 或 BSL-Rocket 来确保所有器件均可进行一致的编程。 请记住、SLAA535中的 BSL 方法不使用官方 BSL 硬件工具、因此它将具有固有的限制。

    此致、

    James

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

    您好 James、

    感谢您的建议。

    [引用 user="James Evans 的说法]有关 BSL 调用失败原因的更多详细信息,请参阅 《MSP430Tm闪存器件引导加载程序(BSL)用户指南》中的第1.3.1.1.1节:阻止使用共享 JTAG 引脚调用 BSL 的因素。

    我检查了其中的几个...就像 VCC 对我来说是好的3.3V 电压。 TMS 和 TCK 引脚通过47k Ω 上拉为高电平、但仍然没有成功。

    [引用 user="James Evans"]如果 BSL 调用失败、红色和绿色 LED 将以交替模式持续闪烁。 复位后、Launchpad 上的 MSP430G2231只能在开始时生成一次 BSL 进入序列。 因此、为了重新生成 BSL 进入序列、有必要 通过按下 S1复位按钮来复位 Launchpad 上的 MSP430G2231。[/引用]

    这2个 LED (红色和绿色)不会停止闪烁。尝试按 launchpad 上的"S1"键或将 USB 电缆从 launchpad 重新插入 PC。但它没有帮助。

    我尝试的另一种方法是,通过按触觉开关(仅用于测试)从应用程序代码跳转到 BSL 位置。

    _disable_interrupt ();
    ((void (*)()) 0x1000)(); 

    它确实停止了。。。 Launchpad 上的红色和绿色 LED 闪烁、但 BSL 脚本编写器上的下一个进程 失败。 我试过几次,但没有成功。

    [引用 user="James Evans 的说法]如果需要稳健性、我建议使用 MSP-FET 或 BSL-Rocket 来确保所有器件均可进行一致的编程。 [/报价]

    好的、让我尝试一下 MSP-FET!

    Rgrds、

    ARS

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

    您好、ARS、

    [报价用户="ARS]]我检查了其中的几个...就像 VCC 对我来说是3.3V 的好电压。 TMS 和 TCK 引脚通过47k Ω 上拉为高电平、但仍然没有成功。

    感谢您的观看。 确保 JTAG 接口与 《MSP430硬件工具用户指南》中的建议相匹配。

    [引用 user="ARS"]我尝试的其他方法是通过按触觉开关(仅用于测试)从应用程序代码跳转到 BSL 位置。

    这可能会进入 BSL 模式、但 BSL 脚本编写器可能无法处理该问题、尤其是当它在 BSL 调用序列之后等待响应时。

    [引用 user="ARS">它确实停止了。 Launchpad 上的红色和绿色 LED 闪烁、但 BSL 脚本编写器上的下一个进程 失败。 我尝试过几次,但没有成功。[/引述]

    是否有特定的错误或错误代码?

    [引用 user="ARS"]好的,让我用 MSP-FET 尝试一次

    这将帮助我们了解器件可以正确进入 BSL 模式。 请告诉我们这是否可行。

    此致、

    James

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

    尊敬的 James:

    感谢您的意见。

    [报价用户="James Evans"]是否存在特定的错误或错误代码?

    它 是第一 个脚本编写器命令 response.checked 上的[E6]、它在脚本中启用详细模式。

    嗯… 我的另一种方法(即使用软件代码的一种变通方法)……这在昨天是不起作用的… 今天使用相同 的 MSP-EXP430G2 Launchpad 按照以下顺序工作:

    答:我的 LaunchPad 定制电路板设置与我的插件帖子中的设置相同。

    b.从 MSP430F67791A 应用程序代码跳转到 BSL 位置

    c.然后按下 launchpad 上的"S1"键。红色和绿色 LED 停止闪烁。

    d.然后、我调用 BSL 脚本程序、其中包含要加载的所需文件。 它正常工作。程序已加载到芯片!

    由于我们处于产品试用交付的边缘,这是我可以坚持使用的最佳方法。我可以感应到,...it 是硬件方法(使用 TEST & RST 引脚)中不会发生的 BSL 进入序列。

    对于硬件方法..... 我必须在一段时间内尝试使用 MSP-FET。

    很抱歉说… 您能不能帮助我从我的第一个帖子中获得一个关于该主题的问题。 它是:

    "在我的应用程序中、我在信息存储器0x1800处存储了一些出厂值。 因此、我的.TI-TXT 文件包含这部分代码。当我将.txt 文件传递给 BSL Scripter 命令时、它说无法写入该位置并退出。"

    是否仍有使用脚本编写器编写该部分以及主代码的方法。

    而且...我可以在 script.txt 中包含任何命令 这样、加载程序文件芯片后、可以自动复位、而不是执行下电上电。

    谢谢、

    ARS

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

    您好、ARS、

    我很高兴听到您在设置中找到了权变措施。

    [引用 USER="ARS"]在我的应用程序中,我在信息内存0x1800处存储了一些出厂值。 因此、我的.TI-TXT 文件包含这部分代码。当我将.txt 文件传递给 BSL Scripter 命令时、它表示无法写入该位置并退出。"

    您可能正在使用 MUS_ERASE 命令。 对于 MSP430闪存和 MSP432P4器件、此命令仅擦除器件的主存储器、而不擦除信息存储器。 要擦除信息存储器、请使用 ERASE_SEGMENT 或 ERASE_SEGM_32命令。

    但愿这有所帮助。

    此致、

    James

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

    尊敬的 James:

    James Evans 说:
    您可能正在使用 MUS_ERASE 命令。[/quot]

    我不使用此命令。

    在我的情况下 ,脚本中的以下行在写入时抛出该错误:

    RX_DATA_BLOCK  experiment_MSP430F67791A.txt


     我用于测试的.TI-TXT 文件(STARE_MSP430F67791A.txt) 为:

    @1800
    17
    @C000
    81 00 00 9C 8C 00 02 1C 3E 40 02 00 3F 40 00
    B0 13 6C C0 8C 00 1C 8D 00 94 C0 3E 40 01 00
    3F 40 00 00 B0 13 88 C0 B0 13 30 C0 B0 13 84 C0
    B2 40 80 5A 5C 01 40 18 5F 42 00 1C 4F 40 18
    82 4F 02 1C 40 18 D2 42 00 18 00 1C 0C 43 10 01
    1B 14 CA 0C 06 3C FA 4D 00 AA 00 01 00 3E 53
    3F 63 0B 4E EB 0F F7 23 1A 16 10 01 1F 15 0F 16
    CE 0C EE 0F 04 3C CC 43 00 AC 00 01 00 DC 0E
    FA 23 10 01 80 00 90 C0 80 00 50 C0 FF 3F 03 43
    80 00 8C C0 FE
    @FFFE
    00 C0
    q 

    [引用 user="James Evans"]要擦除信息存储器,请使用 ERASE_SEGMENT 或 ERASE_SEGM_32命令。[/quot]

    注意到

    而且...我可以在 script.txt 中包含任何命令 还是任何其他方式... 这样、加载程序文件芯片后、可以自动复位、而不是执行手动重启。

    谢谢、

    ARS

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

    您好、ARS、

    我需要几天时间来进一步研究。 我将在下周三回复更新。

    此致、

    James

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

    您好 ARS、

    [引用 user="ARS"]在我的情况下 ,脚本中的以下行在写入时抛出该错误

    您可能需要使用 toggle_info 命令对信息内存进行编程。 我建议您通读 引导加载程序(BSL) Scripter 用户指南

    ...我是否可以在 script.txt 中包含任何命令 或任何其他方式... 这样、加载程序文件芯片后、可以自动重置、而不是执行手动重启。[/quot]

    在 引导加载程序(BSL)脚本用户指南的表1中 、列出了 reboot_reset 命令、但 F6xx 器件不支持该命令。

    此致、

    James

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

    谢谢 James ...帮助我参考本文档。

    [引用 user="James Evans 命令]您可能需要使用 toggle_info 命令对信息内存进行编程。 我建议您通读 引导加载程序(BSL) Scripter 用户指南

    TOGGLE_INFO 命令用于切换 INFOA 锁定以保护或解锁 MSP430F5xx 和 MSP430F6xx MCU 上的 INFOA 段。

    另一点... 我在用户指南第14页中注意到的...不适合我。 正如我在先前的帖子中所提到的:

    RX_DATA_BLOCK  experiment_MSP430F67791A.txt   命令响应失败。

     

    guess...probably 在 脚本中执行 RX_DATA_BLOCK 命令之前、我必须使用 ERASE_SEGMENT 1800命令。

     

    [引用 user="James Evans "] 在引导加载程序(BSL)脚本用户指南的表1中 、列出了 reboot_reset 命令、但 F6xx 器件不支持该命令。

    我是否可以使用 此命令  set_pc {地址} 并将 地址作为复位矢量地址(假设它将是固定的0xFFFE),在脚本文件中将其作为 最后一个命令 ......... 这样、加载程序文件芯片后、可以自动复位、而不是执行手动重启。

     

    Rgds、

    ARS

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

    您好 ARS、

    [引用 user="ARS"]

    TOGGLE_INFO 命令用于切换 INFOA 锁定以保护或解锁 MSP430F5xx 和 MSP430F6xx MCU 上的 INFOA 段。

    另一点... 我在用户指南第14页中注意到的...不适合我。 正如我在先前的帖子中所提到的:

    RX_DATA_BLOCK  experiment_MSP430F67791A.txt   命令响应失败。

    [/报价]

    下面是假设在信息段中没有重要内容(例如工厂 TLV 数据)的情况下、我会做什么。 您应该使用两个独立的.txt 文件:一个用于信息、一个用于主存储器。 将编程分为两个部分、如下所示。

    TOGGLE_INFO

    ERASE_SEGMENT 0x1800

    RX_DATA_BLOCK info_memory_only_data.txt

    TOGGLE_INFO

    批量擦除

    RX_DATA_BLOCK main_memory_only_data.txt

    [报价 USER="ARS]]我能否在    脚本文件 中使用此命令 set_PC {地址}并将地址作为复位矢量地址(假设它将固定为0xFFFE)作为最后一个命令 ......... 这样、加载程序文件芯片后、可以自动重置、而不是执行手动重启。[/quot]

    这似乎是合理的。 请注意 BSL Scripter 用户指南中的常见问题解答2。

    此致、

    James

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

    [引用 user="James Evans 的说法]假设信息段中没有任何重要内容(例如工厂 TLV 数据)、我会做这件事。 您应该使用两个独立的.txt 文件:一个用于信息、一个用于主存储器。 将编程分成两个部分、如下所示。

    好的...詹姆斯...据了解,我们无法使用 BSL 上载一个单个文件(包含代码+信息部分),我们稍后将尝试在...上进行检查。使用您的部分解决方案,将.txt 文件分为两个。

    感谢并感谢 您对此主题的支持。

    TI 现在可以关闭 Thread。

    Rgds、

    ARS