SLAU320AJ July 2010 – May 2021
Selecting a JTAG register and controlling the CPU is done by shifting in a JTAG instruction using the IR_SHIFT macro described in Section 2.2.2.1.1. The following instructions that can be written to the JTAG IR are used to program the target memory. All instructions sent to the target MSP430 through the JTAG register are transferred LSB first.
Instruction Name | 8-Bit Instruction Value |
---|---|
Controlling the Memory Address Bus (MAB) | |
IR_ADDR_16BIT | 0x83 |
IR_ADDR_CAPTURE | 0x84 |
Controlling the Memory Data Bus (MDB) | |
IR_DATA_TO_ADDR | 0x85 |
IR_DATA_16BIT | 0x41 |
IR_DATA_QUICK | 0x43 |
IR_BYPASS | 0xFF |
Controlling the CPU | |
IR_CNTRL_SIG_16BIT | 0x13 |
IR_CNTRL_SIG_CAPTURE | 0x14 |
IR_CNTRL_SIG_RELEASE | 0x15 |
Memory Verification by Pseudo Signature Analysis (PSA) | |
IR_DATA_PSA | 0x44 |
IR_SHIFT_OUT_PSA | 0x46 |
JTAG Access Security Fuse Programming | |
IR_Prepare_Blow | 0x22 |
IR_Ex_Blow | 0x24 |
JTAG Mailbox System | |
IR_JMB_EXCHANGE | 0x61 |
Do not write any unlisted values to the JTAG instruction register. Instruction values written to the MSP430 JTAG register other than those listed above may cause undesired device behavior.
When a new JTAG instruction is shifted into the JTAG instruction register, it takes effect with the UPDATE-IR state of the TAP controller. When accessing a JTAG data register, the last value written is captured with the CAPTURE-DR state, and the new value shifted in becomes valid with the UPDATE-DR state. In other words, there is no need to go through Run-Test/Idle state of the JTAG TAP controller to shift in instructions or data. Be aware of the fact that clocking TCLK is only possible in the Run-Test/Idle state. This is why the provided software example application exclusively makes use of the JTAG macros described in Section 2.2.2, which always go through Run-Test/Idle state.