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.

[参考译文] MSP430FR2433:使用 Uniflash 通过 BSL 对存储器进行编程时遇到问题

Guru**** 2529560 points
Other Parts Discussed in Thread: MSP430FR2433, MSP-EXP430FR2433, UNIFLASH, MSP-FET, MSP-EXP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/837124/msp430fr2433-trouble-programming-memory-through-bsl-using-uniflash

器件型号:MSP430FR2433
主题中讨论的其他器件: MSP-EXP430FR2433UNIFLASHMSP-FETMSP-EXP430FR5969

我们正在尝试使用 UART BSL 模式使用 Uniflash 对 MSP430FR2433进行编程、我们需要帮助。 我们使用的是 Uniflash v5.0.0.2289。 我们还使用 MSP-EXP430FR2433板,并非常密切地遵循“使用 UniFlash 对 MSP430Tm和 SimpleLinkTmMSP432Tm、CC13xx、CC26xx 和 CC32xx MCU 的引导加载程序进行编程”第5节中描述的示例。 我们创建了一个简单的 LED 闪烁程序、并将其输出转换为 TI-text 十六进制格式。

我们的映像文件的内容如下:

@C400
B2 40 80 5A CC 01 D2 D3 04 02 D2 D3 02 02 92 C3
30 01 B2 D0 10 00 82 03 B2 40 50 C3 92 03 B2 D0
20 02 80 03 43 32 D2 03 43 03 43 03 43 FE 3F 03 43
31 40 00 30 B0 13 5E C4 0C 43 B0 13 00 C4 1C 43
B0 13 58 C4 D2 E3 02 B2 80 B0 3C 92 03 00 13.
32 D0 10 00 FD 3F 03 43 03 43 FF 3F 03 43 1C 43
1001
@ff80
FF FF FF FF FF FF FF FF
@FFDA
50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4
50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 44 C4
50 C4 50 C4 30 C4

当我们从擦除器件开始时、密码文件的内容为:

@FFe0
FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF

当我们从预编程器件开始时、密码文件的内容为:

@FFe0
50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4
50 C4 50 C4 50 C4 50 C4 44 C4 50 C4 50 C4 30 C4

Uniflash 出现以下错误:  

映像加载失败:闪存通用、正在加载映像... 错误:-9

无论是从预擦除的器件存储器开始、还是从包含所有 ff 值 的密码文件开始、还是从预编程的器件和相应的密码文件开始、我们都会遇到相同的错误。

问题:

  1. Uniflash v5.0.0.2289是否能够使用 MSP-EXP430FR2433板通过 BSL 对 MSP430FR2433进行编程?
  2. 上面列出的 Uniflash 错误代码的含义是什么?
  3. 请提供有关我们可能出错的问题的建议。

