Electronic – Spy-Bi-Wire vs JTAG


I'm working on an MSP430 design and I'm very intrigued by the Spy-Bi-Wire two-wire programming interface. From what I read it is very similar in terms of functionality to JTAG and even looks better in some cases (less wires of course, but also speed, etc).

Is there anything that JTAG is capable of that I would be missing out on by using Spy-Bi-Wire (debugging, breakpoints, flash programming) and not including the standard 4-pin JTAG on my PCB?

Best Answer

Spy-Bi-Wire is JTAG - the physical layer is just different. JTAG is a set of commands over a serial interface. The main problem is the chip you're debugging. The chip you're debugging has to have the support for the fancy features - not just your JTAG. And indeed, in TI's own documentation for the JTAG interface on MSP430 it spells out how its chips don't fully implement all JTAG commands (section 3.2, pg 67):

Only the BYPASS instruction is supported. There is no support for SAMPLE, PRELOAD, or EXTEST instructions.

Here's the fun part: since Spy-Bi-Wire is just serial communication, all of the actual cool features have to be implemented on the MSP430. For instance, the number of hardware breakpoints you have? Determined by the processor, not the JTAG you're using. Most MSP430's have two, some have eight.