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.

MSP430FR2675: BSL Scripter Returns a lot of "Unknown ACK Value" errors.

Part Number: MSP430FR2675
Other Parts Discussed in Thread: UNIFLASH, MSP-FET, , MSP-TS430PT48A, MSP430FR69891, MSP430FR2475, MSP-EXP430FR6989

How do I resolve this error?

$ ~/ti/BSL-Scripter/bsl-scripter-mac -n FRxx -i [/dev/tty.usbmodem14401,I2C,400000] -b -w ~/Desktop/BSL_keypad_55.txt -v -z [SET_PC,0x8000]

---------------------------------------------------------

BSL Scripter 3.4.0.1

PC software for BSL programming

2021-Jul-13 17:11:29

---------------------------------------------------------

Log mode is turned on!

/Users/pcpro178/ti/BSL-Scripter/bsl-scripter-mac -n FRxx -i [/dev/tty.usbmodem14401,I2C,400000] -b -w /Users/pcpro178/Desktop/BSL_keypad_55.txt -v -z [SET_PC,0x8000]

Verbose is turned off!

Device : FRxx

Init communication parameters : [/dev/tty.usbmodem14401,I2C,400000]

RX_PASSWORD

[ACK_ERROR_MESSAGE]Unknown ACK value!

Read Txt File  : //Users/pcpro178/Desktop/BSL_keypad_55.txt

RX_DATA_BLOCK /Users/pcpro178/Desktop/BSL_keypad_55.txt

Read Txt File  : //Users/pcpro178/Desktop/BSL_keypad_55.txt

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

Time elapsed of writing 6080 bytes : 3.015 seconds

Speed of writing data :1.969(kB/s)

MEMORY VERIFICATION

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

[ACK_ERROR_MESSAGE]Unknown ACK value!

Verification memory status is success!

