This question comes up here fairly frequently - can a cheap USB-to-UART adapter like the CP2102, FT232, or CH340 be used as the hardware interface when flashing with BSL-Scripter. The problem is that Scripter doesn't generate the needed hardware invocation pattern on /Reset and Test, but instead depends on an intelligent interface such as the MSP-FET or the Rocket to do that. But those devices may not be at hand, and in any case are relatively large and expensive, and not suitable for embedding on a project PC board. In another related thread, Aaditya Chaudhary had the idea of writing software for Linux that would generate the needed invoke pattern, after which Scripter could be run to do the flashing, and he put that code in a Github repo:
https://github.com/saint-shark/TI-BSL-invoke-sequence-generator/blob/master/BSL_invoke.c
I've written a similar program for Windows called INVOKE.exe, but in Windows, and I suspect in Linux as well, Scripter begins by bringing the DTR line low, and since DTR is connected to the target device's /Reset pin, that causes the just-invoked BSL session to be cancelled, and locks the device in reset. Not helpful.
TI provides the source code for Scripter, but recompiling it to change the DTR problem is beyond my abilities. I continue to hope that TI will modify Scripter to add an option to directly generate the invoke pattern - as BSLDEMO does automatically for the older MSP430 parts. But while we wait for that day, this can be made to work by disconnecting DTR from /Reset after the new invoke program has initiated the BSL session, but before Scripter runs. After the disconnect, the /Reset pin will be held high by its external 47K pullup resistor, and flashing will take place normally.
The disconnect can be done manually. My batch file for testing this reads:
INVOKE.exe COM4
Pause
BSL-Scripter.exe script.txt
While Pause waits for me to press any key to continue, I unplug the DTR line, then hit a key. Testing was successful in Windows 7/64 with an FR2311. But a somewhat more elegant way to disconnect DTR is to use a circuit made up of four parts which automatically does the disconnect without needing a Pause instruction. Testing was also successful with that setup. I'll post the schematic and a successful test session log below. I've posted the INVOKE.exe source code and the executable, and a PDF explaining everything, to a Github repo:
https://github.com/gbhug5a/CP2102-with-BSL-Scripter-for-MSP430
I hope this will be useful to someone. Don't forget to add the PARITY option to the MODE line in your script.
Session Log:
C:\MSP430>INVOKE.exe COM4
COM port Opened
BSL invoke pattern transmitted
C:\MSP430>BSL-Scripter.exe script.txt
---------------------------------------------------------
BSL Scripter 3.4.0.1
PC software for BSL programming
2018-Oct-05 18:50:43
---------------------------------------------------------
Input file script is : C:/MSP430/script.txt
MODE FRxx UART COM4 PARITY
Baud rate setup for UART is not given / wrong
It will be setup to the default 9600baud
//Use this line on first flash when reset vector = FFFF
//RX_PASSWORD
RX_PASSWORD MosPW.txt
Read Txt File : C:\MSP430\MosPW.txt
BSL Password is correct!
RX_DATA_BLOCK Mostest.hex
Read Txt File : C:\MSP430\Mostest.hex
Time elapsed of writing 62 bytes : 0.115 seconds
Speed of writing data :0.5265(kB/s)
TX_BSL_VERSION
Vendor:[TI] CI:[08] API:[35] PI:[B3]
