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.

MSP430F5254 BSL core response wrong format

Other Parts Discussed in Thread: MSP430F5254

Hi,

I am trying to get access to MSP430F5254's factory default BSL, I invoke BSL by application as,

			//Now this is to go into BSL firmware update
			__disable_interrupt();   // Disable global interrupts
			//call to BSL Z-area and wait for the host application to download new code
			( (void (*)()) 0x1000)();

which seems to work, as I can see output 0x00 from timer based UART GPIO 6.1/6.2 right after BSL is invoked. Then I send sequence to retrieve BSL version just to see if I can get any correct communication from BSL, I send

--> 0x80 0x01 0x00 0x19 0xE8 0x62

I got response right away but the format is not right.

<-- 0x00 0x3f 0x3f 0x01 0x02 0x00 0x3f 0x3f 0xed 0x47 0x38 0x6e 0xa2

And if I try multiple times, the last 6 bytes of data change every time. 

My understanding is that I should receive 0x80 right after the first 0x00(ACK), am I right? 

Thanks a lot!

Feng

 

  • Sorry I was mistaken regarding the changing of the last 6 bytes, in fact only the last byte changed between 0xa2 and 0x42
  • Hello Feng,

    Yes, you should be seeing the opening sequence 0x00, 0x80, followed by the rest of the response. Please see the UART BSL sequence example in section 3.7.4 of www.ti.com/lit/slau3319

    I'm not sure what error exactly you are seeing, but here are a few things to try.

    *BSL Protected: If the BSL is protected, you will need to issue the BSL password before issuing the BSL info command. For more details on which commands are protected, see section 3.6 BSL Security in document above.

    *Incorrect Baud Rate: Please make sure you are starting communication at 9600 Baud for UART BSL.  Other baud rates can be supported after issuing "Change Baud Rate Command"

    *Incorrect BSL interface: Since this is a split-rail part, it has two possible BSL interfaces based on DVCC or DVIO domain. The DVCC domain BSL uses pins 6.1/6.2 for Timer Based UART. The DVIO based BSL uses pins 3.3/3.4. I am unsure of which BSL domain is invoked when doing so from application space (method you use). This will need clarifying in our documentation. Can you test out the following?

                **Perform standard DVCC BSL evoke method via RSTDVCC and TEST pin. See Section 6.5.2 within MSP430F5254 datasheet.

                **Use current method but use DVIO communications. (If trying this remember DVIO BSL has max voltage of DVIO!)

    Regards,

    JH

  • Thanks JH,

    I have found my problem, my UART setting was wrong. I could not find the proper settings in the document I have. I had to check the source code of the factory default BSL, that indicates I will need to have parity. After changing my setting, I can see correct data replied by MSP430F5254/BSL.

    Thanks a lot!
    Feng

**Attention** This is a public forum