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

