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.

[参考译文] MSP430F6775A:如果我启用安全设备选项、Gang 将失败

Guru**** 2690845 points

Other Parts Discussed in Thread: MSP430F6775A, C-GANG

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1597474/msp430f6775a-gang-fails-if-i-enable-secure-device-option

器件型号: MSP430F6775A
主题中讨论的其他器件: C-GANG

您好:

我们已经开发了适用于 MSP430F6775A 的应用。 我可以使用 Gang 编程器在量产中对其进行编程、而不会出现任何问题。 但是、每当我 在设置中启用 Secure Device 选项时、Gang 编程器会逐一完成所有步骤、不会在日志中显示任何错误、但仍会报告 A 失败 我可以看到编程过程尚未完成。 如果我在不更改任何其他内容的情况下禁用 Secure Device 选项、则同一器件上的相同过程会得到 开来

msp430f6775a_gang_fail.png

这让我觉得这可能是 Gang 编程器中的一个错误。 您也可以在下面的屏幕截图中找到编程器版本。 您以前是否遇到过此问题? 如何解决该问题?

msp430f6775a_gang_ver.png

谢谢你。

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

    尊敬的 Mehmet:

    在测试中、我通过首先编程、然后使用 GUI 右下角的按钮选择 Secure Device 选项来保护 MSP430 的安全。 诚然、我不是使用与您完全相同的器件进行测试。 您是否仅尝试了编程、然后尝试了保护? 如果这样做不起作用、我将获得您正在使用的相同设备并继续我的测试。

    此致、
    Brian

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

    您好、Brian、

    在全新的 MCU 上、一切均按预期运行。

    经过进一步调查、我们发现在首次保护 MCU、然后使用 BSL-Scripter\ScriptExampleWindows\MCU“Jtag Flash_Open 示例解锁时会发生该问题。

    下面是我们使用的脚本:

    MODE 6xx UART COM10
    MASS_ERASE
    RX_PASSWORD
    RX_DATA_BLOCK JTAG_UNLOCK.txt

    和 JTAG_unlock.txt 的内容:

    @17FC
    00 00 00 00
    q
    

    当 MCU 在地址 0x17FC 包含值 0x00000000 时、Gang 编程器会报告观察到的问题。

    谢谢你。

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

    尊敬的 MF:

    很高兴您能诊断出问题。 我正在关闭此主题、但如果您遇到任何其他问题、请打开另一个主题。

    此致、
    Brian

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

    很抱歉,我们为什么要 关闭机票?

    这是否属于预期行为? 我认为这是一个需要修复的明确错误。  需要解决方案或解决方法 来关闭 TT。

    谢谢。

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

    这是正常现象。 任何 JTAG/SBW 主器件都无法将闪存保险丝位置值从 0x0000 更改为 0xFFFF(或专用保险丝锁定值)、而无需先擦除闪存位置(即在最后一个 BSL 段中)。 如果确实需要此选项(多次写入 SBW /JTAG 锁定/UNLOCK)、则在保险丝值变为零(解锁状态)后、必须擦除最后一个 BSL 段并写回、再次获得 0xFFFF 保险丝(默认)值。 但您必须小心、因为使用已擦除/无法正常工作的 BSL 和锁定的 SBW /JTAG 保险丝、器件无法工作。  

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

    尊敬的 zrno:

    首先、Gang 编程器在日志中将所有步骤报告为成功、然后在最后失败是不正常的 该编程器由 TI 以专业的生产级解决方案的形式呈现、这对我们来说是一项重大投资。 即使在生产中进行简单操作、也不能看到这种行为。

    我们的要求很简单:在我们将固件加载到产品上后、任何人都不应该通过 JTAG 或 BSL 复制我们的软件。 但是、仍然必须能够擦除整个 MCU、然后在需要时加载新固件。 此过程重复多少次对于生产线来说是个问题、这可能是一次尝试、或者器件可能会重新设计并多次经历相同的过程。

    如果 JTAG 锁定代码存储在 BSL 的最后一个扇区中、那么当启用“SECURE"选项“选项时、Gang 编程器应自动擦除该扇区并重写所需的代码。 根据您的解释、这似乎是正确的实现。 假设0xFFFFFFFF该位置中的默认值似乎不正确、尤其是因为 TI 自己的解锁脚本来写入0x00000000该位置。 在实践中、这两个值似乎都足以保持 JTAG 正常工作。

    是否可以在编程期间指示 Gang 编程器完全擦除整个 BSL 区域并对其重新编程? 这样、我们就可以始终确保本节包含0xFFFFFFFF。  我们需要编程器在独立模式下运行、如果在 MCU 上启用了安全选项、则需要通过 BSL(包括 BSL 区域本身)执行完全擦除、然后切换到 JTAG 以对包括 BSL 部分在内的所有内容进行编程。 这是否可以使用 Gang 编程器或建议这样做?

    或者、TI 为解决该问题推荐的解决方案是什么?

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以指示 Gang 编程器在编程期间完全擦除并重新编程整个 BSL 区域? 这样、我们就可以始终确保本节包含0xFFFFFFFF。  我们需要编程器在独立模式下运行、如果在 MCU 上启用了安全选项、则需要通过 BSL(包括 BSL 区域本身)执行完全擦除、然后切换到 JTAG 以对包括 BSL 部分在内的所有内容进行编程。 这是否可以使用 Gang 编程器或建议这样做?

    这是可能的、但我没有 GANG 编程器、也不知道脚本在独立模式下的强大功能。

    您对 Gang 安全设备错误报告是正确的。 它应该在将 0x5555 写入 FUSE 位置后检查该值是否为 0x5555、或者该值在请求/之后是否为 0x0000、并在安全器件功能期间(带有一些相关文本)报告此情况、而不仅仅是红色 x。不知道日志文件中是否存在与错误相关的内容。    

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

    尊敬的 MF:

    您当前有哪些存储器选项? 以下是默认值、不包括 BSL 扇区:

    此外、TI 现在还推荐使用 Elprotronic 的 C-GANG 编程器。

    此致、
    Brian