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.

Programming a MSP430 through another MSP430 through BSL

Other Parts Discussed in Thread: MSP430FR5739

Hi,

We need to connect two MSP430's(MSP430FR5739) in our application and we want to
program the Slave MSP through Master MSP through BSL. Is this possible?
Please let us know if there is any sample codes or any reference on how this could be done.

Best Regards
Kummi

  • Hi Kummi,

    You can go to the "Bootloader (BSL) for MSP low-power microcontrollers" which has examples and application notes about BSL implementation for MSP low-power microcontrollers.

    Wei

    MSP Customer Applications

  • Kummi said:

    We need to connect two MSP430's(MSP430FR5739) in our application and we want to
    program the Slave MSP through Master MSP through BSL. Is this possible?
    Please let us know if there is any sample codes or any reference on how this could be done.

    You can integrate micro / PC side from www.ti.com/lit/pdf/slaa535 Launchpad-Based MSP430 UART BSL Interface and www.ti.com/lit/pdf/slau319 MSP430 Programming With the Bootloader (BSL Scripter). There is also BSL Replicator open source example inside BSL Scripter.

    But for that I will use SBW (2 wires less), simplified FRAM slau320 (MSP430 Programming With the JTAG Interface) with quick read / write. There is also possible to exchange data by mailbox communication between 2 FRAM (free running) devices over SBW (without any extra wires).

  • Hi.
    I found SLAU550E(user's guide for FR5739 etc).
    I could complete ' BSL entry'.

    and Traying next:
    //////boudrate change command send

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x80;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x02;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x00;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x52;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x02;////9600

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x90;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x55;

    ////////BSL response receive
    while (!(UCA0IFG&UCRXIFG));
    i = UCA0RXBUF;//ACK

    But ,
    ACK: i=0x51 (Header incorrect..)

    ////////////////////////////////
    It seems somthing wrong.

    Please show me sample code.
  • I found User's guide SLAU550E and I could success BSL entry.
    Now trying boudrate change.
    Code is next.

    //// code start //////////

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x80;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x02;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x00;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x52;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x02;////9600

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x90;

    while (!(UCA0IFG&UCTXIFG));
    UCA0TXBUF = 0x55;

    ////////
    while (!(UCA0IFG&UCRXIFG));
    i = UCA0RXBUF;///ACK
    ///////////////code end///////////////////////////////////////


    But ,
    ACK: i= 0x51 (Header incorrect)

    It seems somthing wrong.

    Please show me sample code.
  • Try mass erase or read / write for start with blank password. Don't mess with baudrate change command.
  • Hi zrno soli.

    Successed ! by mass erase.  Thank you so much. 

**Attention** This is a public forum