Parallel Port Programmers aka JTAG Wiggler Clones
Just uses parallel port lines to drive the JTAG programming lines. Most schematics use AC244 or HC244 for the buffer driver (These work for target voltages of 2-6V, although I’m not sure how they’d fare using a target voltage of 3.3V with 5V signals coming in from the parallel port. The scienceprog.com schematic recommends 74LVP244 or 74LPT244 for using 3.3V targets, but these won’t work for 5V targets.). These are compatible with many ARM JTAG programming software programs (as long as they are Wiggler compatible).
Schematics:
http://www.frozeneskimo.com/electronics/arm-tutorials/jtag-wiggler-clone/
http://winarm.scienceprog.com/arm-development-tools/jtag-wiggler-clone-for-arm-microcontrollers.html
http://www.bicotech.com/?page=prod_wiggler&lg=en
ARM JTAG Programmer fully assembled available from SparkFun for $21 USD or from Olimex for $15 Euro
USB Based Programmers
The USB ARM JTAG programmers will only program with the OpenOCD software. These are based on the FTDI USB chip. There are USB drivers for Windows and Linux.
Hubert Hoegl’s USB ARM JTAG Programmer
Fully assembled USB Programmer, from Sparkfun for $52 USD or from Olimex
Amontec also sells USB Programmers. The regular one works for voltages down to 1.4V, whereas the Jtag Tiny works for 2.8 to 5V.