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 and Timer_A UART

Other Parts Discussed in Thread: MSP430F149

Hi everyone,

I have been using the MSP430F149 for quite some time now, but have never used the BSL. My current application (using MSP430F149 Rev AA and higher) requires the BSL for in system software updates. My question is does the BSL only suport the Timer_A software UART? If so is there a workaround? Can anyone point me to BSL info and examples other than slau319?

Thanks and best regards.

  • You really should not worry if the BSL uses Timer or UART. What you should know is which pins are used for BSL and you have to connect those pins to the PC interface. For F149, the BSL needs the RST, TCK, P1.1 and P2.2 to be interfaced to PC.

    If your application also needs to communicate with the PC with UART, it make sense to share the same interface. For example, you may want to use P3.4 and P3.5. You could connect P1.1 in parallel with P3.4 as TXD and P2.2 in parallel with P2.2 as RXD. In your application, do not use P1.1 and P2.2 (leave them as input and ignore them) and use UART with P3.4 and P3.5. When BSL is invoked, it will leave P3.4 and P3.5 as input and ignore them. BSL itself will use P1.1 and P2.2.

  • Thanks OCY! That's a great workaround. Why didn't i think of that  :D

  • Charles Parra said:
    does the BSL only suport the Timer_A software UART

    On almost all MSPs, except for the CC devices and the ones wiht USB controller, the BSL uses the tiemr for a software UART. This means tah usually, RX and TX are connected to TA0.0 and TA0.1 (TA0+TA1 on devices with old notation).

    It makes no difference whethe rthe UART uses hardware or software, except for the pins used.

    It is possible to use the same connector  for both. You may simply connect the pins for tiemr RX and TX with the hardware RX and TX pins. When the BSL runs, the hardwar epins are high-impedance and when the hardware UART is used by the applicaiton, the timer pins are in high-impedance. However, you cannot use the timer pins then for other purposes.

    Charles Parra said:
    Can anyone point me to BSL info and examples other than slau319?

    slau265 covers teh BSL. Last revision I have is SLAU265i.pdf.

    Edit: I really should reload open windows before starting to answer. I could have spared much of the above as OCY already wrote it :(

  • Thanks Jens!

    My issue now is that the device I need to communicate with does not use the Parity Bit. This is not a problem when using the MSP UART., but it is a problem when communicating with the BSL for in system programming since the BSL uses the Parity Bit.

    Does anyone have any suggestions?

    Thanks again!

  • Charles Parra said:
    My issue now is that the device I need to communicate with does not use the Parity Bit.

    If this device shall do the BSL update, then you're hosed. However, there is a workaround:
    The BSL requires the paritiy bit, but the frame isn't actually checked (and a parity error is never detected). If the sending device ads a second stop bit (or adds a pause of at least one bit between two bytes, which actually is the same), then the MSP with software UART will take this for a mark parity and not complain.
    And since there are additional checksums in teh protocol, any really defective byte will cause a checksum failure and won't go undetected.

    I just read something about this in another recent thread.

  • Thanks again Jens!

    I was afraid of that! I was hoping to stick with the MSP processor since I am so familiar with it. Perhaps a different processor may be the way to go for this project.  :-(

  • Jens-Michael Gross said:
    ... If the sending device ads a second stop bit (or adds a pause of at least one bit between two bytes, which actually is the same), then the MSP with software UART will take this for a mark parity and not complain... I just read something about this in another recent thread. ..

    In the case of so-called ROM-based BSL as in F1xx and F2xx. Parity is checked. Which another recent thread are you referring to?

  • old_cow_yellow said:
    Which another recent thread are you referring to

    This one. (you started it yourself)
    There it is stated that the BSL using Timer-based software UART does not check parity. Maybe it's not working with the older ROM BSLs. I didn't find any authoritative confrmation.

  • Charles,

    The BSL ROM code inside MSP430F149 checks the parity of incoming bytes and responds with bytes+parity.

    The BSL_SCRIPTOR for Windows PC sends bytes+parity. I do not know if it checks incoming parity. Source code is on TI web-site.

    --OCY

  • Thanks again OCY,

    I will check in to the BSL_Scriptor.

    Perhaps I should use the 5X series chips instead?

    -- Charlie

**Attention** This is a public forum