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.
您好!
最近、我在通过 UART 使用 BSL Scripter 将程序刷写到 MSP430F5249上时遇到了问题。
我有一个 bash 脚本、用于创建 BSL 进入序列、然后调用 BSL 脚本程序。 下面是我的条目序列代码:
函数 generateBSLEntrySequence { #最初将 RST 和 TST 设定为低电平 setLow $TST_PIN setLow $RST_PIN #切换 TST Sleep $OnePeriod setHigh $TST_PIN Sleep $OnePeriod setLow $TST_PIN 将 TST 设置为高电平 Sleep $OnePeriod setHigh $TST_PIN #SET RST 高电平 睡眠$HalfPeriod setHigh $RST_PIN 将 TST 置为低电平 睡眠$HalfPeriod setLow $TST_PIN }
这里、TST_PIN 和 RST_PIN 是已导出的 GPIO。 OnePeriod=0.1和 HalfPeriod=0.05
由于这是在 bash 中,因此这些周期以秒为单位。 我担心这些价值观是否太大。
BSL 用户指南指出 、TEST 引脚的第一个高电平必须至少为 tSBW、En。 查看数据表 tSBW、en 的最大值为1µs μ V。
这是否意味着 TEST 引脚至少1µs μ s 或最大1µs μ s 处于高电平?
此脚本以前工作过、但出现了问题、因为程序无法按预期工作、并且未进行任何更改。
我在运行 BSL 后执行微控制器复位。
有人可以提供帮助吗? 我的脚本有什么问题吗?
我刚刚在这个主题中对这个 tSBW、EN 问题做出了裁决:
https://e2e.ti.com/support/microcontrollers/f/166/t/730337
答案是测试时的正脉冲需要是数据表 tSBW、EN 最大值的最小值、但没有最大脉冲周期。 旧 BSLDEMO 程序和火箭硬件器件等 TI 产品的范围为110us 至15ms。 因此、您的值肯定比您需要的时间长、但如果没有最大值、理论上无关紧要。
但我对你的发言非常感兴趣、认为这以前对你有用。 您能告诉我您使用什么硬件连接到 F5249吗? 名义上、Scripter 需要一个 Rocket、一个 MSP-FET、或者一个 Launchpad 和 G2231设置、如 slaa535a.pdf 中所述。 如果您发现另一个设置有效、我很感激您能了解它。 我已经尝试使用 CP2102 USB 转串行适配器、生成调用序列、然后运行脚本、但脚本解释器所做的第一件事是将 DTR 置为低电平、并将其保持在那里。 因此、目标芯片处于永久复位状态、当然不会发生闪存。 我希望您已经找到了解决这个问题的方法、并将与您分享。
我们有两个 GPIO 连接到 TST 和 RST 引脚、还有一个 UART 连接到 MSP430。
用于澄清 tSBW、EN 的存储罐。 我的脚本应该起作用。
BSL Scripter 是否需要任何特殊权限才能在 Linux 平台上运行? 它可能需要写入访问权限或类似的内容?
我不知道 Linux 权限。
您使用的是具有 GPIO 引脚的什么器件?
我发现在 MAS_ERASE 之后 RX_DATA_BLOCK 没有成功。 因此我尝试执行两个 RX_DATA_BLOCK 命令、发现这是有效的!
因此、您可以假设 RX_DATA_BLOCK 将始终成功。 您必须检查写入的数据是否实际是发送的数据。 不是很理想!
抱歉、我应该说"您不能假定 RX_DATA_BLOCK 总是成功的。"