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.

[参考译文] MSP430F248:从 MSP430F247迁移-预编程故障

Guru**** 2539500 points
Other Parts Discussed in Thread: MSP430F247, MSP430F248, MSPBSL, MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/610461/msp430f248-migration-from-msp430f247---pre-programming-failure

器件型号:MSP430F248
主题中讨论的其他器件:MSP430F247MSPBSLMSP-FET

大家好、

我希望有人能帮助我找出我正在从 MSP430F247迁移到 MSP430F248的问题的最根本。  

在使用与 MSP430F247相同的固件进行出厂预编程后、MSP430F248部件不工作。 我不熟悉 MSP430系列、但从我所读出的唯一区别是存储器大小。 如果我错了、请纠正我的问题、但相同的固件应该可以正常工作。 只要正确设置加电矢量、代码存储器起始地址的差异就不重要、对吧?

此外、与 固件文件相比、已知工作正常的 MSP430F247器件识别出存储器内容存在差异。 已知工作部件已从电路板上移除并用作主器件。 读取内容并将其与提供的固件文件进行比较。 校验和与代码存储器匹配。 然而、当内存应该保持不变时、在地址0xFFDE 处将两个字节设置为00、从而产生 FF 值。 我认为这不应影响正常的器件运行、而是会影响使用引导加载程序的电路内编程。 有人可以确认这一点吗?

我花时间查看了发布的资源、尤其是迁移指南、但我没有找到解决方案。  

如果您能帮助解决上述问题或至少消除可疑问题、我们将不胜感激。  

谢谢你

