Part Number: MSP430FR59941
Other Parts Discussed in Thread: MSP-FET,
I'm trying to reprogram an MSP430FR59941 using the BSL over the I2C bus. I am not using any password protection. I can program the same file into the chip with the MSP-FET tool.
Outside of the MSP I am using the msp430-i2cbsl-tool to download the file to the MSP. I use this same tool and commandline to program other MSP43059941 chips, on other platforms.
Inside the MSP, I am lauching the BSL by setting the Program Counter to 0x1000. (The BSL_START address for this chip.) Interrupts are disabled.
I2C traffic is: 0x48 NAK, 0x54 NAK,.............. 0x48 NAK,........... 0x48 NAK,.......... 0x48 NAK,.............................................
The traffic is the result of this attempt:
msp430-i2cbsl-tool -s 0x48 -i /dev/i2c-4 -n -f /media/sda1/msp_fw/modu/hwid_1b
/swid_yy.txt
---------------------------------------------------------------
TI MSP430 I2C Linux BootLoader 01.00.00.00
---------------------------------------------------------------
INFO: Slave address 0x48 specified
INFO: I2C BUS /dev/i2c-4 specified
INFO: Firmware file /media/sda1/msp_fw/modu/hwid_1b/swid_yy.txt specified
INFO: Opening TI-TXT firmware file firmware.txt... done!
INFO: Password file not found, defaulting to 0xFFs.r
INFO: Skipped software invoke.
INFO: Attempting to unlocking device with password... Fail!
INFO: Device could not be unlocked. Resetting password and trying again.
INFO: Skipped software invoke.
INFO: Attempting to unlocking device with password... Fail!
INFO: Device could not be unlocked. Resetting password and trying again.
INFO: Skipped software invoke.
INFO: Attempting to unlocking device with password... Fail!
INFO: Device could not be unlocked. Resetting password and trying again.
INFO: Skipped software invoke.
INFO: Attempting to unlocking device with password... Fail!
INFO: Device could not be unlocked. Resetting password and trying again.
ERROR: When trying to invoke or unlock device (Response code 0x104).
Second attempt w/o the n:
msp430-i2cbsl-tool -s 0x48 -i /dev/i2c-4 -f /someFile.txt
---------------------------------------------------------------
TI MSP430 I2C Linux BootLoader 01.00.00.00
---------------------------------------------------------------
INFO: Slave address 0x48 specified
INFO: I2C BUS /dev/i2c-4 specified
INFO: Firmware file /someFile.txt specified
INFO: Opening TI-TXT firmware file firmware.txt... done!
INFO: Password file not found, defaulting to 0xFFs.
INFO: Invoking BSL (Attempt 1)... FAIL!
INFO: Device NAKed attempt!INFO: Invoking BSL (Attempt 2)... FAIL!
INFO: Device NAKed attempt!INFO: Invoking BSL (Attempt 3)... FAIL!
INFO: Device NAKed attempt!INFO: Invoking BSL (Attempt 4)... FAIL!
INFO: Device NAKed attempt!
ERROR: When trying to invoke or unlock device (Response code 0x108).
The man page:
msp430-i2cbsl-tool ?
---------------------------------------------------------------
TI MSP430 I2C Linux BootLoader 01.00.00.00
---------------------------------------------------------------
------Texas Instruments MSP430 Linux I2C Boot Loader Usage------
MSP430Bootloader <options> -f <firmware> -i <busnumber> -s <msp430slaveAddress>
---Required Arguments---
-f <firmware> TI-TXT file of firmware to program to MSP430
PLUS
-i <bus-path> I2C Bus Path (ie /dev/i2c-2)
-s <msp430slaveAddress> I2C slave address (hex)
---Additional Options---
-p <password> Specifies the BSL unlock password to be used. <password>
should be a ASCII file containing a space delimited
32 byte value of the BSL password.
-c <chunksize> Specifies the maximum chunk size for data program transactions.
-v Perform a post verification on all memory programmed.
-r <address (hex)> <legnth (dec)> Reads length bytes from address.
-y <address (hex)> <legnth (dec)> Calculates CRC16 signature of memory space at address with length.
-n Skip the invoke sequence.
1) When I look at the BSL user's guide: slau550aa.pdf Rev Feb 2021, there is no mention of -n, or 104, or 108. There is mention of "invoke", but it is not clear what is being invoked. I'll suggest it refers the the BSL, but how does something running outside the BSL cause the MSP to do something internally? So again, what is this concept of "invoke"?
2) What is response code 0x104?
3) What is response code 0x108?
4) Ultimatly I am trying to figure out why I am not able to program this chip. The I2C traffic suggest to me the chip is not listening. I can't tell if the chip is actually running the BSL. How do I confirm this?
5) Where can I find a document that explains what this tool and or BSL is actually doing?
Thank you