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.

MSP430FR2311: can't get BSL to run on blank part

Part Number: MSP430FR2311
Other Parts Discussed in Thread: MSP-FET, , MSP430FR5969

I have a new board where I was planning on using the BSL to program it, but I can't get it to show any signs of life. When I use the BSL scripter to send a TX_BSL_VERSION command there is no response from the blank 2311. The TXD pin is low, so it looks like the UART isn't getting initialized.  I also made sure to run the scripter within 10s of a reset so it doesn't time out.

Here's a list of things I've checked:

- power is good 3.3V

- !RST is high

- TEST is low

- serial output from BSL scripter looks good on the scope 8e1 @ 9600 bps

Is there anything else I'm missing? I have two boards that both act the same way. Can connections of any of the other pins stop the BSL from starting?

  • Hello Aaorn,

    Are you using the MSP-FET + BSLScripter to program the part?
    Can you describe the connections you have from the MSP-FET to the device?
    Is this a custom board or Launchpad?
  • This is a custom board. BSLscripter is talking to it over a USB-serial dongle. I can see the BSL packet making it to the UART rx pin on the FR2311.

    cheers,

    Aaron

  • I also have a 2311 Launchpad, but BSLscripter doesn't work with it because ez-Fet support for even parity is broken (which I have noted elsewhere in the forum). One of the first things I tried in debugging was to see BSL in action on the Launchpad, so I erased the part but then ran into the even parity problem.

    ah
  • Here is the thread about the even parity problem:

    e2e.ti.com/.../2148026

    ah
  • Hello Aaron,

    I was more interested in the actual connects between the MSP430FR2311 and your interface. By USB dongle, are you talking about the BSL-Rocket dongle? To clarify, are you trying to invoke the BSL via blank device or by normal Test and Reset toggle?

    Also if using the Launchpad for BSL loading, you need to disconnect the eZ-FET and directly wire the Test, Reset, UART TX/RX, and power pins from the lower half of the LP to the MSP-FET or BSL Rocket dongle.

    All that being said, I also believe there is a bug within the current version of BSL scripter that not only affects FR2311, but MSP430FR5969 as well. Please see the following thread for more details. e2e.ti.com/.../2148051
    Unfortunately, I do not believe the FR2311 was included within the BSL_Scripter 3.1.0.0 release as I was unable to program it via scripter when I tried. Please stay tuned until early next week for our Tools experts are out of office until then.
  • No I mean a LVCMOS level USB serial dongle. It is connected directly to the UART pins on our board.

    I never considered that BSL scripter might be broken. About the only thing I can see not working is the CRC? I will cross check the BSL source code with the BSL manual for the FRAM devices. Thanks.

    ah
  • I've checked the output of BSL scripter 3.2.1 and it looks okay:

    TX_BSL_VERSION
    [80] [01] [00] [19] [e8] [62]

    This matches the example packet in slau610c 4.3.3.7. Unless that is incorrect too ?!

    Can you follow up on the problem with even parity with EZ-Fet? If I had that working it would be helpful in debugging this.

    ah
  • I don't think there is anything wrong with the packet, as I don't get any error codes back (i.e. I would see 0x51 or 0x52). I see nothing from the device - the UART Tx line on the FR2311 is low, so the UART hasn't even been programmed (it should be high in idle state).

    Here is the bit on the time out:

    The BSL on the FR26xx, FR25xx, FR24xx, and FR23xx MCUs implements a low-power time-out feature for the automatic detection of the BSL interface. If no communication has been established within ten seconds, the device enters LPM4 mode. To invoke the BSL again, the device power must be cycled, or a reset or NMI must be received.

    What is the BSL looking for in order to turn on the UART? I've tried sending an ACK character (00) with no luck.

  • Is the source code for the FR23xx BSL available? It would be helpful to know what it is looking for.

    ah
  • Aaron,

    From your responses above, it seems you are trying to invoke the BSL using the Blank Device detection as you do not have the Test and Reset pins connected via your dongle. Unfortunately, it has been very recently discovered that this feature is not available in the current revision of FR2311. The errata document will be updated soon to reflect this. The workaround to eb provided is as follows.

    "Use the dedicated TEST and RST pins to perform hardware BSL invocation, or perform

    software BSL invocation from the main application. See the MSP430FR4xx and

    MSP430FR2xx Bootloader (BSL) Users Guide SLAU610 for more information on BSL entry. "

    If you were to connect the Test and Reset lines and invoke the BSL as described in the BSL user guide, you will run into the BSL-Scripter Issue I was describing. As soon as I get an answer from our Tools experts I will be making an update to this thread here to address the BSL-Scripter concerns.

  • Hi Aaron,

    Let me add some information over here. The BSL-Scripter was developed and tested using the MSP-FET and MSP-BSL "Rocket". In general, for all MSP430F5xx/6xx/FRxx, the BSL has to be invoked, before we start communicating with BSL on the device. The invocation requires certain sequence on the TST and RST pins. BSL-SCripter starts the invocation by generate baud rate +1 in the beginning. So for example you are using baud rate of UART 9600, the Scripter will generate 9601. the MSP-FET and MSP-BSL "Rocket" which receives this 9601 baud, will then generate the invocation sequence.

    So if you are using the USB dongle, the combination with BSL-Scripter could not generate the invoke sequence. what you shown before:

    TX_BSL_VERSION
    [80] [01] [00] [19] [e8] [62]

    is the data that sent from BSL-Scripter. when you got reply, on the next line, the data should be like:

    TX_BSL_VERSION
            [80] [01] [00] [19] [e8] [62]
            <80> <05> <00> <3a> <00> <08> <35> <b3> <35> <9f>
            Vendor:[TI] CI:[08] API:[35] PI:[B3]

    So I agree with what Jace wrote before. The Scripter is not communicating because the BSL on FR2311 is not invoked.

  • This isn't really the answer. There was never really any question that the BSL wasn't getting invoked, the question was why. It's right there in the subject line.

    The answer is that there was an undocumented (!!) errata (!!) on the MSP430FR2311 part such that the BSL does not run on a blank part (for whatever reason).

    Unfortunately I don't have the spy by wire pins connected to headers on my board, so I'll have to remove the parts and program them with the launchpad and then replace them.

  • A good solution to this errata would be for TI to provide these parts pre-programmed to jump to the BSL.

  • To those following the thread,

    Invocation of the BSL via Blank Device Detection is currently not available on MSP430FR26xx, MSP430FR23xx, and MSP430FR21xx devices (Revision A). This is in violation to what is described within the BSL User Guide for these devices, specifically section 3.3 Blank Device Detection and section 3.5 BSL Invocation. This is viewed as an erratum for the device and should be reflected in the next errata sheet update at the end of June (2017).

    Please keep in mind, this erratum only applies to automatic invocation of the BSL with a blank device. Blank devices can still use the BSL with the traditional HW invocation method with the Test and RST lines. Please see the BSL User guide for more details about this invocation method. MSP430FR4xx and MSP430FR2xx Bootloader (BSL)

**Attention** This is a public forum