谢谢

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

    您好!

    我怀疑您会看到这个问题、因为 MSP-EXP430FR2433板载调试器不支持 BSL 编程。 根据 《MSP430 FRAM 器件引导加载程序(BSL)用户指南》中的 BSL 概览表1、应使用 MSP-FET 或 MSP-BSL (Rocket)。  在《使用 UniFlash 的 MSP430、MSP432、CC13xx、CC26xx、CC32xx MCU 的程序引导加载程序 用户指南》中的图6中、您可以在 UniFlash 中看到这两个选项。

    希望这对您有所帮助。

    此致、

    James

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

    感谢您的回复。 我们断开了 MSP-EXP430FR2433电路板的 J101跳线、并连接了 MSP-FET 的相应信号。 我们仍然无法进行此操作、但现在 UniFlash 提供了以下错误。

    映像加载失败:闪存通用、正在加载映像... 错误:-1

    顺便说一下、这会产生一个不同的问题。 应在 UniFlash 的设置选项卡中使用哪个 MSP-FET COM 端口号(MSP 调试接口或 MSP 应用 UART1)。 请参阅下面的屏幕截图。

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

    您好!

    您需要选择应用 UART COM 端口、而不是调试接口 COM 端口。 BSL 进入序列使用调试接口 COM 完成、但 BSL 通信通过 UART COM 端口进行。

    使用 UniFlash、MSP-EXP430FR5969 LaunchPad 和 MSP-FET、我能够使 BSL 编程正常工作。 由于 BSL TX 和 RX 引脚连接到 JTAG 连接器、MSP-FET 使用板载 JTAG 连接器在该 LaunchPad 上工作。 我确实必须单击两次"Load Images"按钮、但它确实可以正常工作、如下面的日志中所示。

    希望这对您有所帮助!

    此致、

    James

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

    我们在这方面取得了良好的进展。 我将在下面列出我在帮助他人的情况下所做的事情。

    按如下方式将 MSP-FET 连接到目标:

    • MSP-FET 引脚2 (VCC_TOOL)至目标引脚24 (DVCC 3.3V)
    • MSP-FET 引脚9 (GND)至目标引脚18/23 (DVSS)
    • MSP-FET 引脚11 (RST)至目标引脚1 (RST/SBWTDIO)
    • MSP-FET 引脚8 (TEST/VPP)至目标引脚2 (TEST/SBWTCK)
    • MSP-FET 引脚12 (UART_TXD)至目标引脚 4 (P1.5/UCA0RXD)
    • MSP-FET 引脚14 (UART_RXD)至目标引脚3 (P1.4/UCA0TXD)

    按照以下步骤设置 UniFlash:

    • 连接= MSP430FR2433 (引导加载程序)
    • COM 端口= 71 (Windows 开发管理器中的"MSP 应用 UART1")
    • 通信网桥= MSP-FET

    遗憾的是、仍然存在问题、但我认为这可能与我的十六进制转换有关。 我使用此命令行进行转换:
    hex430.exe --byte --memwidth=8 --romwidth=8 --ti_txt -o blink_bsl_test.txt blink.out

    这是我尝试对擦除的器件进行编程时从 UniFlash 获得的输出:

    [2019年9月9日、2:18:35 PM] [信息] MSP430:MSP430FR2433 (引导加载程序)
    [2019年9月9日、2:18:57 PM] [信息] MSP430:MSP430FR2433 (引导加载程序)
    [2019年9月9日、下午2:19:00 ] [信息] MSP430:BSL 密码正确!
    [9/9/2019、2:19:00 PM] [INF] MSP430:供应商:[TI] CI:[08] API:[35] PI:[B3]
    [9/9/2019、2:19:00 PM] [INF] MSP430:编程存储器时间已过:0.262秒
    [9/9/2019、2:19:00 PM] [INFM] MSP430:编程的字节数:144字节
    [9/9/2019、2:19:00 PM] [INF] MSP430:编程速度:0.5367kByt/s
    [9/9/2019、2:19:00 PM] [错误] MSP430:0xffe0处的 CRC 校验不匹配;预期值:从 BSL 获取的0x75f8:0xa9a9
    [9/9/2019、2:19:00 PM] [INFM] MSP430:在0xc400处验证存储器是否与预期的 CRC 值0xf3b 匹配
    [9/9/2019、2:19:00 PM] [INFM] MSP430:验证内存:0x80与预期的 CRC 值0x97df 匹配
    [9/9/2019、2:19:00 PM] [info] MSP430:verifying memory at:0xxda is match with the Expected CRC value:0x769a
    [9/9/2019、2:19:00 PM] [INF] MSP430:验证存储时间已过:0.134s


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

    明白了。 我们终于有了一些东西在工作!

    当我们使用正确 的密码文件并连续两次尝试 Uniflash 时、编程始终成功。 第一次尝试失败、出现"[ERROR] MSP430:[ERROR] BSL 密码不正确!" 然后第二次尝试工作正常。 这是可重复的。

    为了生成密码文件、我们使用 CCS 存储器窗口从地址0xffe0开始写入16个字、然后使用以下命令行将其转换为 TI-hex 格式:hex430.exe --byte --memwidth=8 --romwidth=8 --ti_txt -o password.txt password.out

    这将生成我们的 password.txt:

    @FFe0
    50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4 50 C4
    50 C4 50 C4 50 C4 50 C4 44 C4 50 C4 50 C4 30 C4

    Uniflash 成功输出:

    [9/9/2019、3:03:57 PM] [INF] MSP430:MSP430FR2433 (引导加载程序)
    [2019年9月9日、下午3:04:00 ] [信息] MSP430:BSL 密码正确!
    [9/9/2019、3:04:00 PM] [INF] MSP430:供应商:[TI] CI:[08] API:[35] PI:[B3]
    [9/9/2019、3:04:00 PM] [INF] MSP430:编程存储器时间已过:0.329s
    [9/9/2019、3:04:00 PM] [INF] MSP430:编程的字节数:176字节
    [9/9/2019、3:04:00 PM] [INF] MSP430:编程速度:0.5224kByt/s
    [9/9/2019、3:04:00 PM] [INFM] MSP430:验证存储器地址:0xc400是否与预期的 CRC 值:0xf3b 匹配
    [9/9/2019、3:04:00 PM] [info] MSP430:正在验证内存:0xx80是否与预期的 CRC 值:0x97df 匹配
    [9/9/2019、3:04:00 PM] [info] MSP430:verifying memory at:0xxda is match with the Expected CRC value:0x769a
    [9/9/2019、3:04:00 PM] [INFO] MSP430:正在验证内存:0xffe0是否与预期的 CRC 值:0xa9a9匹配
    [2019年9月9日、下午3:04:00 ] [INFOR] MSP430:验证存储时间已过:0.134s
    [2019年9月9日、下午3:04:00 ] [成功]程序加载已成功完成。