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.

[参考译文] MSP430FR2476:调用软件 BSL/引导加载程序时出现问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/933967/msp430fr2476-problem-with-invoking-software-bsl-bootloader

器件型号:MSP430FR2476

你好

由于 BSL 的软件调用、我们希望从 PC 软件更新记录器(MSP430FR2476)的固件。

μ µC 通过 UART @115200 通过 eUSCIA_1 (P2.5和 P2.6)与我们的 PC 进行通信。

通信工作正常。

当用户准备好更新固件时、PC 软件会向 µC @ 115200发送订单。

然后、PC 软件将波特率更改为9600 + 1停止位+偶数奇偶校验。

在 μ µC 侧、执行以下指令:

_________________________________________

    LED_RED (1);
     LED_GREEN (1);
     LED_BLUE (1);
     RESET_WDTCTL;
 
     //调用 du bootloader BSL
     //从现在开始,PC 必须以9600、1个停止位、事件奇偶校验进行通信
     // PC 将在~2s 中发送第一个 BSL 命令

     //禁用 UCAx 和 UCBx
     //将 UCAx 和 UCBx 置于复位状态并禁用中断

     UCA1CTLW0 = UCSWRST;
     UCA1IE = 0;  
     UCA0CTLW0 = UCSWRST;
     UCA0IE = 0;  
     UCB1CTLW0 = UCSWRST;
     UCB1IE = 0;  
     UCB0CTLW0 = UCSWRST;
     UCB0IE = 0;

     //停止计时器
     TA0CTL &=~MC_2;
     TB0CTL &=~MC_2;    

     LED_RED (0);
     LED_GREEN (0);
     LED_BLUE (0);

     //BSL 软调用
     _disable_interrupt ();
     ((void (*)() 0x1000)();//跳转到 BSL

_________________________________________

然后在 BSL 调用2秒后、PC 发送其第一个 BSL 命令(TX BSL 版本)@ 9600

0x80 0x01 0x00 0x19 0xE8 0x62

然而,µC 仍然保持沉默。 我们使用逻辑探头检查命令是否已正确传输@ 9600且是。

slau550z 数据表的表17指示 BSL 使用的外设 UART 是 eUSCI_A、但数据表未指定是 USCIA0还是 USCIA1。

我怀疑 BSL 只使用 USCIA_0....

您能否确认我们的问题来自使用 USCIA1而不是 USCIA0?

是否有办法?

此致、Dominique

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

     Dominique、您好!

    UART BSL 只能使用 USCIA0、您可以在数据表中找到一些信息、如下所示:

    此致

    Johnson