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.

[参考译文] MSP430F6726:通过I2C (PM_UCB.S.和PM_UCB0CLK)进行固件更新

Guru**** 2613775 points
Other Parts Discussed in Thread: MSP430F6726, MSPBSL

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/657357/msp430f6726-firmware-update-through-i2c-pm_ucb0scl-and-pm_ucb0clk

部件号:MSP430F6726
主题: MSPBSL中讨论的其他部件

大家好,

您能否提供通过I2C(PM_UCB.S.和 PM_UCB0CLK)更新固件的过程 ?

 我理解,这可以通过两种不同的方式来实现

1)进入BSL模式并通过I2C总线发送二进制图像。  

2)当前运行的应用程序必须读取二进制映像,并且必须存储在某个位置。下次控制器重新启动时,新映像将开始执行。

在上述两个选项中,我都不清楚如何实施。

在第一个选项中,我没有使用RST/NMI/SBWTDIO和TEST/SBWTCK引脚生成BLS输入序列的范围我只有I2C总线通过连接器从主板出来。  请说明如何从应用程序进入BSL模式, 将二进制映像写入控制器闪存的数据包格式是什么,写入映像的闪存的地址位置是什么。  

在第二个选项中,写入映像的闪存地址是什么? 以及如何在控制器重新启动时从以前的位置切换到新位置?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FRAM BSL用户指南(SLAU550) :www.ti.com/.../slau550k.pdf中介绍了您的选项1
    选项2听起来更像是自定义BSL解决方案,在这种情况下,您应该考虑MSP430FRBoot (SLAA721): www.ti.com/.../slaa721b.pdf

    通过应用程序访问BSL,方法是跳到0x1000:((void (*)))0x1000)();

    第二个选项闪存地址取决于自定义命令链接程序文件设置。

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

    您好 ,Ryan Brown,感谢您的建议。  

    >>>>> FRAM BSL用户指南(SLAU550)中介绍了您的选项1:www.ti.com/.../slau550k.pdf <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    将上述链接作为参考,通过调用(void (*))0x1000)()跳至0x1000位置后,我发送了此命令

    80 33 00 11 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 9E E6 (均为十六进制,示例在数据表SLAU550中提供)

    解锁BSL保护的命令。 我没有收到控制器的任何响应。

    后来我尝试发送以下命令:

    阅读BSL版本:8001 00 19 E8 62 (全部为十六进制)。 我没有收到任何答复。

    RX数据块:80.08万10000001032547693 CA10万 CA (1.0325万 (均4.7693万均为十六进制,数据表中给出了示例)。 我没有收到任何答复。

    MSP430F6726的从属地址为0x48。 微控制器的引脚编号是引脚38 (SCL)引脚39 (SDA)。

    我通过在控制器中运行I2C示例应用程序来验证I2C物理连接,在该控制器中我可以读取/写入应用程序数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    提供的序列将在已编程设备上启动批量擦除(密码错误响应)或解锁空白设备(成功操作响应),前提是已正确输入BSL且所有连接均正确。 TX BSL版本和RX数据块命令受密码保护,还应返回BSL锁定响应。 MSP430F6726只在WFP 3.0 / WFP 3.1 上提供UART BSL,如器件数据表中所述。

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

    感谢您的快速响应。 我已交叉检查UART BSL和控制器是否按预期响应。 由于我们已经使用此MSP430F6726IPZ部件号设计了示意图,您能否建议另一个部件号,但不会影响我们的硬件示意图,也不会影响我们的硬件示意图? 支持I2C BSL。

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

    我把最后的答复写得太急了。 尽管默认的BSL仅通过UART通信,但F5xx/6xx系列MSP430器件具有驻留在闪存中的BSL,因此可以使用自定义的BSL。 SLAA450中对此进行了描述,我建议您查看MSPBSL_CustomBSL430软件包中提供的资源: software-dl.ti.com/.../index_FDS.html

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

    正如您所提到的,我浏览了在此链接(MSPBSL_)提供的代码示例,我了解所有这些示例都是为不同部件号创建的IAR工作台项目,但我们使用的是CCS7和MSP430F6726, 如果您在CCS7中有MSP430F6726的I2C BSL代码示例,并提供将其闪存至控制器内存的过程,您能否分享。 谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    遗憾的是,尚未为CCS创建CustomBSL宣传材料,因此您必须自行移植这些资源。

    此致,
    Ryan