主题中讨论的其他器件: MSP-FET、 MSP430FR6989、 MSPBSL
我的 PCB 上有一个 MSP430FR5969器件。 我使用以下代码从软件启动引导加载程序:
CSCTL1 = DCOFSEL_3;//确保 FR5969的时钟频率低于8MHz for (i=10;i>0;i--){//刻录> 4个时钟周期,允许 DCO 稳定 NOP(); } _disable_interrupt (); //禁用所有中断 ((void (*)() 0x1000)();//跳转至 BSL while (1);
这似乎可以正常工作。 因为我可以发送 TX BSL 版本、并从 BSL 获取0x00和消息。 但由于某种原因、其他消息不起作用。 我已发送 RX_PASSWORD 消息、我得到的只是以下几点:
无论我发送什么消息、我都会得到这种未知的应答。 此脚本来自 BSL 脚本编写器随附的 FRxx BSL 示例。 我刚才评论了其他所有内容、一直在努力使其正常工作。
如果我发送 TX_BSL_VERSION 命令、我会得到:
我已经尝试通过实数、pyton 等手动发送 RX_password。 我无法取得任何进展。 我已验证 BSL 从 TX_BSL_VERSION 向我发送的数据的波特率为9600。 我还在 BSL FRxx 文档中看到、BSL 需要偶校验、除非您在我拥有的模式调用中使用"奇偶校验"选项、否则脚本程序不会提供。
如果我使用 python 将 TX_BSL_VERSION 从计算机发送到 BSL、并显示我接收到的内容、我会返回以下消息:
0x0
0x80
0x2.
0x0
0x3B
0x4.
0xe4
0x84
0x00显然是来自 BSL 的 ACK、指示它接收到 TX_BSL_VERSION 消息? 我不会从任何其他消息中得到0x00。 在文档中、如果您发送字节0x80、我应该从 BSL 获取0x90。
下面是我在这么长时间的工作中提出的一些具体问题。 如果您有任何建议/答案、是否有人可以查看这些信息并告诉我?
1. 我是否应该只能向 BSL 发送字节0x80并每次接收0x90?
2. 是否应该有任何错误的密码消息来擦除我的程序?
3. 当我在 RX_PASSWORD 消息中发送多个错误密码时、为什么 MSP430FR5969会重新启动并开始运行我的程序代码? 这似乎是为了确保无论什么内存被擦除?
4. 因为我的存储器没有被擦除、这是否意味着 RX_PASSWORD 实际上没有被器件正确接收?
我 将通过虚拟通信发送数据。 也连接到 UART 的 FTDI 芯片的端口。 我无法使用 MSP-FET 调试器。 这是否应该是可能的?
6. 是否有方法使用调试器对此进行进一步的故障排除?
7. 如何确定我得到的是哪种类型的 ACK -未知的 ACK 是否意味着没有收到任何 ACK?
8. 您是否必须解锁 BSL 才能使用 TX_BSL_VERSION 命令?
以下是我的脚本:
---- >下面是我输入到 scripter.exe 的主脚本
//
//脚本示例 FRxx UART BSL
//
//设备:MSP430FR6989
//通信桥接器:MSP-BSL Rocket
//
//通过下载 Blink 应用程序
FRAM 器件中的//UART BSL
//
//mode FRxx UART 9600 COM188
//log
模式 FRxx UART 9600 COM7奇偶校验
详细
//批量擦除
//mass 擦除
TX_BSL_VERSION
//提供错误的密码进行批量擦除
//RX_PASSWORD pass32_wrong.txt
//
//输入错误的密码后添加延迟
//因为器件不提供
//应用错误密码后的任何响应
//
//RX_PASSWORD pass32_default.txt
//delay 2000
//RX_PASSWORD pass32_default.txt
//RX_DATA_BLOCK IlluminatorFW_rev2.txt
//CRC_CHECK 0x4400 0x0020
//set_PC 0x4400
//mass 擦除
//RX_DATA_BLOCK blinkLED_FR6989.txt
-------- >下面是密码文件。 我刚刚使用了所有 FF、因为没关系...我只是想让器件擦除其存储器
@FFE0
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
问




