Bus Blaster v2 design overview

From DP

Revision as of 08:19, 24 March 2011 by Ian (Talk | contribs)
Jump to: navigation , search
Project Summary
Name: Bus Blaster v2 design overview
Buy it: [ Get one for $35 at Seeed Studio]
Price: $35
Status: Test production
Manufacturing: Testing
Forum: Bus Blaster v2 design overview Forum
Busblaster-v2.jpg

You can get a [Bus Blaster v2 for $35]. Bus Blaster v2 is an experimental high-speed JTAG debugger design.

  • Based on FT2232H with high-speed USB 2.0
  • Buffered interface works with 3.3volt to 1.2volt targets
  • Reprogrammable buffer (CPLD) works with OpenOCD, urJTAG, and more
  • Compatible with 'jtagkey', 'KT-link', other programmer types
  • Should support Serial Wire Debug with KT-link compatible interface
  • Open source (CC-BY-SA)

Bus Blaster v2 is now available. Each unit is tested with a real JTAG target before it ships.

Read about the design below.

Contents

Overview

The Bus Blaster is used to program and debug devices with a JTAG interface like ARM processors, CPLDs, flash memory, and more.

It has a reprogrammable buffer that can imitate buffers supported by most popular open source JTAG utilities.

This project was developed in a public forum, and progress was documented on a wiki.

Hardware

Bus Blaster-v2-cct.png

Click for a full size schematic image. Schematic and PCB were designed with the freeware version of Cadsoft Eagle, download the latest project files from our Google Code project page.

FT2232H

File:Busblaster-v2-ft2232.png

The FT2232H is a powerful USB to serial communication chip. It has an MPSSE feature that provides a simple USB to JTAG converter (and UART, I2C, or SPI). Most DIY JTAG debuggers use this chip, as do many commercial models.

Bus Blaster v1 uses the 'H' version of the chip, the latest 3.3volt revision that supports JTAG adaptive clocking. The circuit is based on a reference design from the FT2232H datasheet.

We chose not to populate the optional EEPROM on Bus Blaster v1 in order to stay within our price goals. It is not required, and without it the FT2232 uses default settings.

Buffered interface

Busblaster-v2-buffer-a.png

The buffer translates voltage levels between the FT2232H (3.3volts) and a JTAG device (1.2volts-3.3volts). The four main JTAG IO pins (TDI, TDO, TCK, TMS) are fixed on the FT2232, but the other reset and control pins vary among programmers.

Bus Blaster v2 is buffered by a programmable logic chip (CPLD) that can be changed to imitate many common buffer types. The CPLD is connected to the secondary JTAG interface on the FT2232, so uploading a new buffer type is done entirely from software over USB.

An XC2C32A CoolRunner-II CPLD (IC) is used for the buffer. These are the smallest available CPLDs from Xilinx, and they only cost around $1 in onesies.

The CPLD core requires a 1.8volt supply, which is conveniently available from the FT2232. The JTAG and IO pins are powered by a separate supply between 1.2 and 3.3volts. Each supply pin gets a 0.1uF capacitor.

  • For more see our CoolRunner-II quick start guide

This chip is perfect for voltage translation because the IO pins are divided into two groups that can operate from different power supplies. We connected one group to the FT2232 and the 3.3volt FT2232 power supply. The other group connects to the JTAG target, and operate from a 1.2volt to 3.3volt target supply.

You must connect the target power supply to the buffer
The buffer is powered by the target, 1.2volts to 3.3volts only
Connect JP4 to power the target from the programmer. 3.3volts max 200mA
 The buffer is NOT 5volt compatible.

We brought the extra CPLD pins to a header. The Bus Blaster v2 can also be used as a simple CoolRunner-II CPLD development board.

Buffer logic

New buffer logic is designed using simple schematic entry, Verilog, or VHDL, and the free ISE Webpack software from Xilinx.

  • Learn more with our CPLD development tutorials

Here are two examples of buffer logic to give you an idea of how flexible the design can be.

See Bus Blaster v2 buffer clones for the current list of clones and programming instructions.

jtagkey

Bbv2-jtagkey-cpld-v11.png

The JTAGkey is probably the most commonly used buffer configuration among FT2232-based JTAG programmers. It is compatible with OpenOCD, urJTAG, and more.

Program the Bus Blaster 2 with this buffer and it will work with most applications that support JTAGkey type programmers.

KT-link

Bbv2-ktlink-v1.png

OpenOCD and urJTAG will soon support new SWD and SWV JTAG protocols via a KT-link type buffer.

Program the Bus Blaster 2 with this buffer and it can support SWD in OpenOCD and urJTAG. Special thanks to the developers of libswd for help implementing this buffer on the Bus Blaster.

Pinout

Outputs (Bus Blaster->target)
pin FT2232 pin description direction
TDIADBUS1 JTAG data in to targetoutput
TCK ADBUS0 JTAG clock in to targetoutput
TMS ADBUS3 JTAG state machine updateoutput
TRSTACBUS0 Reset outputoutput
TSRSTACBUS1 Bi-directional reset pinoutput
DGBRQACBUS4Debug request output
TDOADBUS2JTAG data out from target input
TSRST ADBUS6Bi-directional reset pin input
RTCKADBUS7 System return clock input
DGBACKACBUS5Debug acknowledge input
VTGADBUS5Voltage targetinput

PCB

File:Bus-blaster-v2-pcb-scan-490.jpg

We used the freeware version of Cadsoft Eagle to make the schematic and PCB. Download the latest designs and firmware from the project Google Code page.

Partslist

BusBlaster-v2-pcb-final.png

Click for a full size placement image.

partslist
PartQuantityValuePackage
C1-C7,C13-C2116100nFC805
C813.3uFSMC_A
C9,C10227pFC805
C11,C12,C2234.7uFSMC_A
IC11FT2232HLQFP64
IC2193C46SOIC8
IC31LD1117-3.3SOT223
IC91XC2C32A_VQ44_2VQ44
JP111X06
JP211X09
JP311X05
JP411X02
JTAG1PINHEAD_-_COPY_PINSHRD_PTH_2X10
L1,L22FB805
PWR1CHIPLED_0805
R1112K 1%R805
R211KR805
R3,R4,R5310KR805
R612.2KR805
R101470R805
USB1CON-USB-MINI-BUSB1CONN_USB_MINI-B
X1112MHz4X6

Taking it further

The reprogrammable buffer logic should keep this programmer from going obsolete. Already we were able to add Serial Wire Debug support by creating a new buffer implementation.

A minor revision in the next batch has a few minor changes:

  • Jumper JP4 moved to edge of PCB
  • LED and button connected to CPLD for demos

An eventual point revision is planned with:

  • 3.3volt over voltage protection for the CPLD
  • Serial resistors on the JTAG pins

v3 may use a 100pin CPLD to include support for SWV, another reduced pin-count JTAG protocol.

Get one!

[Bus Blaster v2 is now available for $35]. Each unit is tested with a real JTAG target before it ships.

Your purchases at Seeed Studio keep the open source project coming, we sincerely appreciate your support!

Links

License

Hardware license: CC-BY-SA