Slau 319 o
Slau 319 o
Slau 319 o
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 Interrupt Vector table on the device.
Contents
1 Introduction ................................................................................................................... 3
1.1 Supplementary Online Information ............................................................................... 3
1.2 Overview of BSL Features ......................................................................................... 4
1.3 Standard RESET and BSL Entry Sequence .................................................................... 5
1.4 UART Protocol ...................................................................................................... 6
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 .................................................................................................... 15
2.7 Password Protection .............................................................................................. 15
2.8 Code Protection Fuse............................................................................................. 15
2.9 BSL Internal Settings and Resources .......................................................................... 16
3 Bootloader Protocol – F5xx and F6xx Families ........................................................................ 19
3.1 BSL Data Packet .................................................................................................. 19
3.2 UART Peripheral Interface (PI) .................................................................................. 19
3.3 I2C Peripheral Interface ........................................................................................... 20
3.4 USB Peripheral Interface ......................................................................................... 22
3.5 BSL Core Command Structure .................................................................................. 22
3.6 BSL Security ....................................................................................................... 24
3.7 BSL Core Responses ............................................................................................. 25
3.8 BSL Public Functions and Z-Area ............................................................................... 27
4 Bootloader Hardware ...................................................................................................... 29
4.1 Hardware Description ............................................................................................. 29
5 Differences Between Devices and Bootloader Versions .............................................................. 33
5.1 1xx, 2xx, and 4xx BSL Versions................................................................................. 33
5.2 Special Consideration for ROM BSL Version 1.10 ........................................................... 40
5.3 1xx, 2xx, and 4xx BSL Known Issues .......................................................................... 41
5.4 Special Note on the MSP430F14x Device Family BSL ...................................................... 41
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 1
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com
List of Figures
1 Standard RESET Sequence ............................................................................................... 5
2 BSL Entry Sequence at Shared JTAG Pins .............................................................................. 5
3 BSL Entry Sequence at Dedicated JTAG Pins .......................................................................... 6
4 Basic Protocol - Byte Level ACK ......................................................................................... 20
5 Byte Level ACK ............................................................................................................. 21
6 Bootloader Interface Schematic .......................................................................................... 29
7 Universal BSL Interface PCB Layout, Top .............................................................................. 47
8 Universal BSL Interface PCB Layout, Bottom .......................................................................... 47
9 Universal BSL Interface Component Placement ....................................................................... 48
10 Universal BSL Interface Component Placement ....................................................................... 49
List of Tables
1 BSL Overview ................................................................................................................ 4
2 Data Frame of BSL Commands ........................................................................................... 9
3 Recommendations for MSP430F149 [MSP430F449] (TA = 25°C, VCC = 3.0 V, fmax = 6.7 MHz) ................. 13
4 Recommendations for MSP430F2131 (TA = 25°C, VCC = 3.0 V, fmax = 6.7 MHz) ................................... 13
5 UART Protocol Interface .................................................................................................. 19
6 UART Error Messages .................................................................................................... 20
7 BSL Core Command Wrapper for I2C ................................................................................... 22
8 USB Peripheral Interface .................................................................................................. 22
9 BSL Core Commands ..................................................................................................... 22
10 BSL Core Responses ...................................................................................................... 25
11 BSL Core Messages ....................................................................................................... 26
12 Serial-Port Signals and Pin Assignments ............................................................................... 30
13 RS-232 Levels .............................................................................................................. 30
14 Pin Assignment of Target Connector .................................................................................... 31
15 Universal BSL Interface Parts List ....................................................................................... 32
16 BSL Version 1.10 on F13x, F14x(1) (excluding Rev AA), F11x, and F11x1 ....................................... 33
17 BSL Version 1.30 on F41x, F11x, and F11x1 .......................................................................... 34
18 BSL Version 1.40 on F12x ................................................................................................ 35
19 BSL Version 1.60 on F11x2, F12x2, F43x, F44x, FE42x, FW42x, F43x, FG43x, F415, F417 .................. 36
20 BSL Version 1.61 on F16x, F161x, F42x0, F13x rev AA, F14x(1) rev AA, F47x, FG47x ........................ 37
21 BSL Version 2.02 and 2.13 on F21xx, F22xx, F23xx, F24xx, F261x ............................................... 38
22 BSL Version 2.02 and 2.03 on G2xx3, G2xx4, G2xx5, TCH5E ...................................................... 39
23 BSL Version 2.12 and 2.13 on FG46xx, F471xx ....................................................................... 40
Trademarks
MSP430, E2E are trademarks of Texas Instruments.
All other trademarks are the property of their respective owners.
2 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, 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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 3
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Introduction www.ti.com
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' ✔ ✔ ✔ ✔ ✔ ✔ ✔
Hardware MSP-FET ✔ ✔ ✔ ✔ ✔ ✔ ✔ (3)
Tools Support
USB cable ✔
BSL Scripter ✔ ✔ ✔ ✔ ✔ ✔ ✔
(1) BSLDEMO ✔
Software
UART UART
MSPBSL library ✔ ✔ ✔
only only
(4)
Password protection 32 byte 32 byte 32 byte 32 byte 32 byte 32 byte 256 byte
Mass erase on incorrect password (5) ✔ ✔ ✔ ✔ ✔ ✔ ✔
Completely disable the BSL using signature or
✔ ✔ ✔ ✔ ✔ ✔ ✔
erasing the BSL
Security
(1)
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.
(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)
F543x (non A) has a 16-byte password.
(5)
Some devices can disable mass erase on incorrect password. See the device family user's guide.
(6)
The decryption of the payload is performed by the device bootcode.
(7)
Firmware validation through CRC.
4 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, 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 positive transitions
and if TEST is high while RST/NMI rises from low to high (BSL entry method, see Figure 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: 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, 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 2).
The BSL is not started by the BSL RESET vector if:
• There are fewer than two positive edges at the TEST pin while RST/NMI is low.
• JTAG has control over the MSP430 MCU resources.
• Supply voltage, VCC, drops below its threshold, and a power-on reset (POR) is executed.
• RST/NMI pin is configured for NMI functionality (NMI bit is set).
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 5
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Introduction www.ti.com
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.
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 may be extensively
stressed or may react with unreliable program or erase operations.
6 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Introduction
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 7
Submit Documentation Feedback
Copyright © 2010–2017, 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.
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 Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
Table 2. Data Frame of BSL Commands (1) (2) (3) (4) (5) (6)
Received
BSL HDR CMD L1 L2 AL AH LL LH D1 D2…Dn CKL CKH ACK
Command
RX data block 80 12 n n AL AH n–4 0 D1 D2 … Dn–4 CKL CKH ACK
RX password 80 10 24 24 xx xx xx xx D1 D2 … D20 CKL CKH ACK
Erase segment 80 16 04 04 AL AH 02 A5 – ––– CKL CKH ACK
Erase main or info 80 16 04 04 AL AH 04 A5 – ––– CKL CKH ACK
Mass erase 80 18 04 04 xx xx 06 A5 – ––– CKL CKH ACK
Erase check 80 1C 04 04 AL AH LL LH – ––– CKL CKH ACK
Change baud rate 80 20 04 04 D1 D2 D3 xx – ––– CKL CKH ACK
Set mem offset 80 21 04 04 xx xx AL AH – ––– CKL CKH ACK
Load PC 80 1A 04 04 AL AH xx xx – ––– CKL CKH ACK
TX data block 80 14 04 04 AL AH n 0 – ––– CKL CKH –
BSL responds 80 xx n n D1 D2 ... ... … ... … Dn CKL CKH –
TX BSL version 80 1E 04 04 xx xx xx xx – ––– CKL CKH –
BSL responds 80 xx 10 10 D1 D2 ... ... … … … D10 CKL CKH –
(1)
All numbers are bytes in hexadecimal notation.
(2)
ACK is sent back by the BSL.
(3)
The synchronization sequence is not part of the data frame.
(4)
The erase check and TX BSL version commands are members of the standard command set in BSLs V1.50 or higher but
excluding 2.x BSLs.
(5)
The change baud rate command is not a member of the standard command set (it is available in V1.60 or higher or in loadable
BL_150S_14x.txt).
(6)
Abbreviations:
HDR: Header. Any value between 80h and 8Fh (normally 80h).
CMD: Command identification
L1, L2: Number of bytes consisting of AL through Dn. Restrictions: L1 = L2, L1 < 255, L1 even
AL, AH: Block start address or erase (check) address or jump address LO or HI byte
LL, LH: Number of pure data bytes (250 max) or erase information LO or HI byte or block length of erase check (FFFFh max)
D1 … Dn: Data bytes
CKL, CKH: 16-bit checksum LO or HI byte
xx: Can be any data
–: No character (data byte) received or transmitted
ACK: The acknowledge character returned by the BSL. Can be either DATA_ACK = 90h: Frame was received correctly,
command was executed successfully, or DATA_NAK = A0h: Frame not valid (for example, wrong checksum, L1 ≠ L2), command
is not defined, is not allowed, or was executed unsuccessfully.
n: Number of bytes consisting of AL through Dn
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 9
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
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 ]
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)
2.4.4.1 General
Following the header byte HDR (80h) and the command identification CMD, the frame length bytes L1 and
L2 (which must be equal) hold the number of bytes following L2, excluding the checksum bytes CKL and
CKH.
Bytes AL, AH, LL, LH, D1...Dn are command-specific. However, the checksum bytes CKL (low byte) and
CKH (high byte) are mandatory.
If the data frame has been received correctly and the command execution was successful, an
acknowledge character DATA_ACK = 90h is sent back by the BSL. Incorrectly received data frames,
unsuccessful operations, and commands that are locked or not defined are confirmed with a DATA_NAK =
A0h.
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.
10 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
The following data bytes are succeeded by the checksum bytes CKL (low byte) and CKH (high byte). If
the receipt and programming of the appropriate data block was successful, an acknowledge character
DATA_ACK is sent back by the BSL. Otherwise, the BSL confirms with a DATA_NAK.
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.
If the receipt and verification of the password is correct, a positive acknowledge DATA_ACK is sent back
by the BSL, and the password-protected commands become unlocked. Otherwise the BSL confirms with a
DATA_NAK.
After the protected commands become unlocked, they remain unlocked until another BSL entry is initiated.
NOTE: BSL versions V2.01 and higher support automatic clearing of the LOCKA bit protecting
information flash memory. When the BSL is entered from a reset condition, LOCKA is
cleared by the BSL to mass erase the flash, including information memory. When the BSL is
entered in-application, user software should ensure that LOCKA is written as 1 prior to
initiating the BSL. Otherwise, information flash is not erased during a BSL mass erase.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 11
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
When applying LL = 0x04 and LH = 0xA5, a mass erasure of only the main memory is performed. Indeed,
this command must be executed a minimum of 12 times to achieve a total erasure time of >200 ms. No
subsequent erase check of the entire main memory is done. Use the erase check command additionally.
Check the device data sheet for more information on the cumulative (mass) erase time that must be met
and the number of erase cycles required.
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.
D1: F1xx: Basic clock module control register DCOCTL (DCO.2 to DCO.0)
F2xx: Basic clock module control register DCOCTL (DCO.2 to DCO.0)
F4xx: FLL+ system clock control register SCFI0 (D, FN_8 to FN_2)
D2: F1xx: basic clock module control register BCSCTL1 (XT2Off, Rsel.2 to Rsel.0)
F2xx: basic clock module control register BCSCTL1 (XT2Off, Rsel.2 to Rsel.0)
F4xx: FLL+ system clock control register SCFI1 (NDCO)
D3 0: 9600 baud
1: 19200 baud
2: 38400 baud
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.
12 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
NOTE: This command is implemented on BSL versions V1.60 or higher or available in the loadable
bootloader BL_150S_14x.txt.
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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 13
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
14 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
For more information on downloading a different bootloader, see Application of Bootstrap Loader in
MSP430 With Flash Hardware and Software Proposal.
Third-party software normally uses loadable BSLs to perform most functions, like online verification, and to
improve speed for appropriate devices.
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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 15
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
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.
16 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – 1xx, 2xx, and 4xx Families
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 17
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – 1xx, 2xx, and 4xx Families www.ti.com
18 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
3.2.1 Wrapper
The default BSL430 programmed in each non-USB MSP430F5xx device communicates using a UART
peripheral interface (PI). The UART protocol interface has the format shown in Table 5. All numbers are in
hexadecimal format.
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 MSP430x5xx and MSP430x6xx 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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 19
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
Sent by master
Sent by slave
20 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
Sent by master
Sent by slave
• The high-level acknowledge indicates that the checksum of the BSL core command obtained is correct
and as expected. In some cases, this ACK may indicate the command was properly executed. This is
the first byte of RDATA. If this is NAK (other than 0x00), it indicates that a proper command was not
received and the master should consider that command transmission as a failure. If this is ACK (0x00),
it indicates that the transmission or reception of the command was correct with the right checksum and
that the data which follows is the response, if any, from the slave. The slave may keep the CLK line
low if it needs time to process before it responds to the command.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 21
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
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 7).
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.1 Wrapper
The Peripheral Interface for the USB bootloader has the wrapper format shown in Table 8. 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.
NOTE: See Section 5.5 for using the following commands with the BSL in the MSP430F5438 (non-A
version).
22 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
NOTE: BSLs that are programmed in flash and that communicate by USB contain only a subset of
the commands shown in Table 9. 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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 23
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
24 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 25
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
26 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Protocol – F5xx and F6xx Families
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 27
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Protocol – F5xx and F6xx Families www.ti.com
__disable_interrupt();
__delay_cycles(500000);
28 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Hardware
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.
TL062D
TL062D
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 29
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Hardware www.ti.com
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.
30 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader Hardware
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 31
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader Hardware www.ti.com
32 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 16. BSL Version 1.10 on F13x, F14x(1) (excluding Rev AA), F11x, and F11x1
F13x F11x (obsolete)
Device
F14x(1) up to Rev N F11x1 (obsolete)
BSL Version 1.10
Cold start 0C00h
BSL vector address
Warm start —
Chip ID address 0FF0h
Chip ID data F149h F112h
BSL version address 0FFAh
BSL version data 0110h
Mass erase time, nominal (ms) 17.2 (1)
Read and write access at 0000h to FFFFh Byte
Verification during write (online) No
SP critical 021Ah
Stack pointer initialization
SP not critical Unchanged
Resources Used by BSL
Transmit pin (TX), Receive pin (RX) P1.1, P2.2
RAM stack used 0200h to 0219h
Working registers R5 to R9
System clock, affected controls BCSCTL1, DCOCTL
Timer_A, affected controls TACTL, TAR, CCTL0, CCR0
mov #00h, &CCTL0
bic.b #02h, &P1SEL
bic.b #04h, &P2SEL
Preparation for software call bic.b #32h, &IE1
mov.b #00h, &BCSCTL2
mov #00h, SR
br &0C00h
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
Optional for F148, F149 only: Use loadable BSL erase 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
Optional for F1x4 to F1x9: Use small loadable BSL Section 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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 33
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
34 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 35
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 19. 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
mov.b #00h, &BCSCTL2 mov.b #00h, &FLLCTL1
Preparation for software call mov #00h, SR br &0C00h
br &0C00h
Erase segment Addresses 1000h to 11FFh are verified coherently (three segments). Also use erase
Comment
command check command.
36 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 20. 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
mov.b #00h, &BCSCTL2 mov.b #00h, &FLLCTL1
Preparation for software call mov #00h, SR br &0C00h
br &0C00h
Erase segment Addresses 1000h to 11FFh are verified coherently (three segments). Also use erase
Comment
command check command.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 37
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
Table 21. 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
mov.b #00h, &BCSCTL2
Preparation for software call mov #00h, SR
br &0C00h
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
38 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Table 22. 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
mov.b #00h, &BCSCTL2
Preparation for software call mov #00h, SR
br &0C00h
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
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 39
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
40 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 41
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
42 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Devices MSP430F5510, MSP430F5500, MSP430F5501, MSP430F5502, MSP430F5503, MSP430F5504,
MSP430F5505, MSP430F5506, MSP430F5507, MSP430F5508, MSP430F5509
BSL Version 00.03.83.33 (Rev A to Rev E)
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
Notable Information 1. BSL in device 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.
2. 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.
3. 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.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 43
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
44 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Differences Between Devices and Bootloader Versions
Known Bugs The USB module is not correctly locked by the BSL. For legacy reasons this behavior is kept.
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 45
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Differences Between Devices and Bootloader Versions www.ti.com
46 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader PCB Layout Suggestion
unitop.wmf@
unibottom.wmf@
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 47
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Bootloader PCB Layout Suggestion www.ti.com
60,00 mm
3,5 mm
Figure 9. Universal BSL Interface Component Placement
48 MSP430™ Flash Device Bootloader (BSL) SLAU319O – July 2010 – Revised September 2017
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
www.ti.com Bootloader PCB Layout Suggestion
60,0 mm
TL062D
3,5 mm
Figure 10. Universal BSL Interface Component Placement
SLAU319O – July 2010 – Revised September 2017 MSP430™ Flash Device Bootloader (BSL) 49
Submit Documentation Feedback
Copyright © 2010–2017, Texas Instruments Incorporated
Revision History www.ti.com
Revision History
NOTE: Page numbers for previous revisions may differ from page numbers in the current version.
Changes from July 11, 2017 to September 29, 2017 ...................................................................................................... Page
• Updated the paragraph that begins "Be aware that password protection..." in Section 2.4.4.10, Load PC ................. 13
• Added the paragraph that begins "TI recommends clearing the configuration..." in Section 3.8.1, Starting the BSL From an
External Application ..................................................................................................................... 27
Texas Instruments Incorporated (‘TI”) technical, application or other design advice, services or information, including, but not limited to,
reference designs and materials relating to evaluation modules, (collectively, “TI Resources”) are intended to assist designers who are
developing applications that incorporate TI products; by downloading, accessing or using any particular TI Resource in any way, you
(individually or, if you are acting on behalf of a company, your company) agree to use it solely for this purpose and subject to the terms of
this Notice.
TI’s provision of TI Resources does not expand or otherwise alter TI’s applicable published warranties or warranty disclaimers for TI
products, and no additional obligations or liabilities arise from TI providing such TI Resources. TI reserves the right to make corrections,
enhancements, improvements and other changes to its TI Resources.
You understand and agree that you remain responsible for using your independent analysis, evaluation and judgment in designing your
applications and that you have full and exclusive responsibility to assure the safety of your applications and compliance of your applications
(and of all TI products used in or for your applications) with all applicable regulations, laws and other applicable requirements. You
represent that, with respect to your applications, you have all the necessary expertise to create and implement safeguards that (1)
anticipate dangerous consequences of failures, (2) monitor failures and their consequences, and (3) lessen the likelihood of failures that
might cause harm and take appropriate actions. You agree that prior to using or distributing any applications that include TI products, you
will thoroughly test such applications and the functionality of such TI products as used in such applications. TI has not conducted any
testing other than that specifically described in the published documentation for a particular TI Resource.
You are authorized to use, copy and modify any individual TI Resource only in connection with the development of applications that include
the TI product(s) identified in such TI Resource. NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE TO
ANY OTHER TI INTELLECTUAL PROPERTY RIGHT, AND NO LICENSE TO ANY TECHNOLOGY OR INTELLECTUAL PROPERTY
RIGHT OF TI OR ANY THIRD PARTY IS GRANTED HEREIN, including but not limited to any patent right, copyright, mask work right, or
other intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information
regarding or referencing third-party products or services does not constitute a license to use such products or services, or a warranty or
endorsement thereof. Use of TI Resources may require a license from a third party under the patents or other intellectual property of the
third party, or a license from TI under the patents or other intellectual property of TI.
TI RESOURCES ARE PROVIDED “AS IS” AND WITH ALL FAULTS. TI DISCLAIMS ALL OTHER WARRANTIES OR
REPRESENTATIONS, EXPRESS OR IMPLIED, REGARDING TI RESOURCES OR USE THEREOF, INCLUDING BUT NOT LIMITED TO
ACCURACY OR COMPLETENESS, TITLE, ANY EPIDEMIC FAILURE WARRANTY AND ANY IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL
PROPERTY RIGHTS.
TI SHALL NOT BE LIABLE FOR AND SHALL NOT DEFEND OR INDEMNIFY YOU AGAINST ANY CLAIM, INCLUDING BUT NOT
LIMITED TO ANY INFRINGEMENT CLAIM THAT RELATES TO OR IS BASED ON ANY COMBINATION OF PRODUCTS EVEN IF
DESCRIBED IN TI RESOURCES OR OTHERWISE. IN NO EVENT SHALL TI BE LIABLE FOR ANY ACTUAL, DIRECT, SPECIAL,
COLLATERAL, INDIRECT, PUNITIVE, INCIDENTAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES IN CONNECTION WITH OR
ARISING OUT OF TI RESOURCES OR USE THEREOF, AND REGARDLESS OF WHETHER TI HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
You agree to fully indemnify TI and its representatives against any damages, costs, losses, and/or liabilities arising out of your non-
compliance with the terms and provisions of this Notice.
This Notice applies to TI Resources. Additional terms apply to the use and purchase of certain types of materials, TI products and services.
These include; without limitation, TI’s standard terms for semiconductor products http://www.ti.com/sc/docs/stdterms.htm), evaluation
modules, and samples (http://www.ti.com/sc/docs/sampterms.htm).
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2017, Texas Instruments Incorporated