SLAU320AJ July 2010 – May 2021
Reference function: ProgramLockKey
For the MSP430F5xx and MSP430F6xx families, it is NOT required to apply a special high voltage to the device's TEST pin.
In contrast to the 1xx, 2xx, 4xx families, which require special handling to burn the JTAG security fuse, the 5xx and 6xx families' JTAG is locked by programming a certain signature into the devices' flash memory at dedicated addresses. The JTAG security lock key resides at the end of the bootloader (BSL) memory at addresses 0x17FC to 0x17FF. Any value other than 0 or 0xFFFFFFFF programmed to these addresses irreversibly locks the JTAG interface. All of the 5xx and 6xx MSP430 devices come with a preprogrammed BSL (TI-BSL) code that, by default, protects itself from unintended erase and write access. This is done by setting the SYSBSLPE bit in the SYSBSLC register of the SYS module (see the MSP430F5xx and MSP430F6xx Family User's Guide SYS Module chapter for details). Because the JTAG security lock key resides in the BSL memory address range, appropriate action must be taken to unprotect the memory area before programming the protection key. This can be done by a regular memory write access as described in Section 2.3.3.2 by writing directly to the SYSBSLC register address and setting the SYSBSLPE to 0. Afterward, the BSL memory behaves like regular flash memory and a JTAG lock key can be programmed at addresses 0x17FC to 0x17FF as described in Section 2.3.4.2. A brownout reset (BOR) is required to activate the JTAG security protection during boot. The BOR can be issued as described in Section 2.3.2.2.4. If the hardware setup does not allow performing a power cycle (for example, the battery is already soldered to the PCB) a BOR can also be generated by JTAG by writing into a dedicated JTAG test data register. A BOR also resets the JTAG interface, which causes the device to be released from JTAG control.