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.

MSP-EXP432P4111: BSL has timing issue, detect for 115200 can mistakenly detect 9600 baud instead

Part Number: MSP-EXP432P4111

Hi,

 We have a weird intermittent BSL boot load problem where the BSL seemed to sync but always responded with 0x0, success, which should not occur when sending a bad password to erase and unlock memory.

I built the BSL in "debug" mode to figure out what was going on, and was able to replicate the problem on a launchpad. 

The file and function of interest is:

BSL432_Peripheral_Interface_eUSCI_UART_SPI_I2C_IRQ.c

BSL432_PI_UARTdetect()

The else if clause failed at 115200 detect that it should have, but succeeded at 9600 baud clause. I'm thinking a timing aliasing/borderline case.

The BSL code goes south from that point.

This routine needs to be redesigned and re-written more robustly. Please, please, please.

One thing to consider is not to use 0x00 for a sync value response as 0x00 might be seen as 0x00 at any baud rate.

Another is to rewrite the bootloader to give better and more detailed error messages, I had to rewrite the bootloader to isolate the bug.

bob s.