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.

MSP430G2553 UART BSL

Other Parts Discussed in Thread: MSP430G2553, CONTROLSUITE

Hello,

I am trying to figure out how exactly I need to program the MSP430G2553 via UART & BSL.  Per this thread and the datasheet the pins used for UART and the pins used for BSL are different.  This is completely counter intuitive to me, so I wanted to confirm that this is indeed how I should be interpreting these sources.

The datasheet for the chip presents that:

  • P1.1 = UART Rx
  • P1.2 = UART Tx

The datasheet for the BSL presents:

  • P1.1 = UART Rx
  • P1.2 = UART Tx

This post posits:

  • P1.1 = BSL Tx
  • P1.5 = BSL Rx

and a source that I can't seem to find now agreed with the third set from the post.

This source says on page 39 that:

  • P1.1 = Tx
  • P2.2 = Rx

As you can imagine I'm having quite a time of identifying what exactly I'm getting into.  The specific MSP430 chip I want is here.

I have an RN42 bluetooth (UART driven) module that I will be integrating with the project.  My original hope was to be able to program wirelessly (after toggling the proper TEST/RST pins by a mechanical switch).  For this to work I really need the UART Rx/Tx pins to align with the BSL Rx/Tx pins.

I have several questions:

  1. Which of the various pin outs should I be considering?
    1. If the pins do not align correctly I am imagining an additional mux might be possible.  Thoughts?
  2. Is there a BSL tutorial out there somewhere for the MSP340G2553 with UART BSL loading?  (Full tutorial start to finish from both microcontroller and PC/programmer perspective would be fantastic.
  3. Does CCS/ControlSuite have MSP430 examples?  I can't seem to find them in the software.

Thanks!

  • The UART BSL doesn't use the UART. It uses the TIMER_A module so that it can adapt to the baud rate without knowing it's exact clock frequency. If memory serves me correctly (I'm used to the USB BSL on F5xx devices) it samples the transitions on the first rx packet to figure out how many MSP clock cycles there are per bit. The UART function is implemented in software.

    The TIMER pins are different than the UART pins. That's why the "discrepancy" between BSL and normal application UART pins.

    I also seem to recall that BSL is in ROM on those devices, so you can't customize it like you can on most of the newer devices.

    To answer your questions:
    1. Use the pinouts in datasheet, armed with the knowledge I just gave you.
    1a. I'll answer by posing a question - do the BSL and UART have to share the same connection to the PC? You could consider separate connections (2 serial ports - one programming, one for application), or some muxing arrangement, or copy the software UART implementation from the BSL into your application and use the BSL pins that way.
    2. Pass. I'm sure there is but I don't know where to find it any faster than you. I'll let TI chime in on that one.
    3. CCS does have a whole suite of drivers and example code. It's called MSPWare. You should be able install it and find it in Resource Explorer.

  • I just quick checked the datasheet.... (See Table 9, et al)

    Yes, it is unfortunate that BSL TX is on the same pin as UART RX.

    I would also suggest you look at www.ti.com/.../slau319

**Attention** This is a public forum