Although it has a JTAG port, the TI MSP430 microcontroller is not a boundary scan capable device. Instead of the standard boundary scan registers there is a set of registers that allow the various functions of the device to be accessed and configured. To program the device the TAP controller is used to interact with the flash controller registers.  The RAW JTAG commands in XJEase can be use to access these registers and allow the device to be programmed.

The process of programming the internal flash memory uses the IR path of the JTAG state machine to select or address specific registers in the flash controller and then uses the DR path to read or write the selected register.

The programming algorithm for a MSP430 does have one extra complication.  It uses the TDI pin to perform two different functions depending on which state the TAP controller state machine is in.

In all but the Run Test Idle state the TDI pin performs its normal function, allowing 1s and 0s to be shifted into the DR and IR registers, but in the Run Test Idle state the TDI input  becomes the TCLK input.  The TCLK input is used to clock the internal flash controller, causing data to be written to memory, and should not be confused with the standard TCK input used to clock the JTAG state machine.

The TCLK input has another restriction in that it has to be clocked at 350 kHz.  This can be achieved by setting the JTAG system’s TCK frequency to 700 kHz. Any pin on the XJLink can only be changed once per TCK period so this results in a 350 kHz TCLK signal.

If you are interested in using the MSP430 code we have developed, please, contact support@xjtag.com for more information.