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 UART Tx Pin (MSP430F2132)

Other Parts Discussed in Thread: MSP430F2132

Hi there

 

We are using the MSP430F2132 in one of our projetcs. For communication with an external device such as a computer, we use the UART on pins P3.5 (UCA0RXD) and P3.4 (UCA0TXD). We also want to use the built in bootstrap loader by calling it by software when an appropriate command is received via the normal UART. However, the BSL's receive and transmit pins are located on P2.2 and P1.1. How do I have to connect the two Tx pins for serial communication over the same lines in both normal and BSL mode? I read on Embedded Related, that UCA0TXD is configured as output with high signal level and UCA0RXD as input while in BSL mode. Is this correct? Is there any official documentation from TI on this?

Thanks in advance, regards

Roman

 

  • You can simply connect the TX and RX pins. After power-up, all pins are high-impedance inputs.

    If you enter BSL mode, the P1.x pins are used, but the UART pins stay high-impedance inputs. If you do not enter BSL mode, the P1 pins remain in high-impedance input state and the UART pins can be safely activated.

    It just adds some pF of parasitic capacitance to the lines, but this is not a problem with the relatively slow baudrates of the UARTs.

  • Have you tried your solution? Does it really work?

    Here's the quote which I found on Embedded Related and the MSP430 group on the yahoo mail groups respectively:

    Further, this is what TI replied to the HW designer (who's using the
    the diodes):

    TI:

    ------
    Your assumptions about the UTXDO and URXDO in BSL mode are correct.
    ------

    HW designer:

    -------
    My issue is resolved based on the assumptions that in BSL mode, always:

    UTXDO is OUT in High state [he means High level, not

    high-impedance, here]

    URXDO is IN


    Should I consider these reliable assumptions?

    --------

    Thats why he uses two diodes and a pull up resistor, as he describes here:

    Unfortunately, we can't dispense of the diodes.

    We tested BSL with the normal mode transmitter pin and the BSL mode

    transmitter pin directly connected (in parallel) and the BSL doesn't
    work.

    Things work correct for us in both BSL and normal mode now when using

    the diodes as follows:

    - the cathodes of the diodes are connected each respectively to the

    normal mode transmitter output pin and to the BSL mode transmitter
    output pin

    - their anodes are connected together, then pulled up to VCC by a 47K

    resistor, and connected to the MAX3880 transmitter driving the RS-232

    However, when I jump to the BSL by software, I can't measure a high level on the UCA0TXD pin. A clear statement of TI would be really helpful.

  • That's really strange.

    In theory (and what I observed when ignoring BSL totally), the port pins used by the BSL for transfer are high-impedance inputs at power-on. The pin used for TX is ONLY switched to output if BSL is entered by using the BSL entering sequence. Then the UART pins are still high-impedance inputs. There is no interference possible.

    If you, however, enter the BSL from your application, then you'll need to switch the UART pins back to high-impedance inputs before doing so. And of course you cannot use the port pins used by the BSL for anything else in your application.

    So if your hardware designer tested BSL mode compatibility by jumpting into the BSL code from his own test application (which has enabled the UART previously), then It is clear why it doesn't work. If he used the proper BSL entry sequence (RST/TEST) then I don't know why he had any problems.

  • You can connect P1.1 and P3.4 together, but only enable one of them at a time to transmit serial data.

    Likewise, connect P2.2 and P3.5 together, but only utilize one of them at a time to receive serial data.

    The BSL ROM code configures P3.4 and P3.5 as input pins and ignores them. It then uses P1.1 as TXD and, P2.2 as RXD.

    Your application code should likewise configure P1.1 and P2.2 as input pins and ignore them.

**Attention** This is a public forum