The MSP-BSL (previously known as the MSP430-BSL) is a low-cost programmer in the shape of a rocket. Hence, it is nicknamed the "BSL Rocket". The MSP-BSL is designed for easy communication between a PC and the BSL of an MSP430™ or SimpleLink™MSP432™ microcontroller (MCU) through USB. The MSP-BSL project is a collaboration between Olimex Ltd and Texas Instruments. The PCB design and firmware for the MSP-BSL are open source. As of this writing, the MSP-BSL supports UART, I2C, and SPI communication, but it can be extended for future requirements.
MSP430, SimpleLink, MSP432 are registered trademarks of Texas Instruments.
All other trademarks are the property of their respective owners.
The bootloader (BSL) is an application built into MSP430 and MSP432 microcontrollers. The BSL enables the user to communicate with the device and to read and write its memory. This feature is primarily used for programming the device during prototyping phase, final production, and in service. Both the programmable memory (flash memory or FRAM) and the data memory (RAM) can be modified as required. Different BSLs offer different peripherals to communicate with (for example, UART, I2C, SPI, or USB).
The MSP-BSL (previous knows as the MSP430-BSL) is a low-cost programmer in the shape of a rocket (see Figure 1 and Figure 2). Hence, it is nicknamed the "BSL Rocket". The MSP-BSL is designed for easy communication between a PC and the BSL of an MSP430 or MSP432 MCU through USB. The MSP-BSL project is a collaboration between Olimex Ltd and Texas Instruments. The PCB design and firmware for the MSP-BSL are open source. As of this writing, the MSP-BSL supports UART, I2C, and SPI communication, but it can be extended for future requirements.
More information on the BSL can be found in the following documents:
MSP430™ Flash Device Bootloader (BSL) User's Guide
MSP430™ FRAM Devices Bootloader (BSL) User's Guide
MSP432™ SimpleLink™ Microcontroller Bootloader (BSL) User's Guide
Bootloader for SimpleLink MSP432E Microcontrollers
Bootloader (BSL) Scripter User's Guide
The latest version of the firmware and source code for the MSP-BSL is available from http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBSL_Rocket_FW/latest/index_FDS.html.
The MSP-BSL is a USB communications device class (CDC) device. It enumerates on the host PC as a virtual COM port. The data that is sent to the MSP-BSL through this serial connection appears transparently at the output, and data that is received by the MSP-BSL is forwarded transparently to the PC.
The serial communication to the MSP-BSL uses 8 data bits, no parity bit, and 1 stop bit (8N1). The baud rate selects the target communication protocol in use. Special functionality (for example applying a BSL entry sequence (see Section 2.1)) can also be triggered by baud rate changes.
Table 1 describes special-purpose baud rates used by the MSP-BSL. Each function in this table is described in detail in the following subsections.
Protocol | Baud Rate | Description |
---|---|---|
UART | 4801 | Invoke the USB BSL on the MSP-BSL Rocket |
4802(1) | Triggers the MSP-BSL Rocket to generate exit sequence in TST and RST pins for MSP430 UART BSL | |
9601 | Triggers the MSP-BSL Rocket to generate invoke sequence in TST and RST pins for MSP430F5xx and MSP430F6xx UART BSL | |
9602 | Triggers the MSP-BSL Rocket to generate invoke sequence in TST and RST pins for MSP430F1xx, MSP430F2xx, MSP430F4xx, and MSP430G2xx UART BSL | |
9608, 19208, 38408, 57608, 115208 | Triggers the MSP-BSL Rocket to have UART peripheral configuration for MSP432E4 family | |
9600, 19200, 38400, 57600, 115200 | Standard baudrate communication for MSP430 and MSP432 UART BSL | |
1200, 2400, 4800, 230400, 460800, 921600 | Standard baudrate communication for UART (not supported in MSP430 and MSP432 UART BSL) | |
I2C | 100001, 400001 | Triggers the MSP-BSL Rocket to generate invoke sequence in TST and RST pins MSP430 I2C BSL |
100008, 400008 | Triggers the MSP-BSL Rocket to have I2C peripheral configuration for MSP432E4 family | |
100000 + (slaveAddress), 400000 + (slaveAddress) | Initialize the custom I2C slave address for I2C BSL all families. slaveAddress has to be treated in decimal format.
With the implementation with BSL-Scripter, the parameter is given in hexadecimal string (for example: 0x48), and the BSL-Scripter translates this into decimal. |
|
100000, 400000 | Standard bit rate communication for MSP430 and MSP432 I2C BSL | |
SPI | 125008, 250008, 500008, 1000008 | Triggers the MSP-BSL Rocket to have SPI peripheral configuration for MSP432E4 family |
125000, 250000, 500000, 1000000 | Standard bit rate communication for MSP432P4xx and MSP432E4 SPI BSL |
For most MSP430 devices, there are two ways to invoke the BSL: by the application software or by applying a hardware entry sequence.
The MSP-BSL can apply the entry sequence (see Figure 3) to the target. This entry sequence can be used for devices with shared or dedicated JTAG pins. The entry sequence can be triggered by setting the communication speed of the MSP-BSL to 9601 baud (for UART) or to the baud rate of any mode with a BSL entry sequence; for example, 100001 baud for I2C mode with BSL entry sequence (see Table 1).
NOTE
For further information on the entry sequence, see the user's guides listed in Section 1.1.
The MSP-BSL provides a mode to communicate with UART BSLs. In this mode, all data sent to the virtual COM port is output at the TX pin (RX on the target connector, see Section 4.2). All data received on the RX pin (TX on the target connector) is forwarded to the PC. The MSP-BSL acts as a transparent USB-to-UART bridge.
To start UART BSL communication, perform the following steps, depending on the device family.
For the MSP430 family:
For the MSP432P4xx family:
For the MSP432E4 family: