这个问题经常出现-使用 BSL-Scripter 进行闪存时、CP2102、FT232或 CH340等便宜的 USB 转 UART 适配器是否可用作硬件接口。 问题是、Scripter 不会在/Reset 和 Test 上生成所需的硬件调用模式、而是依靠 MSP-FET 或 Rocket 等智能接口来实现。 但这些器件可能不在手边、在任何情况下都相对较大且价格昂贵、不适合嵌入项目 PC 板。 在另一个相关线程中、Aaditya Chaudhary 的想法是为 Linux 编写软件、以生成所需的调用模式、然后运行脚本解释器来执行刷写、并将该代码放入 Github repo 中:
https://github.com/saint-shark/TI-BSL-invoke-sequence-generator/blob/master/BSL_invoke.c
我已经为 Windows 编写了一个类似的程序、称为 invoke.exe、但在 Windows 中、我也怀疑在 Linux 中、Scripter 首先将 DTR 线路拉低、并且由于 DTR 连接到目标器件的/Reset 引脚、这会导致刚刚调用的 BSL 会话被取消、 并将器件锁定在复位状态。 没有帮助。
TI 为 Scripter 提供源代码、但重新编译以更改 DTR 问题超出了我的能力范围。 我仍然希望 TI 将修改脚本解释器、以添加一个选项来直接生成调用模式 -正如 BSLDEMO 针对旧 MSP430器件所做的那样。 但是、当我们等待当天的时间时、可以通过在新的调用程序启动 BSL 会话之后、但在脚本运行之前、从/Reset 中断开 DTR 来实现这一点。 断开连接后、/Reset 引脚将由其外部47k 上拉电阻器保持高电平、并且将正常闪烁。
可以手动断开连接。 我用于测试此内容的批处理文件如下:
INVOKE.exe COM4.
暂停
BSL-Scripter.exe script.txt
暂停等待我按任意键继续时、拔下 DTR 线路、然后按键。 在使用 FR2311的 Windows 7/64中测试成功。 但是、断开 DTR 的一种较为巧妙的方法是使用由四个部件组成的电路、该电路自动执行断开、而无需暂停指令。 该设置的测试也成功。 我将在下面发布原理图和成功的测试会话日志。 我已经将 INVOKE.exe 源代码和可执行文件以及解释所有内容的 PDF 发布到 Github repo:
https://github.com/gbhug5a/CP2102-with-BSL-Scripter-for-MSP430
我希望这对某人有用。 不要忘记在脚本的模式行中添加奇偶校验选项。
会话日志:
C:\MSP430>INVOKE.exe COM4
COM 端口已打开
已发送 BSL 调用模式
C:\MSP430>BSL-Scripter.exe script.txt
--------------------------------------
BSL Scripter 3.4.0.1
用于 BSL 编程的 PC 软件
2018年10月05日18:50:43
--------------------------------------
输入文件脚本为:C:/MSP430/script.txt
模式 FRxx UART COM4奇偶校验
未给出 UART 的波特率设置/错误
它将设置为默认的9600波特
//当复位向量= FFFF 时、在第一个闪存上使用此行
//RX_PASSWORD
RX_PASSWORD MosPW.txt
阅读 txt 文件 :C:\MSP430\MosPW.txt
BSL 密码正确!
RX_DATA_BLOCK Mostest.hex
阅读 txt 文件 :C:\MSP430\Mostest.hex
写入62字节所需的时间:0.115秒
数据写入速度:0.5265(kb/s)
TX_BSL_VERSION
供应商:[TI] CI:[08] API:[35] PI:[B3]
