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.

BSL Entry - MSP430FR59691

Hello!

I'm trying to invoke BSL using 2 GPIOs of other MSP. But, after doing so, I'm not getting any response from MSP. The steps I followed are:

1. Flashed LED Toggle code on MSP that's to be upgraded.

2. Sent toggling sequence from other MSP. LEDs stopped toggling.

3. Sent Tx_BSL_CMD and didn't get any response back.

When forced MSP to enter BSL using software, I'm getting response back. So, there's some problem with the entry sequence.

Sequence:


 

Am I missing something obvious here? Please let me know.

 

Teja

  • Hello TejaChintalapati,

    When invoking the BSL this way have you ensured the following?

    *JTAG has no control over MSP430 Resources
    *Supply Voltage, VCC, does not drop below its threshold, thus causing a POR to execute
    *RST/NMI pin is not configured for NMI functionality

    Please see the FRAM BSL guide for more details.
    http://www.ti.com/lit.slau550
  • Thanks for the quick reply.

    1. JTAG isn't controlling the MSP that's to be upgraded.
    2. I checked the Vcc and it's above 3.3V
    3. As explained in the user guide, RST/NMI is configured as RST pin. (Default Configuration. I didn't touch it)

    I followed the BSL Guide.

    Teja
  • tejaChintalapati said:

    I'm trying to invoke BSL using 2 GPIOs of other MSP. But, after doing so, I'm not getting any response from MSP. The steps I followed are:

    1. Flashed LED Toggle code on MSP that's to be upgraded.

    2. Sent toggling sequence from other MSP. LEDs stopped toggling.

    3. Sent Tx_BSL_CMD and didn't get any response back.

    When forced MSP to enter BSL using software, I'm getting response back. So, there's some problem with the entry sequence.

    Don't you need to seed password first? That goes with the case of enter BSL using software too. Are you doing that differently? Are you using the same I2C device to send and receive?

  • OCY, thanks for the reply.

    You're right. You'd need to seed the password for password protected commands else, MSP would give an error (Response looks like: 00 80 02 00 3B 04 E4 84) where 0x04 means, as per Users Guide, BSL is locked. I'm not getting that response either.

    Teja

  • Teja,

    Can you please try extending T2 to 110us as per page 49 of the FR5969 Datasheet under t SBW,en?

    If you still see issues, can you extend T1 as well?
  • Thanks for the reply.

    I've made the changed the time periods to

    T1 = 20uS
    T2 = 113uS
    T3 = 3.2uS
    T4 = 3uS
    T5 = 3uS

    But, unfortunately, there's no response from the other MSP. I've checked the physical connections to other MSP and the signals are going to the appropriate pins.

    Teja
  • Tejas,

    Before the RST goes low (beginning of T1) the TST should be low for > 100 µs (tSBW,Rst). This is not visible on the scope screenshot.

    If that is not helping I would try to relax the timings and try T2 >= 110 µs; T3 = T4 = T5 = 10 µs.

    Let me know if this works!
  • Hello

    Sorry for the late reply. I've made the changes. But still no luck.

    T0 = 140uS (TST Low before RST goes low time period)

    T1 = 20uS

    T2 = 120uS

    T3 = T4 = T5 = 12 uS

    Code in MSP that's sending sequence:

    GPIO_setAsOutputPin(JTAG_TEST_PORT, JTAG_TEST_PIN);
    GPIO_setAsOutputPin(JTAG_RST_PORT, JTAG_RST_PIN);
    
    GPIO_setOutputLowOnPin(JTAG_TEST_PORT, JTAG_TEST_PIN);
    GPIO_setOutputHighOnPin(JTAG_RST_PORT, JTAG_RST_PIN);
    __delay_cycles(960);
    P1OUT &= ~JTAG_RST_PIN;
    __delay_cycles(160);
    P1OUT |= JTAG_TEST_PIN;
    __delay_cycles(960);
    P1OUT &= ~JTAG_TEST_PIN;
    __delay_cycles(80);
    P1OUT |= JTAG_TEST_PIN;
    __delay_cycles(80);
    P1OUT |= JTAG_RST_PIN;
    __delay_cycles(80);
    P1OUT &= ~JTAG_TEST_PIN;
    __delay_cycles(80);

    SMCLK = MCLK = 8MHz

    Am I missing something here?

    Teja

  • Hello!

    I've got it working after changing

    GPIO_setOutputHighOnPin(JTAG_RST_PORT, JTAG_RST_PIN);  to

    GPIO_setOutputLowOnPin(JTAG_RST_PORT, JTAG_RST_PIN);

    This, actually is mentioned in page 7 of SLAU550e. My bad. Should've given more attention to that diagram.

    Thank you  for the help.

    Teja

  • Teja,

    No problem! Happy coding :)

**Attention** This is a public forum