主题中讨论的其他器件:UNIFLASH、 MSP-FET、 MSPBSL
我正在使用一个编程工具、该工具执行的序列与此处所示的序列非常相似:
成功编程 CPU 后,我的工具名为 MSP430_Secure(),一切都成功了。 我验证了 CCS 中和使用 UniFlash 工具禁用 JTAG 接口的情况。
接下来、我编写了一些代码、使用 BSL 接口通过复位/测试/ TX/RX 线将 JTAG 接口重新启用到 CPU。 我使用的序列是:
1) 1)发送"Rx 密码" BSL 命令、其中包含密码的所有0xFF。 这会导致器件批量擦除。 我已验证之后是否收到成功确认消息。
2) 2)我想查看0x17FC-0x17FF 中的 JTAG 签名字节当前设置为什么、因此我发送了"Tx 数据块" BSL 命令并验证返回的值既不是0x00000000、也不是0xFFFFFFFF。 我不记得返回的实际值是什么--它是0x555555或0xC5C5C5C5。
3) 3)我发送了"Rx 数据块"命令、将0x00000000写入地址 0x17FC-0x17FF。 这也返回了成功的 Ack。
完成这些步骤后、JTAG 接口再次工作。 我可以使用 UniFlash 读取器件、也可以通过 CCS 下载和调试代码。
这是个问题...
我再次尝试使用我的自定义工具重新编程 CPU、该工具在末尾调用 MSP430_Secure ()、但现在 MSP430_Secure ()调用失败、出现错误"Could not secure the device (无法保护器件)"。
如果我再次尝试使用 UniFlash 保护 CPU、我会得到相同的错误。
我在这里看到了一个讨论(http://microcontrollers108.rssing.com/chan-64320859/all_p1249.html),有人提到可能需要使用第一个参数设置为 CONFIG_JTAG_LOCK_5XX 来调用 MSP430_Configure(),但所有尝试都失败了,没有任何文档可以帮助解释这一点。
我缺少什么? 我需要通过 BSL 命令写入什么才能使 CPU 恢复到可以通过 MSP430_Secure()再次对 CPU 进行编程和禁用 JTAG 的状态?