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.

MSP430F5524: How can I force BSL on BOR/POR?

Part Number: MSP430F5524

I have created a prototype board and application. All issues have been resolved except for this: I need to run the BSL as an integral part of POR to detect corrupted software during software upgrades. According to slaa457b.pdf (sec.1.2), my circuit is the same minus the BSL switch. According to slaa450f.pdf (sec.1.2), I have created my software in 3 main parts:

BSL (BSL Protect Function) - this needs to be the 1st code to run from BOR/POR. Determines if main is good.

BootLoader (BSL) - this needs to run if main is corrupt. Reloads main. Functions as expected.

Main(RESET) - this runs after verification by the BSL. Reloads Bootloader. Functions as expected.

Having read the documentation and several e2e posts. My problem may be info overload. The circuit boards are powered from an external 3V3 supply. The USB port is powered from VBUS. The custom PC application will detect the device, read whether Main or BootLoader is running and respond accordingly.

What method can you recommend for the final product to invoke BSL without a switch?

Can a high value pullup resister be used without the USB cable attached to force BSL operation?

Thank you in advance for your help,


  • After the power-up / reset (or forced restart by WDT), contest of 0FFFEh address will be checked. If it is erased (0FFFFh value) device will automatically enter to USB BSL mode and device will be enumerated as CDC by OS. This behavior is with preloaded original factory TI BSL. Without a BSL switch. You can see this by yourself in open source TI USB BSL (updated factory version).

  • Thank you for your quick reply. However, mine is a totally custom application. I have forced the reset vector to 0xFFFF and my BSL still is not invoked.

  • This issue is far from being resolved, but, I've discovered the cause for the bsl not starting. It appears that the TI documentation regarding BSL is valid only if the USB-module and uC-core are powered up at the same time. I need to resolve the boot-ROM before this issue will be resolved to my satisfaction. It appears that all designs should have dvcc shorted to VUSB. If the board is powered from VBUS like the launchpad, this problem will never occur.

    If an external P/S is used, the 1st line of code after disabling the watchdog should be to disable the 3.3V LDO. Of course, if the external supply is switched off with a USB cable attached and a corrupt reset vector, the boot rom will bypass bsl and turn the ldo on without running a single line of code. In this case the USB cable must be removed to turn the unit off. Also, the LDO output will contend the external switched supply since they have been shorted. Therefore, dvcc needs to be tied to VUSB thru a resistor for good form.

    I will start a new thread to try and get a copy of the boot rom. Perhaps I can get support for that.