MSP430™ Flash Devices Bootloader (BSL) : User's Guide
MSP430™ Flash Devices Bootloader (BSL) : User's Guide
MSP430™ Flash Devices Bootloader (BSL) : User's Guide
User’s Guide
MSP430™ Flash Devices Bootloader (BSL)
ABSTRACT
The MSP430™ bootloader (BSL) (formerly known as the bootstrap loader) allows users to communicate with
embedded memory in the MSP430 microcontroller (MCU) during the prototyping phase, final production, and
in service. Both the programmable memory (flash memory) and the data memory (RAM) can be modified
as required. Do not confuse the bootloader with the bootstrap loader 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.
To use the bootloader, a specific BSL entry sequence must be applied. An added sequence of commands
initiates the desired function. A bootloading session can be exited by continuing operation at a defined user
program address or by the reset condition.
If the device is secured by disabling JTAG, it is still possible to use the BSL. Access to the MSP430 MCU
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.
Table of Contents
1 Introduction.............................................................................................................................................................................3
1.1 Supplementary Online Information.....................................................................................................................................3
1.2 Overview of BSL Features................................................................................................................................................. 4
1.3 BSL Invocation................................................................................................................................................................... 5
1.4 UART Protocol................................................................................................................................................................... 7
1.5 USB Protocol......................................................................................................................................................................7
2 Bootloader Protocol – 1xx, 2xx, and 4xx Families.............................................................................................................. 8
2.1 Synchronization Sequence................................................................................................................................................ 8
2.2 Commands.........................................................................................................................................................................8
2.3 Programming Flow............................................................................................................................................................. 8
2.4 Data Frame........................................................................................................................................................................ 9
2.5 Loadable BSL...................................................................................................................................................................14
2.6 Exiting the BSL.................................................................................................................................................................14
2.7 Password Protection........................................................................................................................................................ 14
2.8 Code Protection Fuse...................................................................................................................................................... 15
2.9 BSL Internal Settings and Resources.............................................................................................................................. 15
3 Bootloader Protocol – F5xx and F6xx Families................................................................................................................. 18
3.1 BSL Data Packet..............................................................................................................................................................18
3.2 UART Peripheral Interface (PI)........................................................................................................................................ 18
3.3 I2C Peripheral Interface....................................................................................................................................................19
3.4 USB Peripheral Interface................................................................................................................................................. 21
3.5 BSL Core Command Structure........................................................................................................................................ 21
3.6 BSL Security.................................................................................................................................................................... 23
3.7 BSL Core Responses.......................................................................................................................................................24
3.8 BSL Public Functions and Z-Area.................................................................................................................................... 26
4 Bootloader Hardware............................................................................................................................................................28
4.1 Hardware Description.......................................................................................................................................................28
5 Differences Between Devices and Bootloader Versions.................................................................................................. 32
5.1 1xx, 2xx, and 4xx BSL Versions.......................................................................................................................................32
5.2 Special Consideration for ROM BSL Version 1.10...........................................................................................................39
5.3 1xx, 2xx, and 4xx BSL Known Issues.............................................................................................................................. 40
5.4 Special Note on the MSP430F14x Device Family BSL....................................................................................................40
5.5 F5xx and F6xx Flash-Based BSL Versions......................................................................................................................41
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 1
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Trademarks www.ti.com
List of Figures
Figure 1-1. Standard RESET Sequence......................................................................................................................................5
Figure 1-2. BSL Entry Sequence at Shared JTAG Pins...............................................................................................................5
Figure 1-3. BSL Entry Sequence at Dedicated JTAG Pins.......................................................................................................... 6
Figure 3-1. Basic Protocol - Byte Level ACK............................................................................................................................. 19
Figure 3-2. Byte Level ACK....................................................................................................................................................... 20
Figure 4-1. Bootloader Interface Schematic.............................................................................................................................. 28
Figure 6-1. Universal BSL Interface PCB Layout, Top...............................................................................................................47
Figure 6-2. Universal BSL Interface PCB Layout, Bottom......................................................................................................... 47
Figure 6-3. Universal BSL Interface Component Placement..................................................................................................... 48
Figure 6-4. Universal BSL Interface Component Placement..................................................................................................... 49
Trademarks
MSP430™ and TI E2E™ are trademarks of Texas Instruments.
All trademarks are the property of their respective owners.
2 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Introduction
1 Introduction
The bootloader provides a method to program the flash memory during MSP430 project development and
updates. It can be activated by a utility that sends commands using the UART protocol. The BSL enables the
user to control the activity of the MSP430 MCU and to exchange data using a personal computer or other
device.
To avoid accidental overwriting of the BSL code, this code is stored in a secure memory location, either ROM
or specially protected flash. To prevent unwanted source readout, any BSL command that directly or indirectly
allows data reading is password protected.
To invoke the bootloader, a BSL entry sequence must be applied to dedicated pins. After that, a synchronization
character, followed by the data frame of a specific command, initiates the desired function.
1.1 Supplementary Online Information
As a compliment to this document, visit Bootloader (BSL) for MSP low-power microcontrollers. This page
contains links to additional BSL user's guides, source code, firmware images, and the BSL scripter with
documentation and code examples.
Additional support is provided by the TI E2E™ support forums.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 3
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Introduction www.ti.com
User configuration ✔ ✔
UART ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
I2C ✔ ✔ ✔ ✔ ✔ ✔
SPI ✔
USB ✔
'1xx, 2xx, 4xx' protocol ✔
Protocol
Sequence on TEST/RST ✔ ✔ ✔ ✔ ✔ ✔ ✔
Entry
Invoke mechanism
USB-to-Serial
✔
Converter(4)
BSL Scripter ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
BSLDEMO ✔
Software(5)
UART UART
MSPBSL library ✔ ✔ ✔
only only
Password protection 32 byte 32 byte(6) 32 byte 32 byte 32 byte 32 byte 32 byte 256 byte
Mass erase on incorrect password(7) ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔
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) MSP-FET supports UART and I2C BSL communication only.
(4) 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.
(5) 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.
(6) F543x (non A) has a 16-byte password.
(7) Some devices can disable mass erase on incorrect password. See the device family user's guide.
(8) The decryption of the payload is performed by the device bootcode.
(9) Firmware validation through CRC.
4 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Introduction
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 1-2). This
level transition triggering improves BSL start-up reliability. The first high level of the TEST pin must be at least
tSBW, En (see device-specific data sheet for tSBW, En parameter).
RST/NMI (DTR)
TEST (RTS)
tSBW,en
Bootloader Starts
Note
For the MSP430F522x and MSP430F521x split-rail devices with DVIO supply, the entry sequence
is applied on the RST/NMI and BSLEN pins. For pin information, refer to the device-specific data
sheet. For additional information, refer to the bootloader section in Designing With MSP430F522x and
MSP430F521x Devices.
Note
The recommended minimum time for pin states is 250 ns. See the device-specific errata for any
differences, because some 5xx and 6xx device revisions require specific entry sequences.
The TEST signal is normally 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 1-2).
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 5
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Introduction www.ti.com
1.3.1.1.1 Factors That Prevent BSL Invocation With Shared JTAG Pins
The BSL is not started by the BSL RESET vector if:
• There are fewer than two rising edges at the TEST pin while RST/NMI is low.
• The TEST pin does not stay high after the TEST pin second rising edge when RST/NMI rises from low to
high.
• JTAG has control over the MSP430 MCU resources.
• The supply voltage, VCC, drops below its threshold, and a power-on reset (POR) is executed.
• The RST/NMI pin is configured for NMI functionality (the NMI bit is set).
• If the TCK and TMS pins are left floating, the device can unintentionally enter JTAG mode. To avoid this
issue, apply the recommended external termination. Add a 47-kΩ pullup resistor and a 1-nF pulldown
capacitor on TCK and TMS. Stronger termination might be needed depending on noise in the system.
1.3.1.2 MSP430 Flash Devices With Dedicated JTAG Pins
Devices with dedicated JTAG pins use the TCK pin instead of the TEST pin.
The BSL program execution starts whenever the TCK pin has received a minimum of two falling edges and TCK
is low while RST/NMI rises from low to high (BSL entry method, see Figure 1-3). This level transition triggering
improves BSL start-up reliability.
RST/NMI (DTR)
TCK (RTS)
Bootloader Starts
Note
The recommended minimum time for pin states is 250 ns. See the device-specific errata for any
differences, because some 5xx and 6xx device revisions have specific entry sequence requirements.
1.3.1.2.1 Factors That Prevent BSL Invocation With Dedicated JTAG Pins
The BSL is not started by the BSL RESET vector if:
• There are fewer than two falling edges at the TCK pin while RST/NMI is low.
• TCK is high if RST/NMI rises from low to high.
• JTAG has control over the MSP430 MCU resources.
• The supply voltage, VCC, drops below its threshold, and a power-on reset (POR) is executed.
• The RST/NMI pin is configured for NMI functionality (the NMI bit is set).
1.3.1.3 Devices With USB
Devices with USB are invoked when either of the following two conditions are met while the device is powered
by VBUS:
• The device is powered up by USB and the reset vector is blank.
• The device powers up with the PUR pin tied to VUSB.
6 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Introduction
Note
Applying baud rates other than 9600 baud at initialization results in communication problems or
violates the flash memory write timing specification. The flash memory can be extensively stressed or
can react with unreliable program or erase operations.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 7
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
Note
The synchronization character is not part of the Data Frame described in Section 2.4.
2.2 Commands
Two categories of commands are available: commands that require a password and commands that do not
require a password. The password protection safeguards every command that potentially allows direct or indirect
data access.
2.2.1 Unprotected Commands
• Receive password
• Mass erase (erase entire flash memory, main as well as information memory)
• Transmit BSL version (V1.50 or higher or in loadable BL_150S_14x.txt but not V2.x BSLs)
• Change baud rate (V1.60 or V1.61 or V2.00 or in loadable BL_150S_14x.tx)
2.2.2 Password Protected Commands
• Receive data block to program flash memory, RAM, or peripherals
• Transmit data block
• Erase segment
• Erase check (present in V1.60 or higher or in loadable BL_150S_14x.txt)
• Set Memory Offset (present in V2.12 or higher)
• Load program counter and start user program
• Change baud rate (BSL versions lower than V1.60 and higher than V2.00)
2.3 Programming Flow
The write access (RX data block command) to the flash memory, RAM, or peripheral modules area is executed
online. That means a data byte or word is processed immediately after receipt, and the write cycle is finished
before a following byte or word has completely arrived. Therefore, the entire write time is determined by the baud
rate, and no buffering mechanism is necessary.
Data sections located below the flash memory area address are assumed to be loaded into the RAM or
peripheral module area and, thus, no specific flash control bits are affected.
Note
If control over the UART protocol is lost, either by line faults or by violating the data frame
conventions, the only way to recover is to rerun the BSL entry sequence to initiate another BSL
session.
8 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
2.4.2 Checksum
The 16-bit (2-byte) checksum is calculated over all received or transmitted bytes B1 to Bn in the data frame,
except the checksum bytes themselves, by XORing words (two successive bytes) and inverting the result.
This means that B1 is always the HDR byte and Bn is the last data byte just before the CKL byte.
Formula
CHECKSUM = INV [ (B1 + 256 × B2) XOR (B3 + 256 × B4) XOR … XOR (Bn–1 + 256 × Bn) ]
or
CKL = INV [ B1 XOR B3 XOR … XOR Bn–1 ]
CKH = INV [ B2 XOR B4 XOR … XOR Bn ]
2.4.3 Example Sequence
The following example shows a request to read the memory of the MSP430 MCU from location 0x0F00. All
values shown below are represented in hexadecimal format.
TO BSL: 80
(Synchronization character sent to the BSL)
FROM BSL: 90
(Acknowledge from BSL)
TO BSL: 80 14 04 04 00 0F 0E 00 75 E0
(Send Command to read memory from 0x0F00, length 0x000E)
FROM BSL: 80 00 0E 0E F2 13 40 40 00 00 00 00 00 00 02 01 01 01 C0 A2
(Returned values from BSL)
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 9
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
Note
BSL versions lower than V1.30 support only byte-access operations. Therefore, the peripheral module
addresses at 0100h to 01FFh cannot be accessed correctly, because they are word-oriented. In
version V1.30 and higher, addresses 0000h to 00FFh are accessed in byte mode; all others are
accessed in word mode.
Note
BSL versions V1.40 and higher support online verification inside the MSP430 MCU for addresses
0200h to FFFFh, which reduces programming and verification time by 50%. Online verification means
that the data is immediately verified with the data that is written into the flash without transmitting
it again. In case of an error, the loadable bootloader BL_150S_14x.txt additionally stores the first
incorrectly written location address+3 into the error address buffer in the RAM at address 0200h
(021Eh for F14x devices).
2.4.4.3 RX Password
The receive password command is used to unlock the password-protected commands, which perform reading,
writing, or segment-erasing memory access. It is not password protected.
Neither start address nor block length information is necessary, because the 32-byte password is always located
at addresses FFE0h to FFFFh. Data bytes D1 to D20h hold the password information starting with D1 at address
FFE0h.
The BSL responds with DATA_ACK when the package from the host is received correctly and has valid content
as shown in Table 2-1. The DATA_ACK does not reflect that the password is correct (that is, it matches the
content of FFE0h to FFFFh) or incorrect. If an incorrect password is sent, other commands will respond with
DATA_NAK, because the BSL is still locked.
After the protected commands are unlocked, they remain unlocked until another BSL entry is initiated.
10 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
Note
BSL versions 2.01 and higher support automatic clearing of the LOCKA bit, which protects information
memory.
When entering the BSL by cold start (that is, by applying the BSL hardware entry sequence on the
RST and TST pins), the LOCKA bit is automatically unlocked. A mass erase that is executed during
BSL communication erases all parts of information memory and also main memory.
When entering the BSL by warm start (that is, by jumping to the BSL application from a software
function), the LOCKA bit is not automatically unlocked. A mass erase performed in this state does not
erase the information memory. Therefore, when the BSL is called by software, the user application
must ensure that LOCKA is cleared before initialization of the BSL, so a mass erase command can
erase the information memory.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 11
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
non-erased location address + 1 is stored in the error address buffer at address 0200h (021Eh for F14x
devices).
Note
This command is not a member of the standard command set. It is implemented in BSL version V1.60
and higher or in the loadable bootloader BL_150S_14x.txt.
After receiving the data frame, an acknowledge character DATA_ACK is sent back, and the BSL becomes
prepared for the selected baud rate. TI recommends that the BSL communication program wait approximately
10 ms between baud rate alteration and the next data transmission to give the BSL clock system time to
stabilize.
Note
The highest achievable baud rate depends on various system and environment parameters like supply
voltage, temperature range, and minimum and maximum processor frequency. See the device-specific
data sheet.
Note
This command is implemented on BSL versions V1.60 or higher or available in the loadable
bootloader BL_150S_14x.txt.
12 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
Note
This command is implemented on BSL versions V2.12 and higher.
2.4.4.10 Load PC
The load program counter command directs the program counter (register R0) to any location within the entire
address range. It is password protected.
After receiving the data frame, an acknowledge character (DATA_ACK) is sent back by the BSL. Then the
selected address is moved into the program counter. The program flow continues operation there, and the BSL
session is terminated.
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.
2.4.4.11 TX Data Block
The transmit data block command is used for any read access to the flash memory, RAM, or peripheral module
control registers at 0000h to 01FFh. It is password protected.
The 16-bit block start address is defined in AL (low byte) and AH (high byte). The 16-bit block length is defined in
LL (low byte) and LH (high byte). Because pure data bytes are limited to a maximum of 250, LH is always 0. The
checksum bytes CKL (low byte) and CKH (high byte) immediately follow this information.
Now the BSL responds with the requested data block. After transmitting HDR, dummy CMD, L1 and L2, The
BSL sends data bytes D1 through Dn, followed by the checksum bytes CKL (low byte) and CKH (high byte). No
acknowledge character is necessary.
2.4.4.12 TX BSL Version
The transmit BSL version command gives the user information about chip identification and bootloader software
version. It is not password protected.
The values for AL, AH, LL, and LH can be any data, but must be transmitted to meet the protocol requirements.
The checksum bytes CKL (low byte) and CKH (high byte) follow this information.
After that, the BSL responds with a 16-byte data block. After transmitting HDR, dummy CMD, L1 and L2, the
BSL sends data bytes D1 through D16 (decimal), followed by the checksum bytes CKL (low byte) and CKH (high
byte). No acknowledge character is necessary.
D1, D2 and D11, D12 (decimal) hold the specific information:
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 13
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
14 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
The password itself consists of the 16 interrupt vectors located at addresses FFE0h to FFFFh (256 bits), starting
with the first byte at address FFE0h. After mass erase and with unprogrammed devices, all password bits are
logical high (1).
BSL versions 2.00 and higher have enhanced security features. These features are controlled by the flash
data word located beneath the interrupt vector table addresses (for example, for the MSP430F2131, address
0xFFDE). If this word contains:
• 0x0000: The flash memory is not erased if an incorrect BSL password has been received by the target.
• 0xAA55: The BSL is disabled. This means that the BSL is not started with the default initialization sequence
shown in Section 1.3.1.
• All other values: If an incorrect password is transmitted, the entire flash memory address space is erased
automatically.
Note
The user must take care of password update after modifying the interrupt vectors and initiating
another BSL session. TI strongly recommends initializing unused interrupt vectors to increase data
security.
Note
A warm start does not modify the stack pointer. Additionally, the status register for the BSL is
not cleared, which could cause a warm started BSL to come up in an unlocked state. Warm start
possibility exists only for highly specialized instances where it is absolutely mandatory that a running
application be returned to after a BSL session without resetting the device. In almost all cases, it is
better to start the BSL from user code by calling the cold start vector.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 15
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
16 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 17
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
3.2.2 Abbreviations
CKL, CKH
CRC checksum high and low bytes. The checksum is computed on bytes in BSL core command section
only. The CRC is computed using the MSP430F5xx CRC module specification (see the CRC chapter of the
MSP430F5xx and MSP430F6xx Family User's Guide for implementation details).
NL, NH
Number of bytes in BSL core data packet, broken into high and low bytes.
ACK
Sent by the BSL after the packet is received to acknowledge receiving the data correctly. This does not imply the
BSL core data is a correct command or that it was executed correctly. ACK signifies only that the packet was
formatted as expected and had a correct checksum.
Note
If the PI encounters an error at any stage of receiving the packet, it immediately responds with the
appropriate error message.
3.2.3 Messages
The peripheral interface section of the BSL430 software parses the wrapper section of the BSL data packet. If
there are errors with the data transmission, an error message is sent immediately. An ACK is sent after all data
has been successfully received and does not mean that the command has been correctly executed (or even that
the command was valid) but, rather, that the data packet was formatted correctly and passed on to the BSL core
software for interpretation.
18 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
Sent by master
Sent by slave
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 19
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
Sent by master
Sent by slave
20 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
3.3.5 Wrapper
The wrapper for the BSL data packet integrates the common UART BSL Core Command packet, but adds
Length, Checksum, and Acknowledge to be used within I2C communication (see Table 3-3).
Table 3-3. BSL Core Command Wrapper for I2C
Header Length Length BSL Core Command CKL CKH ACK
(ACK)
0x80 NL NH See Section 3.5 CKL CKH
from BSL
CKL, CKH
CRC checksum high and low bytes. The checksum is computed on bytes in BSL core command section only.
NL, NH
Number of bytes in BSL core data packet, broken into high and low bytes.
ACK
Sent by the BSL after the packet is received to acknowledge receiving the data correctly. This does not imply
that the BSL core data is a correct command or that it was executed correctly. ACK signifies only that the packet
was formatted as expected and had a correct checksum.
3.4 USB Peripheral Interface
3.4.1 Wrapper
The Peripheral Interface for the USB bootloader has the wrapper format shown in Table 3-4. There are no
interface specific commands or replies for the USB BSL. The only variable byte, NL, should describe the number
of bytes contained in the BSL Core Command packet.
Table 3-4. USB Peripheral Interface
Header Length BSL Core Command
0x3F NL See Section 3.5
Note
See Section 5.5 for using the following commands with the BSL in the MSP430F5438 (non-A version).
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 21
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
(1) The TX Buffer Size command is currently not implemented in the BSL on F5xx and F6xx MCUs.
Note
BSLs that are programmed in flash and that communicate by USB contain only a subset of the
commands shown in Table 3-5. These commands can be used to load in a full BSL into RAM for flash
programming. The commands in this subset are RX DATA BLOCK FAST, RX PASSWORD, and LOAD
PC.
The supported features can also be determined by the BSL version number as shown in Section
3.7.3. Examples of how to load a full-featured BSL into RAM are given in the zip file that is associated
with this document (see Section 1.1).
3.5.1 Abbreviations
–
No data required. No delay should be given, and any subsequently required data should be sent as the
immediate next byte.
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.
3.5.2 Command Descriptions
RX Data Block
The BSL core writes bytes D1 through Dn starting from the location specified in the address fields.
RX Data Block Fast
This command is identical to RX Data Block, except there is no reply indicating the data was correctly
programmed. It is used primarily to speed up USB programming.
RX Password
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. This means all code flash is erased,
but not Information Memory.
Erase Segment
The flash segment containing the given address is subjected to an erase.
22 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 23
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
3.7.1 Abbreviations
CMD
A required field used to distinguish between a message from the BSL and a data transmission from the BSL.
MSG
A byte containing a response from the BSL core describing the result of the requested action. This can either be
an error code or an acknowledgment of a successful operation. In cases where the BSL is required to respond
with data (for example, memory, version, CRC, or buffer size), no successful operation reply occurs, and the
BSL core immediately sends the data.
D1, Dx
Data bytes containing the requested data.
DL, DH
Data low and high bytes, respectively, of a requested 16-bit CRC value.
NL, NH
Data bytes describing the length of the buffer size in bytes. To manage sizes above 255, the size is broken up
into a low byte and a high byte.
24 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 25
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
Note
All values in the example sequences are hexadecimal.
__disable_interrupt();
((void (*)())0x1000)();
If a USB stack is operating before the USB BSL is invoked, this USB stack must be disconnected first. The
following example shows the recommended sequence in C:
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.
26 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
One example is that in the USB BSL, the Timer_B module is used in clock initialization. If Timer_B is also used
in the external application, this might cause a failure in BSL initialization.
__disable_interrupt();
USBKEYPID = 0x9628; // Unlock USB configuration registers
USBCNF &= ~PUR_EN; // Set PUR pin to hi-Z, logically disconnect from host
USBPWRCTL &= ~VBOFFIE; // Disable VUSBoff interrupt
USBKEYPID = 0x9600; // Lock USB configuration register
__delay_cycles(500000);
((void (*)())0x1000)(); // Call BSL
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
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 27
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Hardware www.ti.com
4 Bootloader Hardware
This chapter describes simple and low-cost hardware and software solutions to access the bootloader functions
of the MSP430 flash devices through the serial port (RS-232) of a PC.
4.1 Hardware Description
The low-cost hardware presented in this document (see Figure 4-1) consists mainly of a low-dropout voltage
regulator, some inverters, and operational amplifiers. There are also some resistors, capacitors, and diodes.
Table 4-4 lists the required parts.
The functional blocks are described in more detail in the following sections.
TL062D
TL062D
28 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Hardware
The inverters are powered by the operational amplifier IC3A. This amplifier permits adjusting the provided logic
level to the requirements of the connected target application. A voltage applied to pin 8 of the BSL target
connector (VCC_IN) overrides the default 3-V level provided from IC1 and the 100-kΩ series resistor R11. Thus,
the output voltage of the operational amplifier is pulled to the applied voltage VCC_IN.
Depending on the overvoltage protection of the device family selected, the excess voltage is either conducted
to VCC (as in the TI 74HC14) or to GND (as in the TI 74AHC14). If the protection diode conducts to VCC, the
operational amplifier IC3A needs to compensate for the overvoltage. Therefore, TI recommends the 74AHC14
device, which conducts to ground (GND).
To avoid excessive power dissipation and damage of the protection diodes, series resistors (R1, R2, and R3) are
used to limit the input current.
An operational amplifier (IC3B) is used to generate RS-232 levels out of CMOS levels. The level at the positive
input is set to VCC/2 (1.5 V nominal). If the level at the negative input rises above this level, the output is pulled to
the negative supply of the operational amplifier (mark). If the level drops below VCC/2, the output is pulled to the
positive rail (space).
The positive supply of the operational amplifier is the same as the input to the voltage regulator. A separate
capacitor (C5) is used to generate the negative supply voltage. This capacitor is charged by the receiving signal
of the bootloader hardware (pin 3 on SUB-D connector J2).
During an asynchronous serial communication, the combination of stop bit and start bit is used to synchronize
sender and receiver. After the transmission of a data byte, the stop bit forces the transmission line into a defined
state, which is usually a logic 1 or, in RS-232 terms, a mark. This means that the transmission-line voltage is
negative when there is no transmission and the capacitor can be charged. Diodes are used to prevent discharge
of the capacitor during transmission.
In very rare circumstances, the data sent to the bootloader interface might hold too many zeros, so that the
capacitor C5 required for the negative supply is discharged, causing a malfunction of the interface. (A possible
workaround is to send the data in smaller chunks.) However, under normal operating conditions, even data that
contains all zeros does not cause problems.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 29
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader Hardware www.ti.com
(1) Signal TCK must not be connected on devices with the TEST pin.
(2) Pin VCC (3.0 V) is a voltage source that can provide a limited current, depending on the serial port driver capability. If an external power
supply is used, VCC (3.0 V) must not be connected to the target. In this case, the external supply voltage must be connected to pin
VCC_IN. Otherwise, VCC_IN must be unconnected.
30 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader Hardware
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 31
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Comment 1 Load PATCH.TXT to eliminate ROM bug (see Section 5.2 and
Workaround mandatory Section 2.5).
Comment 2
Load BL_150S_14x.txt to get all features of V1.60 plus valid erase
Optional for F148, F149 only: Use loadable BSL
segment command (see Section 2.5).
(>1 KB RAM required)
Comment 3
Load BS_150S_14x.txt to get some features of V1.60 (see Section
Optional for F1x4 to F1x9: Use small loadable BSL
2.5).
(<512B RAM required)
(1) To reach the required mass erase time as specified in the data sheet, the mass erase command must be executed several times.
32 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 33
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
34 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 5-4. BSL Version 1.60 on F11x2, F12x2, F43x, F44x, FE42x, FW42x, F43x, FG43x, F415, F417
FE42x,
F1122, F1222, F43x, FW42x, F43x,
Device
F1132 F1232 F44x F415, FG43x
F417
BSL Version 1.60
Cold start 0C00h
BSL vector address
Warm start 0C02h
Chip ID address 0FF0h
Chip ID data 1132h 1232h F449h F427h F439h
BSL version address 0FFAh
BSL version data 0160h
Mass erase time, nominal (ms) 206.4
0000h to 00FFh Byte
Read and write access at
0100h to FFFEh Word
Verification during write (online) For addresses 0200h to FFFEh
Erase check command Yes (error address 0200h)
Erase segment command With erasure verification (error address 0200h)
TX identification command Yes
Change baud rate command Yes
Cold start 0220h
Stack pointer initialization
Warm start Unchanged
Resources Used by BSL
Transmit pin (TX) P1.1 P1.0
Receive pin (RX) P2.2 P1.1
RAM stack used 0200h to 021Fh
Working registers R5 to R12
System clock, affected controls BCSCTL1, DCOCTL SCFI0, SCFI1, SCFQCTL
Timer_A, affected controls TACTL, TAR, CCTL0, CCR0
Erase segment Addresses 1000h to 11FFh are verified coherently (three segments). Also use erase
Comment
command check command.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 35
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 5-5. BSL Version 1.61 on F16x, F161x, F42x0, F13x rev AA, F14x(1) rev AA, F47x, FG47x
F149
Device F16x F161x F42x0 F41x2 F47197 FG47x
Rev AA
BSL Version 1.61
Cold start 0C00h
BSL vector address
Warm start 0C02h
Chip ID address 0FF0h
Chip ID data 0F169h 0F16Ch F149h F427h 4152h F47Fh 0F479h
BSL version address 0FFAh
BSL version data 0161h
Mass erase time, nominal (ms) 206.4
0000h to 00FFh Byte
Read and write access at
0100h to FFFEh Word
Verification during write (online) For addresses 0200h to FFFEh
Erase check command Yes (error address 0200h)
Erase segment command With erasure verification (error address 0200h)
TX identification command Yes
Change baud rate command Yes
Cold start 0220h
Stack pointer initialization
Warm start Unchanged
Resources Used by BSL
Transmit pin (TX) P1.1 P1.0
Receive pin (RX) P2.2 P1.1
RAM stack used 0200h to 021Fh
Working registers R5 to R14
System clock, affected controls BCSCTL1, DCOCTL SCFI0, SCFI1, SCFQCTL
Timer_A, affected controls TACTL, TAR, CCTL0, CCR0
Erase segment Addresses 1000h to 11FFh are verified coherently (three segments). Also use erase check
Comment
command command.
36 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 5-6. BSL Version 2.02 and 2.13 on F21xx, F22xx, F23xx, F24xx, F261x
Device F21xx F22xx F23xx F24x F261x
BSL Version 2.02 2.13
Cold Start 0C00h
BSL Vector Address
Warm Start 0C02h(1)
Chip ID Address 0FF0h
Chip ID Data F213h F227h F237h F249h F26Fh
BSL Version Address 0FFAh
BSL Version Data 0202h 0213h
0000h to 00FFh Byte
Read and Write Access at
0100h to FFFEh Word
Verification during write (online) For addresses 0200h to FFFEh
Erase Check Command Yes (error address 0200h)
Erase Segment Command With erasure verification (error address 0200h)
TX Identification command Yes
Change baud rate command Yes
Cold Start 0220h 0224h
Stack Pointer Initialization
Warm Start Unchanged
Resources Used by BSL
Transmit Pin (TX) P1.1
Receive Pin (RX) P2.2
RAM Stack Used 0200h to 021Fh 0200h to 0223h
Working Registers R5 to R14 R4 to R15
SCFI0, SCFI1,
System clock, affected controls BCSCTL1, DCOCTL
SCFQCTL
Timer_A, Affected controls TACTL, TAR, CCTL0, CCR0
Erase Segment Addresses 1000h to 11FFh are verified coherently (five segments). Also use erase
Comment
Command check command.
(1) The LOCK and LOCKA bits must be cleared by the user application before entering the BSL:
mov.w #FWKEY+LOCKA,&FCTL3
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 37
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 5-7. BSL Version 2.02 and 2.03 on G2xx3, G2xx4, G2xx5, TCH5E(1)
Device G2xx4 G2xx5 G2xx3 TCH5E
BSL Version 2.02 2.03
Cold Start 0C00h
BSL Vector Address
Warm Start 0C02h(2)
Chip ID Address 0FF0h
Chip ID Data F227h 2955h 2553h 255Ch
BSL Version Address 0FFAh
BSL Version Data 0202h 0203h
0000h to 00FFh Byte
Read and Write Access at
0100h to FFFEh Word
Verification during write (online) For addresses 0200h to FFFEh
Erase Check Command Yes (error address 0200h)
Erase Segment Command With erasure verification (error address 0200h)
TX Identification command Yes
Change baud rate command Yes
Cold Start 0220h
Stack Pointer Initialization
Warm Start Unchanged
Resources Used by BSL
Transmit Pin (TX) P1.1 P1.1
Receive Pin (RX) P2.2 P1.5
RAM Stack Used 0200h to 021Fh
Working Registers R5 to R14
System clock, affected controls BCSCTL1, DCOCTL
Timer_A, Affected controls TACTL, TAR, CCTL0, CCR0
Erase Segment Addresses 1000h to 11FFh are verified coherently (five segments). Also use
Comment
Command erase check command.
(1) Not all Value Line devices contain a BSL; see device-specific data sheet.
(2) The LOCK and LOCKA bits must be cleared by the user application before entering the BSL:
mov.w #FWKEY+LOCKA,&FCTL3
38 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
(1) The LOCK and LOCKA bits must be cleared by the user application before entering the BSL:
mov.w #FWKEY+LOCKA,&FCTL3 .
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 39
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
40 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
1. The password for the BSL is the bytes between addresses 0xFFF0 and 0xFFFF. This means that this BSL
version expects only 16 bytes for a password in the RX Password command. Sending 32 bytes returns an
error.
2. If the address 0x20396 or 0x20397 is included in the address range of the CRC command, the returned data is
Known Bugs incorrect.
3. The Mass Erase command also erases Info_A.
4. On incorrect password, the device erases all RAM, including its stack. Thus, proper return of an error code is
not assured.
5. The total number of bytes for the CRC function is masked with 0x7FFF and is, therefore, limited to 32767.
Table 5-10.
MSP430F5438A, MSP430F5437A, MSP430F5435A, MSP430F5436A, MSP430F5435A, MSP430F5419A,
Devices
MSP430F5418A
00.05.04.03 (Rev A to Rev E)
BSL Version
00.07.05.04 (Rev F and later)
RAM Erased 0x1C00 to 0x5BFF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-11.
CC430F6147, CC430F6145, CC430F6143, CC430F6137, CC430F6135, CC430F6127, CC430F6126,
Devices CC430F6125, CC430F5147, CC430F5145, CC430F5143, CC430F5137, CC430F5135, CC430F5133,
CC430F5125, CC430F5123
00.05.04.52 (Rev A to Rev C)
BSL Version
00.07.05.53 (Rev D and later)
RAM Erased 0x1C00 to 0x23FF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are implemented on pin P1.6 (TXD) and P1.5 (RXD)
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 41
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 5-12.
MSP430F5510, MSP430F5500, MSP430F5501, MSP430F5502, MSP430F5503, MSP430F5504, MSP430F5505,
Devices
MSP430F5506, MSP430F5507, MSP430F5508, MSP430F5509
00.03.83.33 (Rev A to Rev E)
BSL Version 00.07.88.38 (Rev F until May 2015)
00.08.88.39 (Rev F and later)
RAM Erased 0x2400 to 0x33FF
Buffer Size for Core
62 bytes
Commands
1. Device is programmed with the factory USB BSL.
2. Factory USB BSL is RAM write only. Full BSL must first be loaded into device RAM and started to perform
flash write. Only the commands RX PASSWORD, RX DATA BLOCK FAST, and SET PC are supported.
Notable Information 3. When starting this BSL from an application, the application should first de-enumerate itself, then delay
(approximately 500 ms) before starting the BSL. This allows proper re-enumeration with the host.
4. External crystal at XT2 is required to ensure USB operation.
Known Bugs The USB module is not correctly locked by the BSL. For legacy reasons this behavior is kept.
Table 5-13.
MSP430F5529, MSP430F5513, MSP430F5514, MSP430F5515, MSP430F5517, MSP430F5519, MSP430F5521,
Devices
MSP430F5522, MSP430F5524, MSP430F5525, MSP430F5526, MSP430F5527, MSP430F5528
00.03.83.33 (Rev A to Rev H)
00.07.85.36 (Rev I)
BSL Version 00.07.87.37 (Rev J)
00.07.88.38 (Rev K until May 2015)
00.08.88.39 (Rev K and later)
RAM Erased 0x2400 to 0x33FF
Buffer Size for Core
62 bytes
Commands
1. Device is programmed with the factory USB BSL.
2. Factory USB BSL is RAM write only. Full BSL must first be loaded into device RAM and started to perform
flash write. Only the commands RX PASSWORD, RX DATA BLOCK FAST, and SET PC are supported.
Notable Information 3. When starting this BSL from an application, the application should first de-enumerate itself, then delay
(approximately 500 ms) before starting the BSL. This allows proper re-enumeration with the host.
4. External crystal at XT2 is required to ensure USB operation.
Known Bugs The USB module is not correctly locked by the BSL. For legacy reasons this behavior is kept.
Table 5-14.
Devices MSP430F5172, MSP430F5152, MSP430F5132, MSP430F5171, MSP430F5151, MSP430F5131
BSL Version 00.07.05.04
RAM Erased 0x1C00 to 0x1FFF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
42 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 5-15.
MSP430F5229, MSP430F5227, MSP430F5219, MSP430F5217, MSP430F5224, MSP430F5222, MSP430F5213,
Devices
MSP430F5212
BSL Version 00.07.05.04
RAM Erased 0x2400 to 0x43FF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-16.
MSP430F5249, MSP430F5247, MSP430F5244, MSP430F5242, MSP430F5239, MSP430F5237, MSP430F5234,
Devices
MSP430F5232
BSL Version 00.08.08.04
RAM Erased 0x2400 to 0x43FF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-17.
Devices MSP430F5255, MSP430F5254, MSP430F5253, MSP430F5252
BSL Version 00.08.08.04
RAM Erased 0x2400 to 0x43FF
Buffer Size for Core
260 bytes
Commands
1. UART TX and RX BSL pins are noted in the device data sheet
Notable Information 2. A BSL firmware image that uses pins in the DVIO supply domain is available for download in the custom
BSL package.
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-18.
Devices MSP430F5259, MSP430F5258, MSP430F5257, MSP430F5256
BSL Version 00.07.06.94
RAM erased 0x1C00 to 0x23FF
Buffer size for Core
260 bytes
Commands
Notable Information 1. I2C pins are noted in the device data sheet
Known Bugs 1. I2C read commands with length greater than 260 do not return correct data.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 43
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 5-19.
MSP430F5310, MSP430F5309, MSP430F5308, MSP430F5304, MSP430F5340, MSP430F5341, MSP430F5342,
Devices
MSP430F5329, MSP430F5324, MSP430F5325, MSP430F5326, MSP430F5327, MSP430F5328
BSL Version 00.06.04.04
RAM Erased 0x1C00 to 0x33FF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-20.
MSP430F6638, MSP430F6637, MSP430F6636, MSP430F6635, MSP430F6634, MSP430F6633, MSP430F6632,
Devices MSP430F6631, MSP430F6630, MSP430F5638, MSP430F5637, MSP430F5636, MSP430F5635, MSP430F5634,
MSP430F5633, MSP430F5632, MSP430F5631, MSP430F5630
00.04.84.34 (Rev A to Rev D)
BSL Version 00.08.88.38 (Rev E until May 2015)
00.08.88.39 (Rev E and later)
RAM erased 0x2400 to 0x33FF
Buffer Size for Core
62 bytes
Commands
1. Device is programmed with the factory USB BSL.
2. Factory USB BSL is RAM write only. Full BSL must first be loaded into device RAM and started to perform
Notable Information flash write. Only the commands RX PASSWORD, RX DATA BLOCK FAST, and SET PC are supported
3. When starting this BSL from an application, the application should first de-enumerate itself, then delay
(approximately 500 ms) before starting the BSL. This allows proper re-enumeration with the host.
Known Bugs The USB module is not correctly locked by the BSL. For legacy reasons this behavior is kept.
Table 5-21.
Devices MSP430F6659, MSP430F6658, MSP430F5659, MSP430F5658
00.07.86.36 (Rev A)
BSL Version 00.08.88.38 (Rev B until May 2015)
00.08.88.39 (Rev B and later)
RAM Erased 0x2400 to 0x33FF
Buffer Size for Core
62 bytes
Commands
1. Device is programmed with the factory USB BSL.
2. Factory USB BSL is RAM write only. Full BSL must first be loaded into device RAM and started to perform
Notable Information flash write. Only the commands RX PASSWORD, RX DATA BLOCK FAST, and SET PC are supported
3. When starting this BSL from an application, the application should first de-enumerate itself, then delay
(approximately 500 ms) before starting the BSL. This allows proper re-enumeration with the host.
Known Bugs
Table 5-22.
MSP430F6438, MSP430F6436, MSP430F6435, MSP430F6433, MSP430F5338, MSP430F5336, MSP430F5335,
Devices
MSP430F5333, MSP430F6459, MSP430F6458, MSP430F5359, MSP430F5358
BSL Version 00.07.05.04
RAM Erased 0x1C00 to 0x43FF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
44 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 5-23.
MSP430F6736, MSP430F6720, MSP430F6721, MSP430F6723, MSP430F6724, MSP430F6725, MSP430F6726,
MSP430F6730, MSP430F6731, MSP430F6733, MSP430F6734, MSP430F6735, MSP430F6736A,
Devices
MSP430F6735A, MSP430F6734A, MSP430F6733A, MSP430F6731A, MSP430F6730A, MSP430F6726A,
MSP430F6725A, MSP430F6724A, MSP430F6723A, MSP430F6721A, MSP430F6720A
BSL Version 00.07.05.04
RAM Erased 0x1C00 to 0x1FFF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-24.
MSP430F6779, MSP430F6745, MSP430F6746, MSP430F6747, MSP430F6748, MSP430F6749, MSP430F6765,
MSP430F6776, MSP430F6767, MSP430F6768, MSP430F6769, MSP430F6775, MSP430F6776, MSP430F6777,
Devices MSP430F6778, MSP430F67791, MSP430F67451, MSP430F67461, MSP430F67471, MSP430F67481,
MSP430F67491, MSP430F67651, MSP430F67761, MSP430F67671, MSP430F67681, MSP430F67691,
MSP430F67751, MSP430F67761, MSP430F67771, MSP430F67781
BSL Version 00.07.05.04
RAM Erased 0x1C00 to 0x5BFF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-25.
MSP430F6779A, MSP430F6778A, MSP430F6777A, MSP430F6776A, MSP430F6775A, MSP430F6769A,
MSP430F6768A, MSP430F6767A, MSP430F6766A, MSP430F6765A MSP430F6749A, MSP430F6748A,
MSP430F6747A MSP430F6746A MSP430F6745A, MSP430F67791A, MSP430F67781A, MSP430F67771A,
Devices
MSP430F67761A, MSP430F67751A, MSP430F67691A, MSP430F67681A, MSP430F67671A,
MSP430F67661A, MSP430F67651A, MSP430F67491A, MSP430F67481A, MSP430F67471A,
MSP430F67461A, MSP430F67451A
BSL Version 00.07.05.04
RAM Erased 0x1C00 to 0x5BFF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-26.
Devices MSP430F67641, MSP430F67621
BSL Version 00.07.05.04
RAM Erased 0x1C00 to 0x1FFF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 45
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 5-27.
Devices MSP430FG6426, MSP430FG6425
BSL Version 00.08.08.04
RAM Erased 0x1C00 to 0x43FF
Buffer Size for Core
260 bytes
Commands
Notable Information 1. UART TX and RX BSL pins are noted in the device data sheet
Known Bugs 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations.
Table 5-28.
Devices MSP430FG6626, MSP430FG6625
BSL Version 00.08.88.38
RAM Erased 0x1C00 to 0x43FF
Buffer Size for Core
260 bytes
Commands
1. Device is programmed with the factory USB BSL.
2. Factory USB BSL is RAM write only. Full BSL must first be loaded into device RAM and started to perform
flash write. Only the commands RX PASSWORD, RX DATA BLOCK FAST, and SET PC are supported
Notable Information 3. When starting this BSL from an application, the application should first de-enumerate itself, then delay
(approximately 500 ms) before starting the BSL. This allows proper re-enumeration with the host.
4. External crystal at XT2 is required to ensure USB operation.
Known Bugs
46 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader PCB Layout Suggestion
unitop.wmf@
unibottom.wmf@
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 47
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Bootloader PCB Layout Suggestion www.ti.com
60,00 mm
3,5 mm
Figure 6-3. Universal BSL Interface Component Placement
48 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
www.ti.com Bootloader PCB Layout Suggestion
60,0 mm
TL062D
3,5 mm
Figure 6-4. Universal BSL Interface Component Placement
SLAU319AE – JULY 2010 – REVISED APRIL 2021 MSP430™ Flash Devices Bootloader (BSL) 49
Submit Document Feedback
Copyright © 2021 Texas Instruments Incorporated
Revision History www.ti.com
7 Revision History
NOTE: Page numbers for previous revisions may differ from page numbers in the current version.
Changes from June 17, 2020 to April 6, 2021 Page
• Corrected the the BSL versions for the change baud rate command in Section 2.2.1, Unprotected Commands
............................................................................................................................................................................8
• Corrected the the BSL versions for the change baud rate command in Section 2.2.2, Password Protected
Commands ........................................................................................................................................................ 8
50 MSP430™ Flash Devices Bootloader (BSL) SLAU319AE – JULY 2010 – REVISED APRIL 2021
Submit Document Feedback
Copyright © 2021 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