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.

MSP430F5249: Running BSL Scripter more than once gives "BSL Password is error!"

Part Number: MSP430F5249

Hi,

I am encountering a very strange problem when running the BSL Scripter program. Running it first time works okay and I get no errors. Running it the second time gives errors as shown below:

MODE 6xx UART /dev/ttymxc1
Baud rate setup for UART is not given / wrong
It will be setup to the default 9600baud
//gives wrong password to do
//mass erase in the memory
RX_PASSWORD pass32_wrong.txt
Read Txt File : /root/pass32_wrong.txt
RX_PASSWORD pass32_default.txt
Read Txt File : /root/pass32_default.txt
[ERROR_MESSAGE]BSL Password is error!
RX_DATA_BLOCK Firmware.txt
Read Txt File : /root/Firmware.txt
[ERROR_MESSAGE]BSL is locked!
..
[ERROR_MESSAGE]BSL is locked!
Time elapsed of writing 21394 bytes : 27.62 seconds
Speed of writing data :0.7565(kB/s)
SET_PC 0x4400

It seems like something is locked and not released properly. I am running this program from simple bash script that generates the BSL start sequence (before starting the scripter) and reset sequence (after writing is complete).

Any ideas what is going wrong?

  • The default password for a blank device is 0xFF....
    Once the device is programmed the first time, the BSL password changes to the contents of the interrupt vector table. I think what you are having here is that you are not updating to the new BSL password after you program the MCU the first time.
  • Can you get the contents of the interrupt vector table from the hex utility file?

    Example:
    @4400
    81 00 00 44 B1 13 36 00 0C 43 B1 13 00 00 B1 13
    30 00 32 D0 10 00 FD 3F 03 43
    @ffd2
    12 44 12 44 12 44 12 44 12 44 12 44 12 44 12 44
    12 44 12 44
    @ffe8
    12 44 12 44 12 44 12 44 12 44 12 44 12 44 12 44
    12 44 12 44 12 44 00 44 F1 03 B2 40 80 5A 5C 01
    F2 D0 20 00 64 02 F2 E0 DF 00 62 02 F2 E0 20 00
    62 02 B1 40 10 27 00 00 02 3C 91 83 00 00 81 93
    00 00 F4 27 FA 3F 03 43 03 43 FF 3F 03 43 1C 43
    10 01
    q

    If not how best to do this?
  • Yes you can.
    See section 2.7 of the following document:
    www.ti.com/.../slau319p.pdf
  • I though that by giving the wrong password it would do a mass erase and after that the password will be 0xFF ...

    Is that not right?
  • Please refer to section 2.7 of the document reference above. The last paragraph of the section (starting with the words "BSL versions 2.00 and higher") provides details on what you have to have to make the mass erase happen if the wrong password is used.
  • Using the values in my TXT file I set the password as follows:

    @FFE0
    12 44 12 44 12 44 12 44 12 44 12 44 12 44 12 44
    12 44 12 44 12 44 12 44 12 44 12 44 12 44 00 44
    q

    But I keep getting password error. What should it be?
  • Are you using this in the script file used by the scripter tool?
    Does your script file include a reference to the password per section 2.4.16 of the scripter tool user's guide:
    www.ti.com/.../slau655e.pdf

  • My script has the following line:

    RX_PASSWORD pass32_default.txt

    For test purposes I tried changing the password in there to:

    @FFE0
    12 44 12 44 12 44 12 44 12 44 12 44 12 44 12 44
    12 44 12 44 12 44 12 44 12 44 12 44 12 44 00 44
    q

    But it made no difference. I got the same error.
  • Post the TI-TXT of your firmware (only applicable area) and the script file.
  • I changed my script to what is shown below and it now works:

    //
    //Download the firmware to the
    //MSP430 device through the UART BSL
    //
    LOG
    MODE 5xx UART 9600 /dev/ttymxc1
    MASS_ERASE
    RX_PASSWORD
    RX_DATA_BLOCK Firmware.txt
    SET_PC 0x4400

**Attention** This is a public forum