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.

[参考译文] MSP430FR5969-SP:通过固件不一致/失败的方式初始化 BSL

Guru**** 2539500 points
Other Parts Discussed in Thread: MSP430FR5969, MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1017742/msp430fr5969-sp-initialization-of-bsl-via-firmware-inconsisteny-failuer

器件型号:MSP430FR5969-SP
主题中讨论的其他器件:MSP430FR5969MSP-FET

MSP430FR5969 BSL 的软件/固件初始化

大家好、

我正在使用 MSP430FR5969并尝试使用数据表中的固件功能调用 BSL。 我还使用 MSP-FET 作为 BSL-Scripter 和 MSP430FR5969之间的桥梁。 我正在使用 UART A0端口进行 BSL 编程。  

我的问题是无法使固件调用可靠地工作。 硬件调用是防弹的、可以使其每次都正常工作、但这不是我在现场对器件进行编程时可以使用的方法、因此需要使用固件方法来执行此操作。 如果是、固件调用似乎每十次执行一次。 它非常不可靠,而且不可能重复。  我已经尝试了多种方法,到目前为止,最可靠的方法是将 MCLK 设置为1 MHz,但仍然有问题。

以下是我的代码。 我对此感到非常沮丧,以至于在设置时钟后,我才让设备直接跳转到引导加载程序。

 

 

这是我的脚本文本文件

操作顺序。

  1. 使用 MSP-FET 并使用两线制编程对 MSP430FR5969进行编程
  2. 禁用/断开调试器
  3. 弹出到脚本程序并运行我的脚本。
  4. 随后会出现大规模混乱。

  我通过 BSL-Scripter 看到的错误消息是:

  1. 未知 ACK–我理解这是错误的确认、并且未调用 BSL。 这适用于错误和正确的密码 RX 传输

 

  1. BSL 密码正确! –我有时会在传递错误密码时获得此信息。 通常在多次尝试使用脚本程序之后。 这很奇怪、因为密码故意错误。

 

  1. BSL 已锁定–此错误适用于传递错误密码但芯片不跳转到 BSL 的情况。 当我尝试通过 BSL-Scripter 上载我的十六进制文件时、我使用正确的密码看到了这一点。 但是、我确实注意到了某个情况、即当我发送错误的密码并且我获得 BSL 锁定错误的频率比它看起来更低。 奇怪和不一致,可能根本不意味着什么。

 

 

  1. 标题无效–不确定这是什么、需要挖掘更多信息。 通常与未知命令错误配对。

 

 

当它决定运行时、这是来自脚本编写器的日志

 

 

我的问题是:

我缺少什么? 我是否需要以不同的方式设置 CLK? 我是否还需要对 UART 端口执行某项操作? 为什么它如此不一致? 我是否需要清除配置寄存器?

文档也几乎没有帮助、所有文档都说是使用  的、然后引用另一个文档、该文档引用了另一个文档、而它只是一个大圈。

如果有人有任何建议、请告诉我。 感谢您花时间阅读并提供帮助! 我真的很感激

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

    您好 Stefan、

    不知道为什么你遇到这么多麻烦。  根据 SLAU550、此器件的 BSL 运行频率为8MHz。 我假设 BSL 基于此配置9600波特率、因此我将坚持使用8MHz?  除此之外、您不必为 UART 执行任何操作。  我看到您使用的是9600、这是正确的。

    您是否有示波器或逻辑探头来捕获 UART RX/TX 信号并确认它们的运行速率正好为9600 bps?

    如果 BSL 脚本编写器显示消息"Unknown ACK value"、这通常表示您未连接到 BSL 或与 BSL 失去通信。

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

    尊敬的 Dennis:

    感谢您抽出时间作出响应并提供帮助。  

    在过去的尝试中、我以8MHz 的频率运行、但仍然有问题。 我的印象是、一旦你调用 BSL、BSL 就会设置 CLK 和 UART。 但是、这一假设(至少对于时钟设置是错误的)。 在通过硬件或软件调用跳转到 BSL 之前、需要将 M_CLK 设置为8MHz。 BSL 使用什么时钟源、它使用 MCLK、我假设这是 DCO 设置的? 这是有道理的、因为 BSL 不知道任何 XTAL。  

    不管怎样、要回答您关于正确设置 UART 的问题、是的。 我附上了我的示波器的一份截图。 我确实注意到的一点是、FR5969有时在 BSL 中不会将任何内容(如其 ACK)传回脚本编辑器、这会引发错误的 ACK 错误。  我所做的是去一个具有 FR5969的 RocketBoard、我仍然遇到同样的问题。 它不工作。 它就像没有正确设置的东西。 我进入 BSL 是因为在复位之前器件不会对任何内容做出响应。  

    蓝色- RX

    绿色- TX


    此示波器捕获(上面)是我尝试向器件写入错误密码时发生的。 无 ACK。  

    当我尝试向器件写入正确的密码时、会发生上述示波器捕获。 我得到的 TX 响应不是那么完美。  

    不确定 BSL 是否正确设置?  

    您是否能够找到有关其他3个错误消息的任何信息?

    谢谢、

    Stefan  

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

    您好 Stefan、

    我没有很幸运地跟踪错误消息。  让我尝试在 HW 中设置此设置、看看我是否可以重复您的问题。

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

    Dennis、

    谢谢你。 因此、我似乎已经将问题简化为 MSP-FET。 如果只使用普通的 USB 转 UART FTDI 线缆、那么当我通过 UART 和 BSL 上传代码时、脚本编写器似乎可以在第二次尝试时工作。 我不知道 MSP-FET 的作用是什么、但它似乎根本不适用于通过软件进行 BSL 编程-对于硬件调用、它的工作方式就像一种魅力一样。 为了说明我的新测试、我概述了以下步骤。  

    1.我使用 Spy-bi-wire 通过 CCS 和 MSP-FET 将测试固件刷写到电路板上。

    2.从计算机上拔下 MSP-FET、插入常规 USB/UART FTDI 线缆并将 TX/RX 连接到2.0/2.1

    3.运行脚本程序。 获取正确密码的错误 ACK (0xF7)

    4.再次运行脚本程序,获取正确密码的良好 ACK (0x00)。 然后对其进行编程。

    您是否知道为什么我必须运行脚本编写器两次才能使其在第二次尝试时工作?  

    至于其他错误代码、我设法教自己如何在我的 Scope 上使用解码功能、并且能够将十六进制值与文档中列出的错误十六进制值相匹配。  

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

    我忘记为我找到的半解决方案添加我的 Scope 屏幕截图

     

    上面:第一次尝试运行脚本- 错误 ACK 是0xFC 而不是0xF7

    上面:第二次尝试-良好的 ACK (我知道需要校准我的探头)

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

    您好 Stefan、

    不确定为什么需要2次尝试。 在第2步和第3步之间、您是循环通电还是复位 MSP430?

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

    您好 Dennis、

    我不是。 这是一个非常有趣的问题。