TPI is a verytiny programming interface for thenewer TINY line of AVRs with limitedpins, like the 6 pin ATTINY10. LikedW, TPI uses the device's /RESET lineas part of the communicationinterface, but there the similarityends. Since the pint-sized TINY AVRslack a on-chip debugging circuit, theTPI protocol uses a new programminginterface of three pins, in ahalf-duplex protocol. Because the/RESET line needs to be raised to +12Vfor programming when the device'sRSTDSB pin is set, this is currentlyonly supported by the newer STK600programming board.
How do I interface with my programmer?
Which software you useto interface with your programmerdepends on the type of programmer youare using.
Simple "dumb"dongles require third party software,such as PonyProg or AVRDude. These maybe command line or GUI tools - lookaround on the web and you will fineone to fit your needs.
Programmers and bootloaders based onthe AVR910 protocol can be used withinAVRStudio. From the Tools menu, selectthe "AVRProg" option to open up a GUIscreen to interface with yourprogrammer. As an alternative, thirdparty tools such as AVRDude are alsoAVR910 compatible.
Officialtools are tightly integrated intoAVRStudio, especially in the case ofthe debugging variants(JTAG/Dragon/etc). From the AVRStudioTools menu, select the "ProgramAVR..." submenu and click the"Connect" item. From the new window,select your tool and its connectioninterface and click ok.
Asis the case with the dumb dongles andAVR910 programmers, the official toolsmay also be used with third partyprogramming software.
Arm has a jtag with fewer wires called swd which they are not necessarily wanting openly published. the open source tools are implementing it though. this is in theory a serial jtag, the different jtag signals are sent sequentially on one wire somehow instead of in parallel on many wires. inside the part I assume it gets parallelized again and feeds normal jtag logic. This has the disadvantage of ARM wanting to keep it a semi-secret, and ARMs jtag debuggers being a royal pain to use anyway. So this is a lot of work. If/when openocd gets it working then it may be a different story. You also have to still worry about repurposed pins and what happens with a hung core.
Jtag tools used to cost thousands of dollars, now they dont, for about $15 you can get an ftdi breakout board and repurpose it with openocd. For $50 plus or minus some you can get an ftdi based usb solution that works out of the box with openocd. You can get a non-commercial j-link for like $75-$80. And then there are the multi thousand dollar ones which are fast, sure but not worth the money in general. You buy those when you are a huge corporation with lots of cash to blow and want to pay for support. When you pay those prices you get the product you want and you get answers to tech support questions immediately. Like free linux vs windows or RHEL for example, linux support is free but you get what you get. Anyway this makes jtag much more attractive, being the most powerful solution in general I advise getting these tools when and where you can (where affordable).
You should have in your debugging and development arsenal jtag tools when and where affordable. sparkfun has ftdi based usb to serial boards and the ftdi parts can be repurposed into big bangers, you can use these for spi or i2c or pdi or jtag or other interfaces. Ideally getting boards that are made for the bus/part you are interested in and using the free/open source software that goes with it. Also using these serial boards, ideally having a supply of 3.3V and a 5V (about $15 each the one you use for lillypads and arduino minis, etc) for connecting to serial ports for the various micros that have some sort of serial protocol. I find it easier to write my own loader based on those protocols, esp like the arduino/avr folks where the bootloader source is published and is a considerable subset from the supposed standard they support. YMMV.
In short, there is no one good solution, they all have pros and cons. Be prepared to support at least two of them. usb and serial or usb and jtag or jtag and serial, etc. Just lay down pads or pin holes on the board and not necessarily populate. For your personal or lab development have a full suite of tools and be prepared to switch from one to another as you brick chips and have to recover boards or as you develop your own bootloader, usb firmware, etc.
If you get the "mkimage" command not found - U-Boot images will not be built error,build uboot from the source first and then copy the mkimage binary from u-boot-omapl1/tools to a directory in your PATH