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.

MSP430F5435 BSL not working

Other Parts Discussed in Thread: MSP430F5435, MSP430F5438, MAX3232

Good day!

I'm working with MSP430F5435 installed at TMDSEVM6678L board. I'd like to program my own application into MSP430 using BSL as it's noted in slau319g user's guide. I'm using BSL Scripter v.107 and my own interface board to connect PC COM port to MSP430. MSP430 enters BSL, accepts commands with ACK byte, but BSL core doesn't respond as I expected (chapter 3.7 of slau319g user's guide). The following screenshots illustrate the problem.

  • And what is your BSL hardware base. If I remember right, USB-UART bridge chips are not fast enough for entering in BSL mode for MSP430x5xx devices. Also, if BSL pass is unknown, only mass erase can be executed.

    If you have LP on hand, try slaa535 LaunchPad-Based MSP430 UART BSL Interface

  • Dear zrno soli!

    My own interface board which is used to connect PC COM port to MSP430 is only a converter board from 3V LVTTL to RS232 interface voltage levels. So there is no additional delay in UART connection. And BSL password is set to default - but it does nothing!

  • If you want to use your BSL hardware with original TI BSL software, than your hardware must be compatible with TI solution. As you can see on TI BSL schematic (SLAU319 MSP430 Programming Via the BSL > BSL Interface Schematic) there is one AHC14 gate on TEST line, but two on RESET line, so one of the signals is inverted (TEST), and another is not (RESET). Is it on your interface like this?

  • Dear zrno soli!

    Yes, my interface is like TI BSL schematics in slau319. I've checked BSL entry sequence carefully - it's like Figure 1-2 in slau319. Any other suggestions?

  • I have MSP430F5435 boards, but P1.1 (BSL TX) and P1.2 (BSL RX) are not accessible, so can't check BSL.

    You can check prepared scripts for BSL_Scripter from slaa535 LaunchPad-Based MSP430 UART BSL Interface. They are located inside the ZIP file...

    LPAD_BSL_INTERFACE\TestScripts\MSP430F5438\

    And read this...

    http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/205976.aspx

    http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/204065.aspx

  • I've found out the problem - BSL_Scripter.

    1. In function invokeBSL() should be

        SetRSTpin(0);  /* RST  pin: GND */
        SetTESTpin(0); /* TEST pin: GND */   delay(10);   
        SetTESTpin(1); /* TEST pin: Vcc */   delay(10);   
        SetTESTpin(0); /* TEST pin: GND */   delay(10);   
        SetTESTpin(1); /* TEST pin: Vcc */   delay(10);  
        SetRSTpin (1); /* RST  pin: Vcc */   delay(10);
        SetTESTpin(0); /* TEST pin: GND */   delay(10);

    instead of

        SetRSTpin(0);  /* RST  pin: GND */
        SetTESTpin(0); /* TEST pin: GND */   delay(10);   
        SetTESTpin(1); /* TEST pin: Vcc */   delay(10);   
        SetTESTpin(0); /* TEST pin: GND */   delay(10);   
        SetTESTpin(1); /* TEST pin: Vcc */   delay(10);  
        SetTESTpin(0); /* TEST pin: GND */   delay(10);
        SetRSTpin (1); /* RST  pin: Vcc */   delay(10);

    2. In function SetRSTpin() should be

      comDCB.fDtrControl = level ? DTR_CONTROL_DISABLE : DTR_CONTROL_ENABLE;

    instead of

      comDCB.fDtrControl = level ? DTR_CONTROL_ENABLE : DTR_CONTROL_DISABLE;

    I've fixed it and everything was OK.

  • zrno soli said:
    for MSP430x5xx devices.

    Not 5xx, but 54xxA and non-A. There indeed is a timing restriction that prevents USB/ser converters to trigger BSL entry (SYS10 erratum). The erratum has been removed from the errata sheet in SLAZ046F for non-A (rev.E still listed SYS10 for same silicon rev. L) and was apparently fixed for A devices with silicon revision F (but not G which is based on E)  according to SLAZ057P.

    zrno soli said:
    Also, if BSL pass is unknown, only mass erase can be executed.

    Well, after doing the mass erase, everything is possible since the password is known then. So this is not really a limitation except if you want to dump the memory. Then of course you'll need the password, but that's the purpose of a password.

  • Dear zrno soli!

    I don't understand what about Jens-Michael Gross wrote the post.

  • Oleg Miloserdin said:
    I don't understand what about Jens-Michael Gross wrote the post.

    The timing problem that prevents BSL usage through USB/ser converter only affects the F54xx and the older silicon revisions of the F54xxA devices. The rest of the F5xx family doesn't have this problem.

  • Dear Jens-Michael Gross!

    Could you please explain to me the timing problem that prevents BSL usage through USB/ser converter. You have answered to zrno soli but I don't see you answers.

  • Oleg Miloserdin said:

    Could you please explain to me the timing problem that prevents BSL usage through USB/ser converter. You have answered to zrno soli but I don't see you answers.

    Hardware UART (in older PC's) can change DTR / RTS pin state very fast. USB (UART bridge) can't, and with some MSP430x5xx devices it (USB) is simply not fast enough for BSL entering sequence (TEST / RESET).
    If you want to know how USB-UART bridges are working, here it is...
  • Dear zrno soli!

    I don't use USB-UART bridge, I use direct connection from PC COM port to MSP430. The problem was in BSL_Scripter v.1.07 as I prevously described.

  • Oleg Miloserdin said:
    I don't use USB-UART bridge

    Well, the erratum may also apply to a real COM port, if the OS is busy or the software that initiates the different steps is slow. Using USB only makes it sure that the problem appears.

    However, at least your second screenshot seems to indicate that you get the BSL started. Now it doesn't react as expected. How did you connect your MSP to the COM port? I mean, electrically. The MSP uses TTL signal levels while the COM port uses RS232 signal levels, which are different and incompatible. You'll need a signal translator such as the MAX3232.

  • Dear Jens-Michael Gross!

    I'm using ADM3310 IC as signal translator from PC COM to MSP430 pins. All signals are connected without any inverters.

    As I previously wrote, I did connect to MSP430 BSL and successfully upload my application to it. The problem was BSL_Scripter application v.1.07, which I used to connect to MSP430. I've edited BSL_Scripter source code and got the correct result.

    Thanks for your help!

**Attention** This is a public forum