Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
I prefer JTAG to ICE. ICE or In Circuit Emulator requires a separate board that emulates the microcontroller that you are using. This board allows you to do breakpoints, examine registers and other cool stuff. However, since it connects back to your board with a cable, you have to design your system to be compatible. Analog stuff, like A/D converters do not operate the same on ICE as the real circuit.
JTAG requires special extra circuitry built into the chip to do the breakpoints and debugging. The number of breakpoints and some of the features are more limited, but JTAG is much better on analog stuff because it works with your actual microcontroller.
The biggest problem with ICE is that code that worked fine on the ICE box would sometimes fail when programmed into a real microcontroller.
AVR sells an interface that is called JTAG ICE. It is really a JTAG debugger, but they named it "ICE" to make it sound more important.
JTAG requires you to dedicate a few pins to debugging, but it is only about four, so its not hard to incorporate into your designs.
Please correct me if I am wrong but ain't JTAG a standard interface to debug the processors and ICE is a device as you mentioned which emulates the target processor.
JTAG was originally designed to test ICs. The idea was a small serial interface that would connect all the internal logic into a large serial chain. This allows for software to clock data to all IO pins and look for opens and shorts.
Later it was found that the same interface could be used to program chips. It can even be used to program chips external to the one the JTAG interface is attached to. We build a PowerPC board with a 405 processor. The 405 boots up from a FLASH chip. We solder the FLASH onto the boards blank. Then using a JTAG interface to the 405 processor, we program the external FLASH.
By adding some breakpoint registers, they found that the JTAG interface could be used for debugging too. JTAG is used on all types of ICs, not just processors, or microcontrollers, or FPGAs.
True IC used special bond-out chips that emulated the full internals of the microcontroller. For example, PIC used to have an ICE box that required different plug-in cards to emulate different chips. These were quite expensive. However, the microcontrollers in those days were OTP. One Time Programmable. Therefore, you wasted a chip every time you wanted to try another bug fix! This got really expensive too. Today's chips are FLASH based and the microcontroller can be reprogrammed hundreds of thousands of times.
ICE is an acronymous for In Circuit Emulation. Jtag is kind of stanadard interface to do In Circuit Emulation (AVR, ARM etc). For example AVR in small AVR devices use DebugWire instead of Jtag, Freescale for HCS08/ HC12 use BDM (same 1 wire debug)
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.