irrenhaus finished his forked Bus Blaster v2 design. Like the BBv2, this board has a FT2232 USB->JTAG chip and a CPLD buffer. It uses a bigger 100pin CPLD, with enough IO to connect to every pin of the FT2232. The extra connections are used to supports the SWO feature of the new 2-wire SWD JTAG protocol, the Bus Blaster v2 can’t do that.
It works very well, all pins are available on pin headers and all pins of the FT2232H are available on the CPLD. I wrote two BufferLogics in Verilog: KT-Link and JTAGkey – both work very well.
The KT-Link logic has support for the SWO channel of SWD.
Supporting SWO isn’t that hard. The FT2232 has 2 serial/JTAG modules, most programmers just use one. KT-Link SWD design uses the second module to support the SWO debug option. An extra pin connection is all it takes.
The difficulty comes because we already use the second serial/JTAG module to program the logic into the CPLD. This awesome feature lets the Bus Blaster imitate just about any FT2232-based JTAG programmer with a simple USB upgrade. However for SWO we also need to use that module for normal IO too.
A buffer that selects between programming mode and normal mode is key to this design, and has slowed the development of Bus Blaster v3. Here’s irrenhaus’ experience:
One other failure: I connected all **BUS pins of the FT2232H to the CPLD. The CPLD uses the BDBUS1 pin for SWO when programmed with the KT-Link firmware. Sadly the same pin is the JTAG TDI pin when programming the CPLD via the second FT2232H port (there’s a buffer which enables the JTAG signals for the CPLD). So if you program the CPLD with the KT-Link firmware JTAG will not work for the CPLD.
I fixed this by connecting a free IO pin of the CPLD with the “JTAG enable” jumper and modifying the KT-Link firmware so it sets the CPLD pin connected to BDBUS1 to 1’bz. This fixes the problem.
The current plan for Bus Blaster v3 is to use a 4066 as a bi-directional buffer between the FT2232 and CPLD IO pins, and a second 4066 (or 245) between the FT2232 and CPLD programming pins. Program or normal mode will be selected with a jumper.
You can get a Bus Blaster v2 for $34.95.