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.

MSP430F5336: Problem communicating to the BSL (UART)

Part Number: MSP430F5336
Other Parts Discussed in Thread: MSP430FR2533, OMAP-L138

Hi,

We are using msp430f5536 on our custom board and we trying to perform firmware upgrade using BSL (UART).

We can enter BSL by invoking it from software but we are not getting valid responses on the host side when we issue BSL commands.

For example when we send Rx Password command we get following response 0x80 0x0 0x0 0x80 0x80 0x80 0x0 0x0 0x80 0x80 0x80 0x0 0x0 0x80 0x80.

For mass erase and BSL version command we get the same 0x80 0x0 0x0 0x80 0x80 response.

USRT on the host is configured as:

1. Baud rate 9600

2. Start bit, 8 data bits LSB first, even parity , stop bit

Any suggestion on how to resolve this communication issue are welcome.

Best regards,

Dmitri Krivchitch

  • Hi,

    Here is a bit more information about our setup.

    On the msp430 we use the following sequence to enter BSL from software

    SysCtl_disableBSLProtect();

    __disable_interrupt();

    ((void(*)())0x1000)();

    BSL version is 00.07.05.04

    Even when we send a completely invalid command we get the same response 0x80 0x0 0x0 0x80 0x80.

    BSL UART (P1.1, P1.2) is connected to the UART on T1042 (TTL levels). We have USCI_A1 connected to another UART on T1042 (TTL) and it works without problems in our application code.

    In the past we used the same setup for firmware upgrade when msp430fr2533  (BSL UART P1.4 and P1.5) was connected to the OMAP-L138 UART (except we did not have to call SysCtl_disableBSLProtect since BSL was in ROM) and it worked without any issues. 

    Best regards,

    Dmitri Krivchitch 

  • Hi Dmitri Krivchitch,

    I want to double check if the bootloader works OK, when you invoke it though hardware.

    Can you tell me what you do in SysCtl_disableBSLProtect()? I haven't hear about this function.

    Eason

  • Hi Eason,

    Unfortunately our board does not have TEST signal wired so we cannot invoke BSL through hardware.

    SysCtl_disableBSLProtect clears SYSBSLPE bit in OFS_SYSBSLC register. When this bit is set BSL memory cannot be accessed.

    Dmitri  

  • The problem we saw was caused by us using TIMER_A0 and not disabling it before invoking BSL. With the timer disabled BSL runs properly.

    Best regards,

    Dmitri Krivchitch