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-EXP430FR6989: Using a Launchpad to Enter BSL

Part Number: MSP-EXP430FR6989
Other Parts Discussed in Thread: MSP430FR6989, MSP-FET, MSP430G2231, MSP430FR4133

Hi all,

I've locked the JTAG interface of an MSP430FR6989 launchpad and would like to undo that. As I've read elsewhere, the only way to do this is to use the BSL scripter tool to erase the FRAM. Unfortunately, I don't have access to either an MSP-FET or  an MSP Rocket. I found an application report that describes how to use the MSP430 Launchpad as a bridge for the BSL, so I've been trying that. Unfortunately, it is written for the MSP430G2231 and I don't have one available. I've been trying to replicate the example for the MSP430FR6989.

From the bootloader guide, figure 2, I see that if I toggle the RST and TEST signals in the right way then I can enter the BSL. I've written a program that recreates this waveform on my good board, and verified it on an oscilloscope. I'm using a __delay_cycles call that ends up waiting about 4us between each transition. I'm hooking the wires up from the good board to the signals on the ez-FET bridge, J101. SBWTDIO is connected to the RST output, and SBWTCK is connected to the TST output as described in the guide for this launchpad, table 2. I've removed those two jumpers and instead wired the two boards together.

That should allow me to enter the BSL. Once in, I need to issue either a MASS_ERASE command, or send an invalid password. The first thing I tried was to simply use the BSL scripter to send those commands to the locked board, but it didn't work. I used the example script that shipped with the tool, changing only the target port. Each command returned "[ACK_ERROR_MESSAGE]Unknown ACK value!". I also tried to use an MSP430FR4133 to start the BSL and send the erase command over UART, but couldn't get that to work. 

Is there something that I'm missing that will allow me to unlock my board? I don't need full communication with the BSL, just to properly send an erase command or bad password over to the board once. Does anybody have any experience doing this? Thanks for your help!

Matthew Bohman

  • slaa535 can be done on (almost) any 2xx device. For BSL hardware can be used (almost) any USB - UART dedicated hardware bridge chip, or another (application) channel of any LP. Just send by another micro BSL entry sequence, and than continue to exchange data with USB - UART bridge, by BSL Scripter.

  • Zrno,

    Thank you for your quick reply! I found a USB/UART connector and have been trying to use it to communicate with the board, but no luck. Each command still gives "[ACK_ERROR_MESSAGE]Unknown ACK value!"

    As a reference, here is the waveform that I'm sending:

    Additionally, here is the script that I am running. My USB/UART bridge is on /dev/ttyUSB0

    LOG
    MODE FRxx UART 9600 /dev/ttyUSB0
    RX_PASSWORD pass32_wrong.txt
    MASS_ERASE
    DELAY 2000
    RX_PASSWORD pass32_default.txt
    RX_DATA_BLOCK blinkLED_FR6989.txt
    CRC_CHECK 0x4400 0x0020
    SET_PC 0x4400

    Is there anything that I can do to verify that things are working as expected?

**Attention** This is a public forum