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: Problem with invoking software BSL / bootloader

Part Number: MSP430FR2476


Hello

We would like to update the firmware of our logger (MSP430FR2476) from our PC software thanks to software invocation of the BSL.

The µC  communicates with our PC by UART @115200  via eUSCIA_1 ( P2.5 & P2.6).

The communication works fine.

When the user is ready to update the firmware, the PC software sends an order to the µC @ 115200.

The PC software then changes the baudrate to 9600 + 1 stop bit + even parity.

On µC side, the following instructions are executed:

_______________________________________________

     LED_RED(1);
      LED_GREEN(1);
      LED_BLUE(1);
      RESET_WDTCTL;
 
      //invocation du bootloader BSL
      //from now, PC must communicate in 9600, 1 stop bit, event parity
      //the first BSL command will be sent in ~2s by the PC

      //disable UCAx and UCBx
      //put UCAx and UCBx in reset state and disable interrupt

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

      //stop timers
      TA0CTL &= ~MC_2;
      TB0CTL &= ~MC_2;   

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

      //BSL soft evocation
      __disable_interrupt();
      ((void (*)()) 0x1000)(); //jump to BSL

_______________________________________________

Then 2 second after the BSL invocation, the PC sends its first BSL command (TX BSL Version) @ 9600

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

However the µC remains silent. We checked with our logic probe that the command is properly transmitted @ 9600 and it is.

The table17 of slau550z datatsheet indicates that the peripheral UART used by the BSL is eUSCI_A but the datasheet does not specify if it is USCIA0 or USCIA1.

I suspect the BSL only uses USCIA_0....

Could you please confirm our problem comes from using USCIA1 instead of USCIA0?

Is there a way around ?

Regards, Dominique

**Attention** This is a public forum