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.

Unable to execute BSL command!!!

Other Parts Discussed in Thread: MSP430F5438, MSP430G2553

Hi all, Am programming MSP430G2553 via BSL using MSP430F5438.

These are the BSL commands working fine

1.RX password

2.Mass erase

3.TX data block

and below are the commands am not able to execute. Getting checksum error(NACK). I am able to send header,data and when i try to send checksum data, it gives  NACK. The Checksum code is same here which i used for above commands.(Mass erase)

1.RX data block

2.Erase check

3.TX BSL version 

there are other commands also but i have not checked them.

So any solution???

  • G2553 uses Ver2.0x of BSL and does not support: TX BSL version nor Erase check
    It also have bug where it can not erase all of info, you have to do one segment at time

    What version a msp family have and its errata is very poorly documented.

    How do you know RX password woks?, I think it answers with an ack regardless of correct password.
    And unless you have dc16 0x000 at 0xffde location it will do a mass-erase and your password now changed to all 0xff

    If your firmware have the 0x000, there is no harm to try both 0xff password first and then your firmware password 
    incase you don't know if it's a empty chip or not, as  once you are in you stay in and incorrect password after that does not matter until next reboot.
     
    I got all commands except what I mention above to work with my G2553 and a Silabs CP2110 using C#

  • "G2553 uses Ver2.0x of BSL and does not support: TX BSL version nor Erase check"
     Is there any document which says this??

    "How do you know RX password woks?"

    If I read data from target without sending the password,then i ll get an error, after passing password i can able to read.so password command is working(password is 0xff(32 times))


    Now am able write data to target but while reading it back getting some garbage data (reading the data from the location where i had written)

  • Tony Philipsson said:

    G2553 uses Ver2.0x of BSL and does not support: TX BSL version nor Erase check

    Can someone confirm this??

  • (4) The erase check and TX BSL version commands are members of the standard command set in
    BSLs V1.50 or higher but excluding 2.x BSLs

  • Oh ok. Any how am looking for RX data block. Then RX data block should work!! but its not working
  • I guess you are relaying on a BSL programmer that someone else wrote?
    But here is the structure I'm using to set it up (checksum is calculated later)

    public bool RX_data_block(ushort address, byte[] arrayname)  // a data block written (max 250 bytes) to the mcu's Flash/Ram.
            {
                i = 0;
                bsl_length = (byte)(arrayname.Length+4);    // calculate new bsl length inlcuding  AL,AH,LL,LH + acctual data
                Array.Resize(ref TXbuffer, bsl_length+4+2); // add 4byte header and 2 bytes for checksum
                TXbuffer[i++] = 0x80;                   // Header
                TXbuffer[i++] = 0x12;                   // Command
                TXbuffer[i++] = bsl_length;             // Lenght
                TXbuffer[i++] = bsl_length;             // Lenght (repeated)
                TXbuffer[i++] = (byte)(address &0xff);  // Adress low
                TXbuffer[i++] = (byte)(address>>8);     // Adress high
                TXbuffer[i++] = (byte)(bsl_length-4);   // lengthLow (max 250)
                TXbuffer[i++] = 0x00;                   // LenghtHigh is always 0
                arrayname.CopyTo(TXbuffer, i);          // fill in data block
                UART_BSL();           
                return true;
            }

  • oops i had mismatched address and its length...now its working fine...

**Attention** This is a public forum