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.

MSP430F6736A: BSL Communication Issue on MSP430F6736A Using MSP-FET

Part Number: MSP430F6736A
Other Parts Discussed in Thread: MSP-FET, MSP430F6459, UNIFLASH

Tool/software:

Hi Team,

We are trying to invoke BSL on MSP430F6736A through the MSP-FET debugger. But we are unable to establish the UART communication through BSLScripter-3.4.0.2 

We have made the following pin connections between the MSP-FET debugger and the MSP430F6736A microcontroller:

Pin

MSP-FET

MSP430F6736A

TEST

Pin 8

TEST

RESET

Pin 11

RST

BSL-Rx

Pin 14

P3.1/RXD

BSL-TX

Pin 12

P3.0/TXD

Vcc

Pin 2

VCC

GND

Pin 9

GND

We tried invoking the BSL by disabling interrupts and jumping to the BSL memory location 0x1000 using a JTAG application.

I'm trying to load  BSL-Scripter/ScriptExampleLinux/6xx_uart/script_6xx_uart.txt for my setup as follow

MODE 6xx UART /dev/ttyACM0

VERBOSE

RX_PASSWORD pass32_wrong.txt

RX_PASSWORD pass32_default.txt

RX_DATA_BLOCK sample_6736a.txt

CRC_CHECK 0x8000 0x0020 0x4872

CRC_CHECK 0xffc6 0x00D0 0xacf7

SET_PC 0x8000

We are encountering the following error message during execution:

[ACK_ERROR_MESSAGE]Unknown ACK value!

Please find the logs of script:

Input file script is : /home/vvdn/ti/BSL-Scripter/ScriptExampleLinux/6xx_uart/script_6xx_uart.txt

//
//Script example 6xx UART BSL
//Device tested: MSP430F6459
//Comm Bridge used: MSP-BSL Rocket
//
//Download the blink application
//through UART BSL
//
LOG
MODE 6xx UART /dev/ttyACM0
Baud rate setup for UART is not given / wrong
It will be setup to the default 9600baud
//gives the wrong password to
//mass erase the memory
VERBOSE
Verbose mode is now on!
RX_PASSWORD pass32_wrong.txt
Read Txt File : /home/ti/BSL-Scripter/ScriptExampleLinux/6xx_uart/pass32_wrong.txt
[80] [21] [00] [11] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff]
[ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff]
[ff] [ff] [00] [00] [91] [fb]
<00>
[ACK_ERROR_MESSAGE]Unknown ACK value!
RX_PASSWORD pass32_default.txt
Read Txt File : /home/ti/BSL-Scripter/ScriptExampleLinux/6xx_uart/pass32_default.txt
[80] [21] [00] [11] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff]
[ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff] [ff]
[ff] [ff] [ff] [ff] [9e] [e6]
<00>
[ACK_ERROR_MESSAGE]Unknown ACK value!
RX_DATA_BLOCK sample_6736a.txt
Read Txt File : /home/ti/BSL-Scripter/ScriptExampleLinux/6xx_uart/sample_6736a.txt
[80] [20] [00] [10] [00] [40] [00] [81] [00] [00] [3c] [b1] [13] [48] [00] [0c]
[43] [b1] [13] [00] [00] [1c] [43] [b1] [13] [42] [00] [32] [d0] [10] [00] [fd]
[3f] [03] [43] [21] [cb]
<00>
[ACK_ERROR_MESSAGE]Unknown ACK value!
[80] [80] [00] [10] [d0] [ff] [00] [14] [40] [14] [40] [14] [40] [14] [40] [14]
[40] [14] [40] [14] [40] [14] [40] [14] [40] [14] [40] [14] [40] [14] [40] [14]
[40] [14] [40] [14] [40] [14] [40] [14] [40] [14] [40] [14] [40] [14] [40] [14]
[40] [14] [40] [14] [40] [00] [40] [b1] [00] [04] [00] [b2] [40] [80] [5a] [5c]
[01] [81] [43] [02] [00] [b1] [90] [0a] [00] [02] [00] [13] [2c] [e2] [e3] [23]
[02] [b1] [40] [10] [27] [00] [00] [81] [93] [00] [00] [05] [24] [91] [83] [00]
[00] [81] [93] [00] [00] [fb] [23] [91] [53] [02] [00] [b1] [90] [0a] [00] [02]
[00] [ed] [2b] [a1] [00] [04] [00] [10] [01] [03] [43] [ff] [3f] [03] [43] [1c]
[43] [10] [01] [8e] [3e]
<00>
[ACK_ERROR_MESSAGE]Unknown ACK value!
Time elapsed of writing 152 bytes : 0.4994 seconds
Speed of writing data :0.2972(kB/s)
CRC_CHECK 0x8000 0x0020 0x4872
[80] [06] [00] [16] [00] [80] [00] [20] [00] [ab] [42]
[ACK_ERROR_MESSAGE]Unknown ACK value!
CRC_CHECK 0xffc6 0x00D0 0xacf7
[80] [06] [00] [16] [c6] [ff] [00] [d0] [00] [cc] [39]
[ACK_ERROR_MESSAGE]Unknown ACK value!
SET_PC 0x8000
[80] [04] [00] [17] [00] [80] [00] [d2] [d5]

