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.

[参考译文] MSP430F5239:MSP430F5239的 I2C 定制 BSL

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/741384/msp430f5239-i2c-custom-bsl-for-msp430f5239

器件型号:MSP430F5239
主题中讨论的其他器件: USB2ANYMSP430F5229MSP-FET

您好!

简介:

我正在使用 MSP430F5239、我的系统需要 I2C BSL 来现场升级固件。 我们发现该器件中的默认 BSL 是基于计时器的 UART、我们需要在将定制 BSL 交付给客户之前对其进行闪存。

迄今取得的进展:

为了创建定制 BSL、我们计划使用 提供的"MSP430BSL_1_01_00_01"作为参考。(CCS_v7_MSP430F522x_I2C 项目更具体。)

我们发现"Lite FET-Pro430"是加载 BSL 的最佳软件。 在开始为我们的 MSP430器件更改 BSL 项目之前、我们决定使用 CCS_v7_MSP430F522x_I2C 提供的默认构建进行拍摄。 为了确认 BSL 是否已正确加载且正在运行、我们向 I2C 发送了一些写入命令、从器件地址为0x48、我们看到 MSP430进行了响应。 因此、我们非常确信我们已正确加载 BSL。  

在上述步骤中、您是否建议我们遵循更好的建议?

主要问题:

下一步是使用 BSL 加载最终应用二进制文件。 我们使用 FET 编程器、针对基于 PC 的加载、遇到了 BSL 脚本编写器的命令石灰模式。

BSL-Scripter.exe -n 5xx -I [COM26、I2C、100000 ]-b -w RTOSDemo.txt -v -z [SET_PC、0x4400]

我们收到一条错误消息、指出"所选的通信协议不适用于所选系列!"。 因此、我们决定寻找替代方法、并找到了"SimpleLink Host for MSP430 UART BSL"。 (用于 BSL 的嵌入式编程解决方案)。 我们发现主机实现仅适用于 UART、而不适用于 I2C。

请告诉我们我们如何继续。 此外、如果有任何其他主机固件使用 I2C 与 MSP430F5229 (USB2ANY 中使用的主机固件)一起实现、请共享

提前感谢

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

    MSP 和您的 PC 之间的硬件连接是什么? 是 MSP-FET 还是 MSPBSL-Rocket?

    下面我们继续帮助解决您的 BSL 通信问题、但我想指出的是将您的应用和 BSL 映像都添加到器件上的一种更简单的方法。 我建议分别编译 BSL 和应用程序映像、然后手动合并二进制映像(.txt 文件)。 由于 BSL 和应用领域不重叠、因此这种方法应该有效并且在大多数情况下都很容易实现。 然后、您可以同时将组合图像编程到设备上。 这将在生产过程中节省您的编程时间和步骤。

    为了帮助使用 BSLSpiper、我建议将您的命令放入脚本文件中、并通过命令行运行脚本。 这样、BSLScripter 尝试的每个步骤都会打印输出。 您还可以打开脚本上的详细信息以获取额外的调试信息。 然后、您可以在此处获取屏幕截图或复制文本、以便我们进行调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jace:

    感谢您建议将 BSL 和应用程序固件捆绑为单个.txt 文件。

    当前使用的硬件连接 是 MSP-FET。  但是、我们的最终解决方案需要一个嵌入式系统通过 BSL (另一个 MSP430器件- MSP430F5239)上传代码。 由于我们不使用默认 BSL 并使用自定义 BSL 进行更新、因此我们不希望测试两侧(主机和器件)。

    我们的第一步是使用 BSL Scripter 和 MSP-FET 测试定制 I2C BSL。 一旦自定义 BSL 经过测试、运行良好、我们需要从主机植入开始、通过 BSL 加载 FW。

    使用 BSLScripter 进行测试时、出现以下错误:

    错误:所选通信协议不适用于所选系列!

    我觉得 BSL 脚本编写器仅支持使用所有系列的默认 BSL 加载。 是否有办法解决此问题?

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

    我已经给我们的工具时间赋予了时间、BSL-Scripter 似乎不会验证 F5xx 器件的 I2C 协议的使用。 此功能已添加为将来版本的功能请求。 同时、您可以在脚本中使用 FRxx 指示符、因为这些器件确实验证 I2C 协议、并且它们使用与 F5xx 器件相同的协议和调用序列。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我遵循了您刚才提到的建议、下面是我得到的错误。

    "未知的 ACK 值"

     e2e.ti.com/.../lnk_5F00_msp430f5229_5F00_bsl.txt

    我还附加了附加的 BSL 二进制文件、使用的密码文件和用于构建定制 BSL 的.cmd。

    注意:我也在使用为 MSP430F5229提供的相同 cmd 文件来为 MSP430F5239创建二进制文件。

    e2e.ti.com/.../MSP430F522x_5F00_I2C.txt

    e2e.ti.com/.../1325.pass32_5F00_default.txt

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

    在执行 mode 命令后、是否也可以添加 verbose 命令?

    我认为可能会发生的一件事。 通过使用默认密码文件、您将假定器件已执行批量擦除。 以上步骤实际上是批量擦除器件、因为提供的"默认"密码是错误的密码。 (在批量擦除时、有时会出现 AB 未知 ACK 值错误。) 此时 BSL 仍处于锁定状态、因此 RX_DATA_BLOCK 命令将不起作用。 尝试重复 RX_Password 命令、以便为其提供错误的默认密码、然后解锁器件。

    作为额外的预防措施、此时不要对 I2C 使用400kHz、并在通信良好之前降至100kHz。 另外、请查看具有 O 示波器和逻辑分析仪的 I2C 线路、以确保通信稳定。 您将哪些上拉电阻器用于 I2C?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jace:
    您回答正确。 发生了批量擦除。

    但我发现提供的 BSL 示例代码也使用了主存储器位置(除了 BSL 空间)。 因此、批量擦除会导致 BSL 发生故障。 我通过删除很少的特性来减小 BSL 的大小、并且能够将 BSL 安装在2KB BSL 空间内。 我现在可以加载我的应用程序固件。

    感谢您的及时支持。