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.

[参考译文] MSP430G2553:如何进入 BSL

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1323539/msp430g2553-how-to-enter-bsl

器件型号:MSP430G2553

你好,对不起愚蠢的问题,但不知何故,我卡在泥里。 我喜欢在简单的 Launchpad 上进入 BSL (最终应用将使用 FR6047、但为简单起见、我选择 Launchpad)由 ESP32串行(第一个图像)输入。 我连接 RX/TX、RST、测试并编写超简单的 sketch:

#包含

#define PIN_RST 19
#define PIN_TEST 21
#define PIN_TX2 22
#define PIN_RX2 23

硬件串行 MySerial1(1);

void setup(){
Serial.begin(115200);
MySerial1.begin(9600、serial_8e1、PIN_RX2、PIN_TX2);

pinMode (PIN_TEST、输出);
引脚模式(PIN_RST、输出);
digitalWrite (PIN_TEST、LOW);
digitalWrite (PIN_RST、LOW);
延迟(20);
digitalWrite (PIN_TEST、HIGH);
延迟(20);
digitalWrite (PIN_TEST、LOW);
延迟(20);
digitalWrite (PIN_TEST、HIGH);
延迟(20);
digitalWrite (PIN_RST、HIGH);
延迟(20);
digitalWrite (PIN_TEST、LOW);
延迟(200);

void loop(){
MySerial1.print (0x80);
延迟(100);
如果(MySerial1.available()>0){
int c = MySerial1.read();
serial.printf ("建议:0x%02x (%d)\n"、c、c);

延迟(1000);

我可以看到、在执行 BSL 引脚序列时、主应用程序停止。 现在我发送0x08、甚至可以在 >> RDX 行上看到(请参阅图像)。 在 TXD 线路上没有返回的信号、恒定的3.3V。  
我是否为 TXD 使用了错误的引脚? 作为第二个硬件、我使用 EVM430FR6047板、其中我假设四个引脚全部位于 J3上

克里斯蒂安的

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

     忘记 图像...

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

    数据表中可以看出、BSL TX/RX 引脚的定义如下图所示。

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

    感谢您的提问。 根据 slau550ab.pdf 便宜的 G2553甚至没有 UART BSL。 因此、我按照相同的命令切换到 EVM-FR6047。 我使用预编译的 BSL-Scripter 在 USCLA0上进行测试、并且确实可以在执行9600波特率时看到引脚上的一些反应、
    日志
    模式 FRxx UART 9600 /dev/tty.usbserial-120
    rx_密码 pass32_default.txt
    RX_DATA_BLOCK blinkLED_FR6989.txt

    在脚本上。  我不使用 Rocket、而是使用简单的 USB UART、通过应用软件命令打开 BSL、不处理测试引脚等。
    这样可以证明 BSL 处于活动状态且引脚正确。 然而,我没有得到 我期望根据 SLAU655G–(BSL 脚本手册)),但
    模式 FRxx UART 9600 /dev/tty.usbserial-120
    rx_密码 pass32_default.txt
    阅读文本文件:/Users/christian/ti/BSL-Scripter/pass32_default.txt
    [ACK_ERROR_MESSAGE]数据包大小超出最大缓冲区大小!
    RX_DATA_BLOCK blinkLED_FR6989.txt
    阅读文本文件:/Users/christian/ti/BSL-Scripter/blinkLED_FR6989.txt
    [ACK_ERROR_MESSAGE]标题不正确!
    [ACK_ERROR_MESSAGE]标题不正确!
    [ACK_ERROR_MESSAGE]数据包大小超出最大缓冲区大小!
    写入262字节所用的时间:0.05788秒
    数据写入速度:4.42(kb/s)
    CRC_CHECK 0x4400 0x0020
    [ACK_ERROR_MESSAGE]标题不正确!
    SET_PC 0x4400

    错误消息在"标头不正确"和"数据包大小超过了最大缓冲区大小"之间切换。 当我使用具有二进制支持的普通 UART 终端时、我可以发送 x 80、但随后我收到0x51作为答案-这仍然不是 slau550ab.pdf 所描述的那样。

    第一个一般性问题。 方法是否正确? BSL Scripter 甚至可以与 FR6047一起使用吗? 我可以使用具有奇偶校验和一个停止位的标准 USB UART 吗?   

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

    不确定您在何处看到 G2553没有 UART BSL、如表2-1的 G2xx3列中所示提供了 UART BSL。 除此之外、请记住 FR6047和 G2553具有不同的 BSL 通信协议。 对于 G2553、您应参考 SLAU319、MSP430闪存器件引导加载程序。 对于 FR6047、您应该参考 特定于基于 FRAM 的器件的 SLAU550。

    我从未使用过 BSL 脚本程序、只使用具有9600波特甚至奇偶校验的 USB 到 UART 转换器。 不确定 BSL 脚本程序是否甚至支持 TI 工具以外的任何工具、因为它假设需要操作 TST 和 RST 引脚来调用引导加载程序。 如果您计划在未来使用 BSL 对全新的(未编程的)器件进行编程、则需要实施 TST 和 RST 引脚切换。

    也就是说、我不认为您实际上在设置偶校验。 根据脚本程序文档,mode 命令默认为无奇偶校验。 FR6043和 USB-UART 桥接器设置为9600波特率甚至奇偶校验、如果我发送0x80以外的字节、我会得到0x51作为响应。 根据 FRAM 器件 BSL 用户指南(SLAU550)表4-6、表示"接头不正确。 数据包并不是以所需的0x80"值开头。 如果正确发送0x80、则在发送完整的数据包之前不会收到响应。

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

    立即工作。 是 UART 问题与 MSP430无关。 感谢您的支持-为我指明了正确的方向