Could you please provide any recommendations or troubleshooting steps to resolve the issue?

  • I check the hardware connection on MSP-FET and MSP430. They are all right. Not quite sure why the BSL ack failure happens.

    Can you use a logic analysier to see what happens on Test, RST, RX and TX?

  • Hi Eason,

    Please find the TEST, RST , TX and RX pin state while running the BSL script






    In addition to the previous query, we have observed an issue with the voltage levels being applied by the MSP-FET debugger. Our system supports 3.3V, but during debugging, we noticed that 1.8V is being applied through the VCC pin.

    Could you please guide us on how to configure the MSP-FET debugger to support a 3.3V supply to match our system's requirements?

  • The signal voltage level is quite strange. For example the TX voltage change(1V) is much different with RX voltage change(2V).

    The MSP-FET with default can output 3.3V. Can you directly test the MSP-FET without any connection? I suppose your PCB drive too much current.

    You can try to use VCC-TARGET instead of VCC-TOOL (Use external power supply to provde the power for MSP-FET)

  • Hi Team,

    We attempted to use the FTDI FT4232 chip instead of the MSP-FET debugger to interface with the MSP430 through BSL UART. We connected DBUSUSB0/1 for TX/RX, along with TEST and RST pins. However, we're still facing the same acknowledgment (ACK) issue when running the BSL script.

    Here’s what we’ve tried:

    Software Invocation:
    We disabled interrupts and used a software call to jump to the BSL:

    __disable_interrupt(); // disable interrupts

    ((void (*)())0x1000)(); // jump to BSL

    We attempted to observe the TEST and RST sequence mentioned in the documentation while invoking BSL through Application ("BSL starts with two rising edges on TEST, and TEST held high when RST rises"). However, on the oscilloscope, this sequence was not detected.

    Could you advise on whether our invocation method is correct? Are there specific considerations when using the FTDI FT4232 chip for BSL UART?

  • Gentle reminder on the query 

  • Sorry, I just return from a long holiday.

    1. Why you want to change another tool? I have no idea about the FTDI FT4232. I don't think the problem lies on the tool.

    2. When you use MSP-FET, I think you observe the invoke sequence on reset and test pin. Besides, you still don't answer my question about the voltage level.

    3. The first thing is to make sure whether the device enter BSL mode. I would suggest you to download a GPIO toggle code into the MCU. If it enter the BSL, you should see the GPIO toggle will stop.

    4. The second thing is to make sure the communication setup is good. It seems that you trapped at this step.  So you need to use a  logic analysier to interrrupt the communication to know what happens.

  • Hi Eason,

    As per your suggestion, We have programmed the MCU with a GPIO toggle code, and the GPIO toggling function stopped once we ran the BSL script. However, we still facing same Unknown ACK failure 
    To clarify the power configuration, we’ve supplied 3.3V externally to the target . We intended to use FTDI as a debugger for our target .I tried this thread but still encountered the same issue.
    We have also observed the tx and rx lines

    Could you suggest additional debugging steps?

  • OK, I think MCU enter the BSL mode. MSP-FET and PC is in right configuration. 

    The strange thing is that why the RX pin is low voltage? It should be high voltage... Can you check the external hardware setting?

    Can you check if there is code in this range? If it is empty, you may need to refer to this app note to update this BSL:https://www.ti.com/lit/an/slaa450g/slaa450g.pdf

  • Hi Eason,


    I have checked the voltage of TX and RX lines and they seem to be active we observed 3.3 on RX and 2.5 on TX 
    regarding the BootLoader location, I attempted to read the BSL memory region (using Uniflash's memory browser), but the memory in those regions shows as 0xFFFF.

    In the mentioned Application note , i couldn't find code for 6xx family so I attempted to flash the MSP430F673x_Family binary from the /Released_BSL_Images/BSL.00.07.05.04.txt folder using Code Composer Studio. After flashing, I checked the memory at 0x1000 and observed some values in that region.


    Despite the above steps, I am still getting the "Unknown ACK value" error when running the BSL script.

    Is my approach to flashing the BSL correct, or did I miss any key steps?

    Why might I still be getting the "Unknown ACK value" error after flashing the BSL binary?

  • As I check the code is not downloaded. It is all to be 0x3FFF. Maybe the problem lies on the Erase setting.

    For example, at 0x1000, the value should be 0x3C09.

  • Hi Eason,

    I tried with this erase option , After loading a binary, I read the value 0x3C09 at this address, but after a power cycle, it reverts to 0x3FF


    after powercycle

  • Can you try another device? The flash should not meet this problem....

  • I have tried with another board also same happened 
    Here is what we tried:
    1. through JTAG i have flashed the BSL.00.07.05.04.txt file using uniflash with mentioned erase option 
    2. after power cycle , i observed 0x3fff at memory location 0x1000

  • I think when you write and read the memory, you need to do the selection as bellow.

    If you create a new sesssion, and read the memory without do the selection, you will find the memory to be all 0x3FFF. 

  • Yes, i'm able to read the BSL memory 

    Using this thread i'm able to flash However, when using the default Linux script for flashing i'm facing "Unknown ACK value"error again.

    What could be the reason?
    In fresh board can we try BSL UART flashing ,if yes how can we invoke the BSL sequence ?

  • Here is my further suggestion:

    1. Can you try to use Unilflash+MSPFET and try again. Remember to choose the right setting.

    2. Can you use an logic analysier to catch the wave? We need to intepret the communition. Not just the wave, get with oscillscope.

  • ok, Will check and let you know the results

    Meanwhile, How can we achieve the BSL invoke through Test and RST pin via FTDI debugger? Any suggestion would be helpful

  • Hi Eason,

    Yes we are using UART to USB serial adapter(FT4232H) 
    We tried with BSLDEMO application but unable to invoke BSL sequence

    BSLDEMO.exe -tUSB -cCOM12 +evpr eusci_a_uart_ex1_loopbackAdvanced.txt
    ----------------------------------------------------------------------------------------------------------------
    MSP430 Bootstrap Loader Communication Program (Version 2.03 - 2019)
    Number of mass erase cycles set to 1.
    Mass Erase...
    ERROR: Synchronization failed!
    Device with boot loader connected?

    -----------------------------------------------------------------------------------------------------------------
    Does it support F6xx family?

  • As I check it doesn't support F6

    If you want BSL-scripter to support USB to UART tool. Please refer to this code and update the BSL-scripter source code

**Attention** This is a public forum