Terry

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

    您是否已读出已在 MSP430F248中编程的内容? 工厂预编程使用了哪些工具?

    地址0xFFDE 用作引导加载程序安全密钥(BSLSKEY)。 这个位置上的一个0xAA55将完全禁用 BSL。 A
    如果提供的密码无效、则0会禁用闪存擦除。

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

    感谢您的发帖。 当您说"MSP430F248部件不工作"时、您能更具体地描述一下正在发生或未发生的情况吗?

    从更高层次看、我想了解您为什么要这样做。 如果您计划为 MSP430F247的现有项目添加代码、并充分利用 MSP430F248更大的存储器大小、这是有道理的。 如果是、我建议您在您使用的任何 IDE (例如 CCS、IAR 等)的项目设置中选择 MSP430F248、并为您的固件重新构建二进制文件、然后相应地对 MSP430F248进行编程。 您能否尝试一下、并告诉我问题是否仍然存在?

    您如何尝试对这些器件进行编程? 您使用的是 JTAG (4线制或 SBW)还是通过 BSL? 有关设置的任何其他信息都很有用、包括 IDE、版本、仿真器等

    我怀疑您使用的是 BSL、地址0xFFDE 的0x00值意味着错误的密码不会擦除器件。 如果您使用的是 MSPBSL 工具、则 MUS_ERASE 函数/命令可能依赖于向器件传递错误的密码(有意)来擦除器件。

    此致、

    James

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

    尊敬的 James:

    感谢你的答复。

    当我说器件不工作时、我是说用使用完全相同 的固件的新编程的 TI MSP430F248器件替换 TI MSP430F247后、已知工作正常的 PCBA 将不再工作。 新零件的编程是由编程机构在零件一级完成的。 该部件由一家合同制造商在工作板上更换、该制造商对工作进行了全面检查。 产品 LED 指示灯通常偶尔闪烁、表示无法正常工作。 预计电路板本身的形状会很好。 新部件和相关编程出现问题。 我能够与器件上的引导加载程序进行通信。

    根据价格和交货周期、零件将从247更改为248。 目前、获得248个器件的速度更快且成本更低。 负责设计的工程师发布了248个零件、作为247的可接受替代件。 遗憾的是、此人不再与公司合作。  

    如果可能、请勿以任何方式接触固件、这一点很重要。 现有固件已经过测试、批准、并且具有多年的现场时间。 重复发布周期非常昂贵且耗时、应避免。 您能告诉我是否可以在248设备上使用247固件吗? 我的理解是、除了代码存储器起始地址之外、该器件是相同的。 已知现有地址仍处于可接受的范围内、加电矢量是相同的、代码是否不能在新的248器件上工作?

    我直接使用该部件的能力非常有限。 我目前没有开发板、编程器或 JTAG 可供使用。 我可能需要很快得到一些东西,但现在我希望用手头的东西解决这个问题。 我有一个定制的特定于产品的测试适配器、它允许我与 UART 通信。 我可以对247个器件进行重新编程、但到目前为止还不能对248个采样进行编程。 我的重点实际上是让现有247固件尽可能在248器件上工作、而无需重新编译。  

    247和248两种现有器件的编程由编程机构完成。 我不知道他们使用哪种型号的机器、但我相信这是 BP Micro 产品。

    关于 BSLKEY、使用248采样器件上的 FF 对0xFFDE 地址进行编程。 我无法找到有关 FF 值对0xFFDE 有何影响的任何信息。 我知道0xAA55会禁用安全性、00会禁用错误密码上的擦除、但其他值会怎么样? 在248样片器件上、我能够使用上面提到的定制适配器与引导加载程序进行通信。 接受密码、但擦除命令不起作用。 我今天将尝试更安全的命令。  

    如果您可以确认247个代码是否能够处理248、以及告诉我哪些值会影响 BSLKEY 0xFFDE 的记录值、那将会非常有帮助。  

    感谢您所做的一切努力。 我对此表示赞赏。

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

    Terry、您好!

    感谢您的详细回答。

    虽然我无法保证为 MSP430F247编译的固件将直接在 MSP430F248上工作、但它应该可以工作。 正如您已经指出的、主存储器的起始地址是0x4000而不是0x8000、但这不会导致问题、因为当为 F247编译固件时、由链接器文件定义的主存储器区域位于此范围内。 我比较了 F247和 F248的链接器文件、唯一的区别是主存储器的起始地址和大小。

    但是、F247的固件映像在 F248上无法正常工作。 如果您有其中一个 F248器件、您可以使用我们的 MSP-FET 通过为 F248编译的示例项目对其进行编程、以查看其是否起作用。 您甚至可以告诉编程机构尝试此操作。 我担心他们没有使用我们推荐的工具之一。

    关于0xFFDE 地址、数据表指定不使用该地址处的中断向量。 但是、如果使用 BSL 功能、这里的内容会影响 BSL 操作。 如果这些值不等于0xAA55或0x0000、它们不应影响任何东西

    编辑:请参阅以下 Terry 的评论。 如果这些值不是0xAA55或0x0000、当接收到错误的密码时、闪存存储器将被擦除。



    关于使用 F248而不是 F247的决定、我将直接与您联系、以了解有关这方面的更多信息。

    此致、

    James

    MSP 客户应用

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

    谢谢 James。

    对于 BSLKEY、直到现在、有一个片段丢失了。 在 BSL 用户指南 中、SLAU319N:

    • 0x0000:如果目标接收到不正确的 BSL 密码、闪存存储器不会被擦除。
    • 0xAA55:BSL 被禁用。 这意味着 BSL 不是使用部分1.3中显示的默认初始化序列启动的。
    • 所有其它值:如果发送了一个不正确的密码、整个闪存存储器地址空间将被自动擦除

    我昨天尝试获取 MSP-FET。 没有人有库存、但 TI 和发货大约需要两周时间。 情况不好。 我今天将介绍第三部分选项。 我不能等待两周。

    感谢 James 的帮助。

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

    Terry、您好!

    [引用 user="Terry Lyngen"]所有其他值:如果传输了错误的密码,则会自动擦除整个闪存地址空间

    您完全正确。 我错过了地址0xFFDE 的所有其他值将导致闪存在密码错误后被擦除的事实。 感谢您指出这一点。 我们的数据表中未包含此内容、我对此感到惊讶、并将要求添加此内容。

    此外、对于购买 MSP-FET 的延迟、我也感到抱歉。 同时、您可以尝试订购 MSP-BSL"Rocket"工具、通过 BSL 接口对 F248进行编程、但 Olimex 网站直到8月14日才处理订单。 最好继续订购 MSP-FET、然后重点讨论为什么不能像 F247那样通过 BSL (UART)对 F248进行编程。 我们的 LaunchPad 可用于对外部目标进行编程、但遗憾的是、它们不支持 F24x 器件所需的4线 JTAG。

    我在数据表中发现了一个有趣的东西。 在顶部的第17页、显示"如果复位矢量(0xFFFE)包含0xFFFF (例如、如果闪存未编程)、CPU 在加电后进入 LPM4。" 这也许是您预编程的 F248器件无法正常工作的原因(例如使 LED 闪烁)。 您能否检查以查看在0xFFFE 上编程的内容?

    此致、

    James

    MSP 客户应用

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

    我之前验证了加电/复位矢量是否具有非默认值。 作为将代码留在地址0x8000的完整性检查的一部分、对于248部分、我检查了矢量以确保它指向现有程序代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的观看。 信息段 A 中的存储器是否有可能被固件映像覆盖? 段 A 包含校准数据。 复位后、保护段 A 不被编程和擦除。 它可以被解锁、但是如果需要器件专用的校准数据、应该注意不要擦除这个段。

    您能否共享 F247和 F248器件的修订版本? 也许是不同的修订版本、勘误表导致了这一问题。

    理想情况下、我们可以采用 F248器件、将它们放置在目标板中、并使用 MSP-FET 和我们的软件(如 CCS 或 BSLDEMO 软件)对它们进行编程。 定制软件和编程工具无疑会在此处增加另一个级别的复杂性。

    感谢您在我们努力解决您的问题时表现出的耐心。

    此致、

    James

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

    [引用用户="James Evans"]

    同时、您可以尝试订购 MSP-BSL"Rocket"工具、通过 BSL 接口对 F248进行编程、但 Olimex 网站直到8月14日才处理订单。 最好继续订购 MSP-FET、 然后重点讨论为什么不能像 F247那样通过 BSL (UART)对 F248进行编程。 我们的 LaunchPad 可用于对外部目标进行编程、但遗憾的是、它们不支持 F24x 器件所需的4线 JTAG。

    [/报价]

    BTW、G2 LP 可用作 BSL 硬件基础。

    http://www.ti.com/cn/lit/pdf/slaa535