Search code examples
microcontrollerjtagatmelstudiopsoc

Using JTAG interface for programming


I am developing a system for which I need to program MCUs like PSoC or Atmel SAM4E or Freescale K70 Series. Currently, I am using vendor specific IDEs and Peripherals like 'Miniprog from cypress' to program them, but I want to have a generic programming tool which uses JTAG Interface and don't need any extra peripheral like MiniProg, But I am new to this and really have little idea about how to go ahead with this. So any suggestion is welcome about how to get started with setting up a JTAG programming interface.


Solution

  • With JTAG you can have full control of MCU, e.g. to flash and debug it, run program, stop it when you wish or set watchpoint, breakpoints, triggers for memory values and so on. Most modern MCUs have JTAG interface. That means the JTAG module is inbuilt in the crystal's system. It also means that a MCU has a physical JTAG lines, electric contacts, pins of its package. On evaluation boards, also known as starter kits, these JTAG pins combined into a separate connector. In this connector should be plugged in a JTAG adapter with, usually, USB bus on the other end, turned into your computer.

    It is widely used to put a JTAG connector to the board design in order to have a debug capability for the product in all life stages.

    For example, Atmel offers an evaluation board SAM4E Xplained Pro Evaluation Kit for Atmel SAM4E:

    enter image description here

    and the JTAG emulator for it:

    enter image description here

    For other MCUs you should always check for the compatibility between JTAG emulator and cores supported.