Slau 550 Ab
Slau 550 Ab
User’s Guide
MSP430™ FRAM Devices Bootloader (BSL)
ABSTRACT
The bootloader (BSL) on MSP430™ microcontrollers (MCUs) lets users communicate with embedded memory
in the MSP430 MCU during the prototyping phase, final production, and in service. Both the programmable
memory (FRAM memory) and the data memory (RAM) can be modified as required.
Do not confuse the bootloader with programs found in some digital signal processors (DSPs) that automatically
load program code (and data) from external memory to the internal memory of the DSP. These programs are
often referred to as bootloaders as well.
Table of Contents
1 Introduction.............................................................................................................................................................................2
1.1 BSL Limitations.................................................................................................................................................................. 2
1.2 Other Useful Documentation..............................................................................................................................................2
2 Overview of BSL Features..................................................................................................................................................... 3
3 BSL Architecture.....................................................................................................................................................................4
3.1 Communication Interface................................................................................................................................................... 4
3.2 BSL Memory.......................................................................................................................................................................4
3.3 BSL Invocation................................................................................................................................................................... 5
3.4 BSL Time-out Feature........................................................................................................................................................ 7
3.5 BSL Version Number..........................................................................................................................................................7
3.6 BSL (User) Configuration................................................................................................................................................... 8
4 BSL Protocol......................................................................................................................................................................... 11
4.1 BSL Data Packet.............................................................................................................................................................. 11
4.2 BSL Security.................................................................................................................................................................... 27
5 Common BSL Use Cases.....................................................................................................................................................28
5.1 Overview and Flow Chart.................................................................................................................................................28
5.2 Establish a Connection.................................................................................................................................................... 29
5.3 Erase the Device..............................................................................................................................................................29
5.4 Download the Application.................................................................................................................................................29
5.5 Verify the Application........................................................................................................................................................29
5.6 Run the Application.......................................................................................................................................................... 30
6 Customize the BSL............................................................................................................................................................... 30
7 Bootloader Versions.............................................................................................................................................................31
7.1 FR2xx BSL Versions........................................................................................................................................................ 31
7.2 FR4xx BSL Versions........................................................................................................................................................ 32
7.3 FR57xx BSL Versions...................................................................................................................................................... 32
7.4 FR58xx and FR59xx BSL Versions..................................................................................................................................33
7.5 FR6xx BSL Versions........................................................................................................................................................ 34
8 Revision History................................................................................................................................................................... 35
Trademarks
MSP430™ is a trademark of Texas Instruments.
All trademarks are the property of their respective owners.
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 1
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
Introduction www.ti.com
1 Introduction
The MSP430 BSL lets users communicate with embedded memory in the MSP430 microcontroller (MCU) during
the prototyping phase, final production, and in service. Both the programmable memory (FRAM memory) and the
data memory (RAM) can be modified as required. Do not confuse the bootloader with programs found in some
digital signal processors (DSPs) that automatically load program code (and data) from external memory to the
internal memory of the DSP. These programs are often referred to as bootloaders as well.
To start the bootloader, a specific BSL entry sequence must be applied to dedicated pins. The BSL can also
be called by application code that sets the PC pointer to the BSL start address in Z-area. On FR26xx, FR24xx,
and FR23xx MCUs, an empty reset vector (for example, as on a unprogrammed device) also invokes the BSL.
After the BSL has started, a sequence of commands can be sent to the BSL to execute the desired functions
(for example, unlocking the device, programming or reprogramming the memory, or verifying the written data).
The bootloader session can be exited by continuing operation at a defined user program address or by the reset
condition.
Even if the device is secured by disabling JTAG, it is still possible to use the BSL. To avoid accidental overwriting
of the BSL code, the code is stored in a secure ROM memory location. To prevent unwanted memory readout,
any BSL command that directly or indirectly allows data reading or writing is password protected. Using this
method, access to the device memory through the BSL is protected against misuse by the BSL password. The
BSL password is equal to the content of the interrupt vector table on the device. For more information about
password-protected commands, see Section 4.2.
1.1 BSL Limitations
Compared to the BSL on MSP flash-based devices, the BSL on MSP FRAM-based devices bootloader is
programmed in the read-only memory (ROM). See MSP430FRBoot – Main Memory Bootloader and Over-the-Air
Updates for MSP430 FRAM for information on how to customize a bootloader in FR5xx and FR6xx devices.
UART and I2C communication protocols are available. For FR4xx, FR21xx, and FR20xx devices, only UART is
available at a rate of 9600 baud.
1.2 Other Useful Documentation
Data sheets
The device-specific data sheets include information on the pins used for BSL communication and the supported
protocols. To find the data sheet for each device, visit the MSP430 ultra-low-power MCUs products page.
Family user's guides
MSP430FR58xx, MSP430FR59xx, and MSP430FR6xx Family User's Guide
MSP430FR57xx Family User's Guide
MSP430FR4xx and MSP430FR2xx Family User's Guide
Tools
MSP BSL tool folder
Training videos
MSP BSL overview
MSP BSL options
MSP crypto bootloader training series
2 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com Overview of BSL Features
User configuration ✔
UART ✔ ✔ ✔ ✔ ✔ ✔ ✔
I2C ✔ ✔ ✔ ✔ ✔
SPI
USB ✔
'1xx, 2xx, 4xx' protocol ✔
Protocol
Sequence on TEST/RST ✔ ✔ ✔ ✔ ✔ ✔ ✔
Invoke mechanism
Entry sequence
PUR pin tied to VUSB ✔
on I/Os
Sequence on defined I/O ✔
Empty reset vector invokes BSL ✔ ✔ ✔ ✔
Calling BSL from software application ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
Invalid or incomplete application ✔
MSP-BSL 'Rocket' ✔ ✔ ✔ ✔ ✔ ✔ ✔
MSP-FET ✔ ✔ ✔ ✔ ✔ ✔
Hardware
✔
Tools Support
USB cable
USB-to-Serial Converter(3) ✔
BSL Scripter ✔ ✔ ✔ ✔ ✔ ✔ ✔
BSLDEMO ✔
Software(4)
UART UART
MSPBSL library ✔ ✔ ✔
only only
Password protection 32 byte 32 byte(5) 32 byte 32 byte 32 byte 32 byte 32 byte
Mass erase on incorrect password(6) ✔ ✔ ✔ ✔ ✔ ✔ ✔
Completely disable the BSL using signature
✔ ✔ ✔ ✔ ✔ ✔ ✔
or erasing the BSL
Security
(1) Refer to the device-specific data sheet for the available TI BSL protocol on these devices. TI provides a specific BSL protocol for each
flash device.
(2) BSL in flash memory allows to replace the BSL with a custom version.
(3) The USB-to-Serial Converter is compatible with BSLDEMO. The invocation signal is generated on the DTR pin for the RESET pin, and
on the RTS pin for the TEST pin.
(4) All BSL software collateral (application, examples, source code, and firmware images) is available in the BSL tool folder.
The MSP430 USB developers package includes additional USB BSL sample applications.
(5) F543x (non A) has a 16-byte password.
(6) Some devices can disable mass erase on incorrect password. See the device family user's guide.
(7) Firmware validation through CRC.
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 3
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Architecture www.ti.com
3 BSL Architecture
3.1 Communication Interface
As Section 2 shows, the communication protocols available for the BSL in FRAM devices are UART and I2C.
Information regarding the available communication protocol and the hardware pins used for the BSL is available
in the Bootloader (BSL) section of each device-specific data sheet.
3.1.1 UART BSL
UART protocol used by BSL is defined as:
• Baud rate is configured to start at 9600 baud. The FR4xx, FR21xx, and FR20xx devices work at 9600 baud
only, while other devices can change the baud rate to a higher speed after initialization.
• UART data configuration: Start bit, 8 data bits (LSB first), an even parity, and 1 stop bit
• Works in half-duplex mode (one sender at a time)
• Handshake is performed by an acknowledge character
• The minimum time delay before sending new character after characters have been received from the
MSP430 BSL is 1.2 ms.
Note
Applying a baud rate other than 9600 baud at initialization can result in communication problems.
4 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Architecture
When invoking the BSL from a main application, any RAM contents can be lost. The range of RAM that is
cleared is listed in the tables in Section 7.
3.3 BSL Invocation
The following methods can be used to invoke the BSL application on the MSP430 FRAM devices:
• The BSL can be called by application software (see Section 3.3.1)
• The BSL can be called by the device boot code by applying a hardware entry sequence on the TEST and
RST pins on the device (see Section 3.3.2)
• The BSL can be invoked at start up if the device is blank (see Section 3.3.3). This is applicable only for
FR26xx, FR25xx, FR24xx, and FR23xx devices
3.3.1 Software BSL Invocation
The BSL Z-Area is a small section of memory that can be read and invoked from application code. It is located at
memory addresses 0x1000 to 0x100F.
3.3.1.1 Starting the BSL From an External Software Application
Memory location 0x1000 contains a jump instruction pointing to the BSL start and can be used to invoke the
BSL from a running application by setting the program counter to 0x1000. The stack is always reset, and RAM
is cleared. Interrupts are not disabled by the BSL and should be disabled by the application before invoking the
BSL.
TI recommends clearing the configuration of any module registers that are used in the BSL application, because
the configuration for the external application can interrupt the BSL application and cause unexpected behavior.
One example is that in the FR23xx and FR26xx MCUs, the Timer_B module executes the time-out calculation
of the BSL. If Timer_B is also used in the external application and is not cleared before jumping to the BSL
application, it could cause unexpected behavior.
The location 0x1000 can be called as a C function, as in the following example code:
__disable_interrupt(); // disable interrupts
((void (*)())0x1000)(); // jump to BSL
Note
The BSL on FR5xx and FR6xx devices must be executed with a maximum frequency of 8 MHz. If
the device operates at frequencies higher than 8 MHz, the MCLK frequency must be set to 8 MHz or
lower before calling the BSL.
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 5
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Architecture www.ti.com
RETURN_TO_BSL
POP.W RET_low ; remove first word from return addr
POP.W RET_high ; remove second word from return addr
RETA ; should now return to the BSL location
RST/NMI (DTR)
TEST (RTS)
The BSL program execution starts when the TEST pin has received a minimum of two rising edges (low-to-high
transitions) and if TEST is high while RST/NMI rises from low to high (BSL entry method, see Figure 3-2). This
level transition triggering improves BSL startup reliability. The first high level of the TEST pin must be at least
tSBW, En (see the device-specific data sheet for tSBW, En parameter).
RST/NMI (DTR)
TEST (RTS)
tSBW,en
Bootloader Starts
A. The recommended minimum time for pin states is 250 ns.
The TEST signal is typically used to switch the port pins between their application function and the JTAG
function. In devices with BSL functionality, the TEST and RST/NMI pins are also used to invoke the BSL. To
invoke the BSL, the RST/NMI pin must be configured as RST and must be kept low while pulling the TEST pin
high and while applying the next two edges (falling and rising) on the TEST pin. The BSL is started after the
TEST pin is held low after the RST/NMI pin is released (see Figure 3-2).
6 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Architecture
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 7
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Architecture www.ti.com
00 07 34 B2
TI BSL Command Interpreter FRAM-based API Combined eUSCI-based
Version 7 Version 4 I2C and UART
Version 2
8 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Architecture
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 9
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Architecture www.ti.com
10 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
4 BSL Protocol
4.1 BSL Data Packet
The BSL data packet has a layered structure. The BSL core command contains the actual command data to
be processed by the BSL. In addition the standard BSL commands, there can be wrapper data before and after
each core command known as the peripheral interface code (PI Code). This wrapper data is information that is
specific to the peripheral and protocol being used, and it contains information that allows for correct transmission
of the BSL core command. Taken together, the wrapper and core command constitute a BSL data packet (see
Table 4-1). See Section 4.1.5 for details of the BSL Core Commands.
Table 4-1. BSL Data Packet
PI Code BSL Core Command PI Code
The PI Code depends on the protocol in use, either UART or I2C. The following sections describe the UART and
I2C peripheral interface wrappers.
4.1.1 UART Peripheral Interface Wrapper
The UART BSL protocol interface is implemented in multiple packets. The first packet is transmitted to the BSL
device and contains the BSL Core Command and its wrapper. Table 4-2 summarizes the packet format.
Table 4-2. UART BSL Command
Header Length Length BSL Core Command CKL CKH
0x80 NL NH See Section 4.1.5 CKL CKH
The second packet is received from the BSL device and contains the BSL acknowledgment and the BSL Core
Response. Table 4-3 lists the BSL response data packet structure.
Table 4-3. UART BSL Response
Acknowledgment Header Length Length BSL Core Response(1) CKL CKH
ACK from BSL 0x80 NL NH See Section 4.1.4 CKL CKH
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 11
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
The second packet is sent as a read request to the BSL slave address and contains the BSL acknowledgment
and the BSL Core Response. Table 4-5 shows the format of this BSL response.
Table 4-5. I2C BSL Response
I2C ACK Header Length Length BSL Core Response(1) CKL CKH I2C
ACK from
S/A/R 0x80 NL NH See Section 4.1.4 CKL CKH STOP
BSL
12 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 13
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
AL, AM, AH
Address bytes. The low, middle, and upper bytes, respectively, of an address.
D1...Dn
Data bytes 1 through n (Note: n must be 4 less than the BSL buffer size.)
Length
A byte containing a value from 1 to 255 describing the number of bytes to be transmitted or used in a CRC. In
the case of multiple length bytes, they are combined together as described to form a larger value describing the
number of required bytes.
14 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
The BSL core writes bytes D1 through Dn starting from the location specified in the address fields. This
command differs from RX Data Block Fast in that it returns the status of the write operation.
Note
When a block is written partly outside the device's memory (for example, starting to write in FRAM but
exceeding the end of the memory) the whole data block will not be written.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x10
Command Address
Address where the received data should be written.
Command Data
Command consists of the data D1 through Dn to be written. The command consists of n bytes, where n has
maximum 256.
Command Returns
BSL acknowledgment and a BSL core response with the status of the operation. See Section 4.1.4 for more
information on BSL core responses.
Example for UART PI
Write data 0x76543210 to address 0x010000:
Header Length Length CMD AL AM AH D1 D2 D3 D4 CKL CKH
0x80 0x08 0x00 0x10 0x00 0x00 0x01 0x10 0x32 0x54 0x76 0x93 0xCA
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 15
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
4.1.5.2 RX Password
Structure BSL Core Command
BSL Core
BSL Command Protected CMD AL AM AH Data
Response
Device
RX Password No 0x11 – – – D1…D32
dependent
Description
The BSL core receives the password contained in the packet and unlocks the BSL protected commands if the
password matches the top 16 words in the BSL interrupt vector table (located between addresses 0xFFE0 and
0xFFFF).
When an incorrect password is given, a mass erase is initiated. For MSP430FR5xx and MSP430FR6xx devices,
this means all code FRAM is erased but not information memory. For MSP430FR2xx and MSP430FR4xx
devices, this means all code FRAM including the information memory is erased.
After a mass erase is performed, the password is always 0xFF for all bytes. This is commonly used to gain
access to an empty device or to load a new application to a locked device without password. The mass erase
security feature can be disabled by setting the BSL signatures as described in the corresponding family user's
guide (see Section 1.2).
Protection
This command is not password protected.
Command
0x11
Command Address
N/A
Command Data
The command data is 32 bytes long and contains the device password.
Command Returns
The MSP430FR5xx and MSP430FR6xx bootloader does not send the BSL core response for the incorrect
password. Ignore any acknowledgment from the device and initialize the communication with BSL again.
The MSP430FR2xx and MSP430FR4xx bootloader sends the BSL acknowledgment and BSL core response
with the status of operation. See Section 4.1.4 for more information on BSL core responses.
Example for UART PI
Unlock a blank device:
Header Length Length CMD D1 D2 D3 D4 D5 D6
0x80 0x21 0x00 0x11 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
D17 D18 D19 D20 D21 D22 D23 D24 D25 D26
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
16 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
D16 D17 D18 D19 D20 D21 D22 D23 D24 D25
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 17
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
All code FRAM in the device is erased. For MSP430FR5xx and MSP430FR6xx devices, this function does
not erase information memory. For MSP430FR23xx, MSP430FR25xx , MSP430FR24xx, and MSP430FR26xx
devices, this function erases information memory.
The BSL on the FR4xx, FR21xx, and FR20xx MCUs does not support the Mass Erase command. A RX
Password command containing an incorrect password can be sent instead to trigger a mass erase.
Protection
This command is not password protected.
Command
0x15
Command Address
N/A
Command Data
N/A
Command Returns
The MSP430FR5xx and MSP430FR6xx bootloader do not send the BSL core response for the mass erase
execution. The BSL acknowledgment is either 0x00 or 0xFF. Ignore the acknowledgment and initialize the
communication with BSL again.
The MSP430FR2xx and MSP430FR4xx bootloader send the BSL acknowledgment and BSL core response with
the status of operation. See Section 4.1.4 for more information on BSL core responses.
Example for UART PI
Initiate a mass erase:
Header Length Length CMD CKL CKH
0x80 0x01 0x00 0x15 0x64 0xA3
18 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 19
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
The MSP430 performs a 16-bit CRC check using the CCITT standard. The address given is the first byte of the
CRC check. Two bytes are used for the length. See the CRC chapter of each Family User's Guide (see Section
1.2) for more details on the CRC hardware calculation that is used.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x16
Command Address
Address to begin the CRC check.
Command Data
The 16-bit length of the CRC check. D1 is the low byte of the length, and D2 is the high byte of the length.
Command Returns
BSL acknowledgment and a BSL core response with the CRC value. See Section 4.1.4 for more information on
BSL core responses.
Example for UART PI
Perform a CRC check from address 0x4400 to 0x4800 (size of 1024):
Header Length Length CMD AL AM AH D1 D2 CKL CKH
0x80 0x06 0x00 0x16 0x00 0x44 0x00 0x00 0x04 0x9C 0x7D
BSL response where 0x55 is the low byte of the calculated checksum and 0xAA is the high byte of the calculated
checksum:
ACK Header Length Length CMD D1 D2 CKL CKH
0x00 0x80 0x03 0x00 0x3A 0x55 0xAA 0x12 0x2B
BSL response where 0x55 is the low byte of the calculated checksum and 0xAA is the high byte of the calculated
checksum:
I2C ACK Header Length Length CMD D1 D2 CKL CKH I2C
S/A/R 0x00 0x80 0x03 0x00 0x3A 0x55 0xAA 0x12 0x2B STOP
20 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
4.1.5.5 Load PC
Structure BSL Core Command
BSL Core
BSL Command Protected CMD AL AM AH Data
Response
Load PC Yes 0x17 (AL) (AM) (AH) – No
Description
Causes the BSL to begin execution at the given address using a CALLA instruction. As BSL code is immediately
exited with this instruction, no core response can be expected. The BSL can be returned to by the main
application using the BSL Action function 2, Return to BSL. See Section 3.3.1.2 for more information.
Be aware that password protection is not active at this time. Jumping to the user application does not reset the
device and, therefore, the register configuration from the BSL application is kept. This might cause unexpected
behavior in the user application. One example is the blink LED application, which does not have any clock
module configuration (so it uses the default 1-MHz clock) and will blink faster, because the clock module is set
by the BSL application to run at 8 MHz.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x17
Command Address
Address to set the Program Counter
Command Data
N/A
Command Returns
The BSL does not return acknowledgment.
Example for UART PI
Set program counter to 0x4400:
Header Length Length CMD AL AM AH CKL CKH
0x80 0x04 0x00 0x17 0x00 0x44 0x00 0x42 0x0F
The BSL does not respond after the application gains control.
Example for I2C PI
Set program counter to 0x4400:
I2C Header Length Length CMD AL AM AH CKL CKH I2C
S/A/R 0x80 0x04 0x00 0x17 0x00 0x44 0x00 0x42 0x0F STOP
The BSL does not respond once the application gains control.
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 21
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
The BSL transmits data starting at the command address and with size command data. This command initiates
multiple packets if the size is greater than or equal to the buffer size.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x18
Command Address
Address to begin transmitting data from.
Command Data
The 16-bit length of the data to transmit. D1 is the low byte of the length, and D2 is the high byte of the length.
Command Returns
BSL acknowledgment and a BSL core response with n data packets where n is:
HAJCPD
J = ceiling l p
>QBBAN OEVA F 1
For example, if 512 bytes are requested with a buffer size of 260, the BSL sends two packets, the first packet
with a length of 259 and the second with a length of 253.
See Section 4.1.4 for more information on BSL core responses.
Example for UART PI
Transmit 4 bytes of data from RAM address 0x1C00:
Header Length Length CMD AL AM AH D1 D2 CKL CKH
0x80 0x06 0x00 0x18 0x00 0x1C 0x00 0x04 0x00 0x87 0x81
22 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
BSL transmits its version information (see Section 3.5 for more details).
Protection
This command is password protected and fails if the password has not been sent.
Command
0x19
Command Address
N/A
Command Data
N/A
Command Returns
BSL acknowledgment and a BSL core response with its version number. The data is transmitted as it appears in
memory with the following data bytes:
Version Byte Data Byte
BSL Vendor D1
Command Interpreter D2
API D3
Peripheral Interface D4
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 23
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
24 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
Description
This command is identical to Section 4.1.5.1, except there is no reply to indicate that the data was correctly
programmed. RX Data Block Fast is used primarily to speed up USB programming on the MSP430F5xx and
MSP430F6xx family of devices.
Note
When a block is written partly outside the device memory (for example, starting to write in FRAM but
exceeding the end of the memory), the whole data block will not be written.
Protection
This command is password protected and fails if the password has not been sent.
Command
0x1B
Command Address
Address to write the received data to.
Command Data
Command consists of the data D1 through Dn to be written. The command consists of n bytes, where n has a
maximum of 256.
Command Returns
BSL acknowledgment
Example for UART PI
Write data 0x76543210 to address 0x010000:
Header Length Length CMD AL AM AH D1 D2 D3 D4 CKL CKH
0x80 0x08 0x00 0x1B 0x00 0x00 0x01 0x10 0x32 0x54 0x76 0x3C 0x1C
BSL Response:
ACK
0x00
BSL Response:
I2C ACK I2C
S/A/R 0x00 STOP
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 25
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
BSL Protocol www.ti.com
Description
This command changes the baud rate for all subsequently received data packets. The command is
acknowledged with either a single ACK or an error byte sent with the old baud rate before changing to the
new one. No subsequent message packets can be expected.
Protection
This command is not password protected.
Command
0x52
Command Address
N/A
Command Data
Single byte, D1, that specifies the new baud rate to use.
D1 Baud Rate
0x02 9600
0x03 19200
0x04 38400
0x05 57600
0x06 115200
Command Returns
BSL acknowledgment
Example for UART PI
Change baud rate to 115200:
Header Length Length CMD D1 CKL CKH
0x80 0x02 0x00 0x52 0x06 0x14 0x15
BSL Response:
ACK
0x00
26 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com BSL Protocol
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 27
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
Common BSL Use Cases www.ti.com
BSL entry
sequence
Connect
Change baud
rate to 115200
(UART only)
RX password
[0xFF, 0xFF, Mass Erase
0xFF… 0xFF]
NO
Success?
YES
Download
NO
TX data block of
programmed BytesRemaining==0?
memory YES
Error
handler Verify YES
NO CRC check of
Memory matches? programmed
memory
YES YES
28 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com Common BSL Use Cases
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 29
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
Common BSL Use Cases www.ti.com
30 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com Bootloader Versions
7 Bootloader Versions
7.1 FR2xx BSL Versions
Table 7-1.
BSL version 00.08.35.B3
MSP430FR2311, MSP430FR2310, MSP430FR2433, MSP430FR2633, MSP430FR2533,
Devices
MSP430FR2632, MSP430FR2532, MSP430FR2522, MSP430FR2422
RAM erased 0x2000 to 0x23FF
Buffer size for core commands 260
Notable information None
Clock configuration Runs at 8 MHz
Peripheral UART eUSCI_A
Peripheral I2C eUSCI_B
Timer module for time-out FR23xx: TIMER_B, FR26xx: TIMER_A
Known bugs None
Table 7-2.
BSL version 00.87.45.74
MSP430FR2111, MSP430FR2110, MSP430FR2100, MSP430FR2000, MSP430FR2033,
Devices
MSP430FR2032
RAM erased 0x2000 to 0x21FF
Buffer size for core commands 260
Notable information None
Clock configuration Runs at 8 MHz
Peripheral UART eUSCI_A
Peripheral I2C N/A
Timer module for time-out N/A
Known bugs None
Table 7-3.
BSL version 00.09.36.B4
Devices MSP430FR2355, MSP430FR2353, MSP430FR2155, MSP430FR2153
RAM erased 0x2000 to 0x21FF
Buffer size for core 260
1. The user overwrite configuration can be placed at 0xFF88. The device has no Tiny RAM and
the clearing function has no effect.
Notable information 2. Initialization of the BSL that is based on the TLV data requires more time than other BSL
versions. Initialization of the TLV-based BSL needs approximately 300 ms from the BSL entry
invocation sequence until the BSL is ready to receive the first command.
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 31
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
Bootloader Versions www.ti.com
Table 7-4.
BSL version 00.09.36.B5
MSP430FR2676, MSP430FR2476, MSP430FR2673, MSP430FR2672, MSP430FR2675,
Devices
MSP430FR2475
RAM erased 0x2000 to 0x21FF
Buffer size for core 260
1. Initialization of the BSL that is based on the TLV data requires more time than other BSL
Notable information versions. Initialization of the TLV-based BSL needs approximately 300 ms from the BSL entry
invocation sequence until the BSL is ready to receive the first command.
32 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com Bootloader Versions
Table 7-8.
BSL version 00.08.35.B3
MSP430FR5994, MSP430FR59941, MSP430FR5992, MSP430FR5964, MSP430FR59641,
Devices
MSP430FR5962
RAM erased 0x1C00 to 0x1FFF
Buffer size for core commands 260
Notable information None
Clock configuration Runs at 8 MHz
Peripheral UART (FR5xxx or FR6xxx) eUSCI_A0
Peripheral I2C (FR5xxx1 or FR6xxx1) eUSCI_B0
Timer module for time-out N/A
Known bugs None
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 33
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
Bootloader Versions www.ti.com
Table 7-10.
BSL version 00.08.35.B3
MSP430FR6047, MSP430FR60471, MSP430FR6045, MSP430FR6037, MSP430FR60371,
Devices
MSP430FR6035, MSP430FR6007, MSP430FR6005
RAM erased 0x1C00 to 0x1FFF
Buffer size for core commands 260
Notable information None
Clock configuration Runs at 8 MHz
Peripheral UART (FR5xxx or FR6xxx) eUSCI_A0
Peripheral I2C (FR5xxx1 or FR6xxx1) eUSCI_B0
Timer module for time-out N/A
Known bugs None
Table 7-11.
BSL version 00.08.35.B3
MSP430FR6043, MSP430FR60431, MSP430FR6041, MSP430FR5043, MSP430FR50431,
Devices
MSP430FR5041
RAM erased 0x3000 to 0x5FFF
Buffer size for core commands 260
Notable information None
Clock configuration Runs at 8 MHz
Peripheral UART (FR5xxx or FR6xxx) eUSCI_A3
Peripheral I2C (FR5xxx1 or FR6xxx1) eUSCI_B0
Timer module for time-out N/A
Known bugs None
34 MSP430™ FRAM Devices Bootloader (BSL) SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
www.ti.com Revision History
8 Revision History
NOTE: Page numbers for previous revisions may differ from page numbers in the current version.
Changes from February 20, 2021 to September 22, 2022 Page
• Removed the MSP432P4xx column from Table 2-1, BSL Overview (these devices are end of life).................. 3
• Removed incorrect comment about Tiny RAM in Table 7-4 .............................................................................31
SLAU550AB – JANUARY 2014 – REVISED SEPTEMBER 2022 MSP430™ FRAM Devices Bootloader (BSL) 35
Submit Document Feedback
Copyright © 2022 Texas Instruments Incorporated
IMPORTANT NOTICE AND DISCLAIMER
TI PROVIDES TECHNICAL AND RELIABILITY DATA (INCLUDING DATA SHEETS), DESIGN RESOURCES (INCLUDING REFERENCE
DESIGNS), APPLICATION OR OTHER DESIGN ADVICE, WEB TOOLS, SAFETY INFORMATION, AND OTHER RESOURCES “AS IS”
AND WITH ALL FAULTS, AND DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION ANY
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD
PARTY INTELLECTUAL PROPERTY RIGHTS.
These resources are intended for skilled developers designing with TI products. You are solely responsible for (1) selecting the appropriate
TI products for your application, (2) designing, validating and testing your application, and (3) ensuring your application meets applicable
standards, and any other safety, security, regulatory or other requirements.
These resources are subject to change without notice. TI grants you permission to use these resources only for development of an
application that uses the TI products described in the resource. Other reproduction and display of these resources is prohibited. No license
is granted to any other TI intellectual property right or to any third party intellectual property right. TI disclaims responsibility for, and you
will fully indemnify TI and its representatives against, any claims, damages, costs, losses, and liabilities arising out of your use of these
resources.
TI’s products are provided subject to TI’s Terms of Sale or other applicable terms available either on ti.com or provided in conjunction with
such TI products. TI’s provision of these resources does not expand or otherwise alter TI’s applicable warranties or warranty disclaimers for
TI products.
TI objects to and rejects any additional or different terms you may have proposed. IMPORTANT NOTICE
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2022, Texas Instruments Incorporated