SET_PC 0x8000

  • Can you use oscilloscope to catch the wave? Please double check:

    1. You see the invoke sequence on RST and TEST pin.

    2. See the ACK from the slave.

  • I connected my Saleae to observe the BSL-related signals, and something is clearly wrong.  RST/SBWTDIO, BSL SCL, & BSL SDA are all pegged high at 3.3V.  TEST/SBWTCK is pegged low at about 18mV.  I started my capture just before running BSL-Scripter from the command line (see command in original post).  None of the lines moved for the entire time BSL-Scripter was running.  Prior to running BSL-Scripter I did a mass erase of the device using UniFlash.

    Here's a photo of my setup.  The JTAG jumpers are configured for SBW.  The I2C pullups are enabled, and the BSL interface selection is set to I2C.  The TTL UART is there to observe some output on my serial terminal to verify that the new image loaded and is running.

    This is the code that I already have implemented in my application:

    /*
    * TI Boot-strap loader (BSL) configuration values
    */
    #define BSL_CONFIG_SIGNATURE (0x695A) // BSL Configuration Signature
    #define BSL_CONFIG_PASSWORD (0x5A00) // BSL User's Configuration Signature
    #define BSL_CONFIG_TINY_RAM_ERASED_BY_INIT (0x0008) // Tiny RAM is erased during BSL invocation
    #define BSL_CONFIG_TINY_RAM_NOT_ERASED_BY_INIT (0x0000) // (Default) Tiny RAM is not erased during BSL invocation
    #define BSL_CONFIG_RAM_ERASED_BY_INIT (0x0000) // RAM is erased during BSL invocation
    #define BSL_CONFIG_RAM_NOT_ERASED_BY_INIT (0x0004) // (Default) RAM is not erased during BSL invocation
    #define BSL_CONFIG_INTERFACE_UART_I2C (0x0000) // Enable UART and I2C
    #define BSL_CONFIG_INTERFACE_UART_ONLY (0x0001) // Enable UART
    #define BSL_CONFIG_INTERFACE_I2C_ONLY (0x0002) // Enable I2C
    #define BSL_CONFIG_INTERFACE_DEFAULT (0x0003) // (Default / Reserved) Enable UART and I2C
    #define BSL_I2C_ADDRESS_7BIT (0x60) // Customized I2C Address

    /*
    * Apply BSL configuration value to BSL configuration section
    */
    #pragma RETAIN(bslConfigurationSignature)
    #pragma DATA_SECTION(bslConfigurationSignature, ".bslconfigsignature")
    const uint16_t bslConfigurationSignature = BSL_CONFIG_SIGNATURE;

    #pragma RETAIN(bslConfig)
    #pragma DATA_SECTION(bslConfig, ".bslconfig")
    const uint16_t bslConfig = (BSL_CONFIG_PASSWORD | BSL_CONFIG_INTERFACE_I2C_ONLY) ;

    #pragma RETAIN(bslI2Caddr)
    #pragma DATA_SECTION(bslI2Caddr, ".bsli2caddress")
    const uint16_t bslI2Caddr = (0xFF00 | BSL_I2C_ADDRESS_7BIT) ;

    Is there something more in the application (CCS project) that needs to be enabled to get the BSL to run?  I'm just trying to get the stock BSL to work in I2C mode without any customizations.

  • To make the ROM BSL work,  there is no relationship with the application code.

    As you can't see any wave on the RST and TEST, I think there maybe some problem with your BSL-scripter configuration.

    You can refer to the flow described in this document:

    5241.Download_image_BSL.pdf

  •  I read the document that you suggested.  Thank you, it has a lot of good details.  Unfortunately, it's still not working.  Here's the contents of the log file generated from the script that I'm using.  In addition to the COM "port" I've updated the last three lines of the script because the MSP430FR2675 NV memory starts at 0x8000.  My understanding is that the MSP-FET should work with the ROM BSL in I2C mode.  I tried connecting my MSP-FET directly to the chip's respective BSL I2C pins, but no joy.  

    This issue is dragging on and needs to be resolved.  Is it possible to escalate?  We need to bring this to a resolution.

    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Jul-16 10:45:23
    ---------------------------------------------------------
    Input file script is : /Users/pcpro178/Desktop/scripter_test/bsl_script_i2c.txt
    MODE FRxx I2C 400000 /dev/tty.usbmodem24401
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    Read Txt File : /Users/pcpro178/Desktop/scripter_test/pass32_wrong.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    Delay 2000 ms
    RX_PASSWORD pass32_default.txt
    Read Txt File : /Users/pcpro178/Desktop/scripter_test/pass32_default.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    RX_DATA_BLOCK BSL_kekypad_55.txt
    Read Txt File : /Users/pcpro178/Desktop/scripter_test/keypad_55.txt
    File is not available/accessed by other program...

  • Hi 

    Few comments from myside

    1. Check your target board MSP-TS430PT48A SW3 and SW4 be closed and SW5 is open. 

    2. Please execute the script within 10s, because the this device have BSL timeout feature more detail please refer to the user's guide

    3. I saw you have a salease, could you help to capture the signal of RST, TEST, SDA and SCL and put it here

  •  Gary, in regards to your questions...

    1. Check your target board MSP-TS430PT48A SW3 and SW4 be closed and SW5 is open. 

    Yes, that is the switch configuration that I am using.

    2. Please execute the script within 10s, because the this device have BSL timeout feature more detail please refer to the user's guide

    In 10 seconds of what?  POR?  Or, are you saying that the script should complete within 10 seconds?  I tried running the script immediately after powering the target with the same results.

    3. I saw you have a salease, could you help to capture the signal of RST, TEST, SDA and SCL and put it here

    Here is a screen capture of the trace including digital and analog captures.  As you can see, the RST/TEST lines do not toggle at all.

    Here is the script that I'm running:

    //
    //Script example FRxx I2C BSL
    //
    //Device tested: MSP430FR69891
    //Comm Bridge used: MSP-BSL Rocket
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 /dev/tty.usbmodem4401
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    RX_PASSWORD pass32_default.txt
    RX_DATA_BLOCK BSL_keypad_55.txt
    CRC_CHECK 0x8000 0x0020
    SET_PC 0x8000

    Here is the script output:

    $ ./bsl-scripter-mac bsl_script_i2c.txt
    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Jul-19 09:51:59
    ---------------------------------------------------------
    Input file script is : /Users/pcpro178/Desktop/scripter_test/bsl_script_i2c.txt

    //
    //Script example FRxx I2C BSL
    //
    //Device tested: MSP430FR69891
    //Comm Bridge used: MSP-BSL Rocket
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 /dev/tty.usbmodem4401
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    Read Txt File : /Users/pcpro178/Desktop/scripter_test/pass32_wrong.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    Delay 2000 ms
    RX_PASSWORD pass32_default.txt
    Read Txt File : /Users/pcpro178/Desktop/scripter_test/pass32_default.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    RX_DATA_BLOCK BSL_keypad_55.txt
    Read Txt File : /Users/pcpro178/Desktop/scripter_test/BSL_keypad_55.txt

    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    Time elapsed of writing 6080 bytes : 4.021 seconds
    Speed of writing data :1.477(kB/s)
    CRC_CHECK 0x8000 0x0020
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    SET_PC 0x8000

    Also, I have noticed that when I connect my MSP-FET, there are two serial ports that appear.  Does it matter which I use?

  • Hi 

    In 10 seconds of what

    As you can see, the RST/TEST lines do not toggle at all.

    I think that is the problem, you have not trigger the BSL, please check if you have correct connection as below

  •   Using the reset button on the dev board (SW2) I was able to observe some state changes on the RST and TEST lines, however scripter still failed the same as usual.  Scripter was run in about 1 second from releasing the reset button.

    $ ./bsl-scripter-mac bsl_script_i2c.txt

    ---------------------------------------------------------

    BSL Scripter 3.4.0.1



    PC software for BSL programming

    2021-Jul-20 09:36:27

    ---------------------------------------------------------

    Input file script is : /Users/pcpro178/Desktop/scripter_test/bsl_script_i2c.txt



    //

    //Script example FRxx I2C BSL

    //

    //Device tested: MSP430FR69891

    //Comm Bridge used: MSP-BSL Rocket

    //

    //Download blink application through

    //I2C BSL in FRAM device

    //

    LOG

    MODE FRxx I2C 400000 /dev/tty.usbmodem44401

    //gives wrong password to do mass erase

    RX_PASSWORD pass32_wrong.txt

    Read Txt File  : /Users/pcpro178/Desktop/scripter_test/pass32_wrong.txt

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    //

    //add delay after giving wrong password

    //because the device does not give

    //any response after wrong password applied

    //

    DELAY 2000

    Delay 2000 ms

    RX_PASSWORD pass32_default.txt

    Read Txt File  : /Users/pcpro178/Desktop/scripter_test/pass32_default.txt

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    RX_DATA_BLOCK BSL_keypad_55.txt

    Read Txt File  : /Users/pcpro178/Desktop/scripter_test/BSL_keypad_55.txt




    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!




    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!




    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!




    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!




    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!




    [ACK_ERROR_MESSAGE]Unknown ACK value!

    Time elapsed of writing 6080 bytes : 0.01185 seconds

    Speed of writing data :501.1(kB/s)

    CRC_CHECK 0x8000 0x0020

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    SET_PC 0x8000

    Disconnecting the MSP-FET from USB entirely and reconnecting resulted in something a little different.  Scripter was run within 5 seconds.

    $ ./bsl-scripter-mac bsl_script_i2c.txt

    ---------------------------------------------------------

    BSL Scripter 3.4.0.1

    PC software for BSL programming

    2021-Jul-20 09:44:23

    ---------------------------------------------------------

    Input file script is : /Users/pcpro178/Desktop/scripter_test/bsl_script_i2c.txt

    //

    //Script example FRxx I2C BSL

    //

    //Device tested: MSP430FR69891

    //Comm Bridge used: MSP-BSL Rocket

    //

    //Download blink application through

    //I2C BSL in FRAM device

    //

    LOG

    MODE FRxx I2C 400000 /dev/tty.usbmodem44401

    //gives wrong password to do mass erase

    RX_PASSWORD pass32_wrong.txt

    Read Txt File  : /Users/pcpro178/Desktop/scripter_test/pass32_wrong.txt

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    //

    //add delay after giving wrong password

    //because the device does not give

    //any response after wrong password applied

    //

    DELAY 2000

    Delay 2000 ms

    RX_PASSWORD pass32_default.txt

    Read Txt File  : /Users/pcpro178/Desktop/scripter_test/pass32_default.txt

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    RX_DATA_BLOCK BSL_keypad_55.txt

    Read Txt File  : /Users/pcpro178/Desktop/scripter_test/BSL_keypad_55.txt

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    Time elapsed of writing 6080 bytes : 9.038 seconds

    Speed of writing data :0.657(kB/s)

    CRC_CHECK 0x8000 0x0020

    [ACK_ERROR_MESSAGE]Unknown ACK value!

    SET_PC 0x8000

  • When the MSP-FET is connected to my PC (macOS Catalina) two serial ports are added: /dev/tty.usbmodem44401 and /dev/tty.usbmodem44403.  Is there a preference of one vs. the other that I should be using to engage the MSP430 ROM BSL in I2C mode?

    I noticed that there is data coming out of the UART RX line of the MSP-FET that coincides with the "[ACK_ERROR_MESSAGE]Unknown ACK value!" messages displayed on my terminal.

    What could be causing the bsl-scripter tool or MSP-FET to try to drive the ROM BSL in UART mode, rather than I2C?  Here's the command I'm using and the script is attached.

    $ ./bsl-scripter-mac bsl_script_i2c.txt

    bsl_script_i2c.txt
    //
    //Script example FRxx I2C BSL
    //
    //Device: MSP430FR2675
    //Comm Bridge used: MSP-FET
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 /dev/tty.usbmodem44403
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    RX_PASSWORD pass32_default.txt
    RX_DATA_BLOCK BSL_keypad_55.txt
    CRC_CHECK 0x8000 0x0020
    SET_PC 0x8000
    

  • Hi 

    How do you check the serial ports name on MAC? Use the command line "Instruments -s devices" ? The device names seems not similar with windows, you can try to install the driver for MAC OS here

    MSP430_FET_Drivers 1_0_1_1 - TI.com 

  •  

    I was unable to get the "instruments -d devices" command to work, even after installing Xcode.  Installing the suggested FET drivers did not seem to help.  Since I work from home, I've been able to install the BSL-Scripter and FET drivers on my personal Windows computer.  After doing so, I was able to get further.  I can see the RST, TEST and I2C lines toggle now, but it's still failing with the following output.

    C:\Users\pcpro178\Desktop\scripter_test>BSL-Scripter.exe bsl_script_i2c.txt
    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Jul-21 15:44:19
    ---------------------------------------------------------
    Input file script is : C:/Users/pcpro178/Desktop/scripter_test/bsl_script_i2c.txt

    //
    //Script example FRxx I2C BSL
    //
    //Device: MSP430FR2675
    //Comm Bridge used: MSP-FET
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 COM3
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    Read Txt File : C:\Users\pcpro178\Desktop\scripter_test\pass32_wrong.txt

    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    Delay 2000 ms
    RX_PASSWORD pass32_default.txt
    Read Txt File : C:\Users\pcpro178\Desktop\scripter_test\pass32_default.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    RX_DATA_BLOCK BSL_keypad_55.txt
    Read Txt File : C:\Users\pcpro178\Desktop\scripter_test\BSL_keypad_55.txt
    File is not available/accessed by other program...

    C:\Users\pcpro178\Desktop\scripter_test>

    Saleae Logic is running on my work laptop, so I'll post the screen capture from there in the next message.

  • I forgot to mention that when I connected the MSP-FET to my Windows machine two COM ports appeared in the device manager: MSP Application Port UART1 (COM3) and MSP Debug Interface (COM4).  Using COM4 yielded no progress.  Using COM3 is what produced the following screen capture.

    First SDA blip from first screen capture expanded:

    Second SDA blip from first screen capture expanded:

    This capture file is attached.  (Remove ".txt" extension.)

    BSL MSP430 ROM BSL Attempt 20210721.sal.txt

  • Hi 

    I have test with MSP430FR2475 and works well

    Here is the hardware connection below

    Then open the folder C:\ti\BSL-Scripter\ScriptExampleWindows\FRxx_i2c as below make

    edit the file script_FRxx_i2c.txt as below

    script_FRxx_i2c.txt
    //
    //Script example FRxx I2C BSL
    //
    //Device tested: MSP430FR69891
    //Comm Bridge used: MSP-BSL Rocket
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 COM19
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    RX_PASSWORD pass32_default.txt
    RX_DATA_BLOCK Lab_test.txt
    //CRC_CHECK 0x4400 0x0020
    //SET_PC 0x4400

    And this

  • Here is the Salease capture 

    FR2475_I2C_MSP_FET.sal

  •  

    Thanks for the information, but it is still not working.  No information was provided on the BSL header pins that you are using, but I was able to confirm that only the pins you have connected on my BSL header are connected.  Here are a couple truth tables showing how I have the BSL wired to the MSP-FET:

    MSP-FET Pins

    2 -- VCC_TOOL -- Red
    8 -- TEST -- Blue
    9 -- GND -- Black
    10 -- I2C_SCL -- Yellow
    11 -- RST -- Black
    12 -- I2C_SDA -- Green

    BSL Connector Pins

    1 -- BSL_SDA -- Green
    4 -- RST -- Black
    5 -- GND -- Black
    7 -- TEST -- Blue
    9 -- BSL_SCL -- Yellow

    The wires attached to the MSP header pins go to my Saleae.

    The only significant difference between the script that you provided and the script that I've been using is the address used in the final two lines of the script.  According to the datasheet and user guide for the MSP430FR2475, the address 0x4400 does not appear to be mapped.  However, I went ahead and updated my script from the NV memory start address of 0x8000 to the undefined 0x4400.  No joy.

    Here is my latest script and its output:

    8637.bsl_script_i2c.txt
    //
    //Script example FRxx I2C BSL
    //
    //Device: MSP430FR2675
    //Comm Bridge used: MSP-FET
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 COM3
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    RX_PASSWORD pass32_default.txt
    RX_DATA_BLOCK BSL_keypad_55.txt
    CRC_CHECK 0x4400 0x0020
    SET_PC 0x4400
    

    C:\Users\pcpro178\Desktop\scripter_test>BSL-Scripter.exe bsl_script_i2c.txt
    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Jul-22 11:51:55
    ---------------------------------------------------------
    Input file script is : C:/Users/pcpro178/Desktop/scripter_test/bsl_script_i2c.txt

    //
    //Script example FRxx I2C BSL
    //
    //Device: MSP430FR2675
    //Comm Bridge used: MSP-FET
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 COM3
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    Read Txt File : C:\Users\pcpro178\Desktop\scripter_test\pass32_wrong.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    Delay 2000 ms
    RX_PASSWORD pass32_default.txt
    Read Txt File : C:\Users\pcpro178\Desktop\scripter_test\pass32_default.txt
    [ACK_ERROR_MESSAGE]Unknown ACK value!
    RX_DATA_BLOCK BSL_keypad_55.txt
    Read Txt File : C:\Users\pcpro178\Desktop\scripter_test\BSL_keypad_55.txt
    File is not available/accessed by other program...

    C:\Users\pcpro178\Desktop\scripter_test>

    I made sure that all other programs that could be accessing the script file were closed, including Notepad++ and Chrome.

    Even though I have asked several times, I still have yet to receive an answer about which COM port I should be using.  Does it not matter, or is there a preferred port for BSL usage?  These two MSP COM ports (3 & 4) appear when I connect the MSP-FET to my Windows computer:

    Information with my Saleae Logic capture will be posted in my next message from the other computer. 

  • It seems the I2C interface is not working. Could you help to try the URAT interface?

    Or change another msp430 device to do the test?

    I don't know if you have two msp430 launchpad or target board on your side? You can also try to test the I2C interface by our demo code directly. The demo code you can get from here

    https://dev.ti.com/tirex/explore/node?node=AH5uc9mE1YzHgUjcsdIepg__IOGqZri__LATEST   

    One more comments here the SET_PC command is not set the start address of the flash memory in the device it is the start address of the application code you can get the value at address 0xFFFE.

  • Unfortunately, I only have the one MSP-FET and MSP-TS430PT48A.  The MSP-EXP430FR6989 in my possession does not appear to support I2C BSL.  UART BSL in my case is not an option; we need to get the I2C ROM BSL working.  My understanding is that the I2C ROM BSL does not require any software on the MSP430.  However, I have already confirmed that the interface works using code from the CapTIvate demo.

    I did try changing the MSP430 socketed in the dev board.  The result improved, but it is still not successful.  I confirmed that the device was not programmed using Uniflash.

    C:\Users\Jim\Desktop\scripter_test>BSL-Scripter.exe bsl_script_i2c.txt
    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Jul-23 07:54:04
    ---------------------------------------------------------
    Input file script is : C:/Users/Jim/Desktop/scripter_test/bsl_script_i2c.txt

    //
    //Script example FRxx I2C BSL
    //
    //Device: MSP430FR2675
    //Comm Bridge used: MSP-FET
    //
    //Download blink application through
    //I2C BSL in FRAM device
    //
    LOG
    MODE FRxx I2C 400000 COM3
    //gives wrong password to do mass erase
    RX_PASSWORD pass32_wrong.txt
    Read Txt File : C:\Users\Jim\Desktop\scripter_test\pass32_wrong.txt
    [ERROR_MESSAGE]BSL Password is error!
    //
    //add delay after giving wrong password
    //because the device does not give
    //any response after wrong password applied
    //
    DELAY 2000
    Delay 2000 ms
    RX_PASSWORD pass32_default.txt
    Read Txt File : C:\Users\Jim\Desktop\scripter_test\pass32_default.txt
    BSL Password is correct!
    RX_DATA_BLOCK BSL_keypad_55.txt
    Read Txt File : C:\Users\Jim\Desktop\scripter_test\BSL_keypad_55.txt
    File is not available/accessed by other program...

    C:\Users\Jim\Desktop\scripter_test>

    Saleae Logic captures will be attached in the next ticket from my other computer.

  • Here are the captures from Saleae Logic.  The first capture is is the first three (attempted) transactions over the I2C with analog signals included.  The second and third screen captures appear to show suspect/failed stop conditions on the I2C bus.  The final screen capture shows a completed transaction (of pass32_wrong) with a good stop condition.

  • Gary, I looked at this on a webex, and I think there's something marginal with timing on the I2C.  The rise times are slow from the MSP430 even though the 4.7kOhm is being used as a pull up on the MSP430 Target board.  You can see that the ACKs are generally working, but the timing is very close on the stop condition.  It looks like the stops are being missed sometimes.

    Darren

  • Hi

    UART BSL in my case is not an option

    I know that is not your using case, that just a test and just to confirm that BSL in the device can work.

    I have already confirmed that the interface works using code from the CapTIvate demo.

    That's is good, that means we can narrow the debug area to software level.

    The rise times are slow from the MSP430 even though the 4.7kOhm is being used as a pull up on the MSP430 Target board

    That maybe a hint and you can also try to slow down the clock frequency to about 40kHz not 400kHz.

  • Unfortunately, it is still not working.  I've tried the UART BSL and I2C BSL, both with shorter (3") jumper wires this morning, and it's still failing with many "Unknown ACK value" error messages.  I'm expecting the Olimex BSL tool to arrive today.  I'll retest with that when it shows up.

  • Hi 

    Could you help to capture the signals of RST, TEST, TX and RX when you use UART interface by your Salease?

  •  

    The requested Saleae Logic capture is attached.  There appears to be a lot of framing errors on the bus.

    BSL MSP430 ROM UART BSL 20210726a.sal.zip

  • Hi 

    I saw there is no ack signal from MSP430, are you sure you have connected correct TX and RX pins between MSP-FET and MSP430 devices?

  • My UART TX/RX pins were connected as follows:

    • MSP-FET (pin 12) UART_TXD connected to BSL header (pin 1) BSL_TX.  According to the MSP-TS430PT48A schematic these two pins are electrically connected to MSP430 pin 4.
    • MSP-FET (pin 14) UART_RXT connected to BSL header (pin 3) BSL_RX.  According to the MSP-TS430PT48A schematic these two pins are electrically connected to MSP430 pin 5.

    Here's an interesting clue.  When I disabled parity on the BSL TX line, the framing errors on that line went away.  BSL RX with even parity has not framing errors.

    BSL MSP430 ROM BSL 20210727a BSL TX Parity Mismatch.sal.zip

  • As we discussed offline, the Windows should be no problem. There are some wrong with the MAC system to run BSL scripter. 

**Attention** This is a public forum