Part Number: MSP430FR5739
I have an MSP430 design that uses a UART for communication. If the user sends the right command to the UART, I would like to kick it into the ROM bootloader. The c code that I use to do this is:
__delay_cycles(2000000); ClockDriver_SetClockForBootloader(); __delay_cycles(2000000); __disable_interrupt(); ((void (*)())0x1000)();
This will change MCLK to 8 MHz (which the bootloader user guide says is required) and then call the jump instruction. I lose connection to the UART when I execute this, but I'm not able to ever talk to the bootloader. However if I call these exact lines of code at the very beginning of my code, I jump to the bootloader and I'm able to talk to it just fine. I am using different baud rates (57600) vs what the bootloader uses 9600 but I did try changing my own baud rate to the bootloader baud rate (and using even parity like the bootloader) but that did not work either. Any thoughts on other things to try? I really want to not rely on the hardware entry sequence to talk to the bootloader.