Bus Blaster v1 design
From DP
High-speed JTAG debugger, flash ROM programmer.
- compatible with OpenOCD and urJTAG as 'jtagkey'
- 3.3volt-1.2volt IO buffer
- open source
You can get a [Bus Blaster v1 for $30].
Read about the design below.
Contents |
Overview
The Bus Blaster is used to program and debug devices with a JTAG interface. It has a Amontec JTAGkey-compatible interface that supported by the most popular open source JTAG apps.
This project was developed in a public forum, and progress was documented on a [Ricet:_Bus_Blaster_v1|wiki]].
Hardware
Click for a full size schematic image. Schematic and PCB were designed with the freeware version of [www.cadsoft.de Cadsoft Eagle], download the latest project files from our Google Code project page.
FT2232H
- Chip, crystal, reset, power supply
- See FT2232H breakout board documentation
Buffer interface
The four main JTAG IO pins () are fixed on the FT2232.
The buffer control pins vary by programmer type. We wanted the Bus Blaster to work 'out of the box', so we make our buffer interface compatible with the Amontec JTAGkey.
We reverse engineered the JTAGkey connections from the OpenOCD source code and the Openmoko debug board v3 schematics.
Outputs
| pin | IO pin | FT2232 pin | description | Enable pin | notes |
|---|---|---|---|---|---|
| TDI | Data in to target | JTAG_BUF_EN | Shared output enable | ||
| TCK | Clock | JTAG_BUF_EN | Shared output enable | ||
| TMS | Machine state | JTAG_BUF_EN | Shared output enable | ||
| TSRST | TSRST_BUF_EN | Individual output enable, connected to TSRST input | |||
| TRST | TRST_BUF_EN | Individual output enable | |||
| DGBRQ | Debug request |
This buffer is difficult to choose because it requires three different output enables. A chip like the 74LVC8T245 (1.6volt to 5volts) has a single output enable for 8bits - we'd need three and 19 pins would be wasted.
The 74xx4T245 commonly used on other FT2232 programmers to give 1.6-5volt output won't work for us because the new FT2232H is 3.3volts instead of 5volts.
We used the SN74AVC4T245, which gives 1.2volt-3.6volt output range. Ideally, a 5volt part can be found in the future.
- 1.2-3.6volt output with SN74AVC4T245
Inputs
| pin | IO pin | FT2232 pin | description | notes |
|---|---|---|---|---|
| TDO | Data out from target | |||
| TSRST | Connected to TSRST output | |||
| RTCK | Return clock | For adaptive clocking | ||
| DGBACK | Debug acknowledge | |||
| VTG | Voltage target detect | Simple transistor with pullup resistor, inverts signal |
Two interchangable buffers:
- 1.2-3.6 volt range with SN74AVC2T45
- 1.6-5.0 volt range with SN74LVC2T45
PCB
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.
- PCB and placement notes
- soldering advise
Partslist
Click for a full size placement image.
| heading | heading |
|---|---|
| cell | cell |
| cell | cell |
Firmware
The firmware is written in C and compiled with the free Microchip C18 compiler. You can download the latest files from our Google Code project page.
- Operating modes
- extra software required
We used the Microchip USB stack to run the 18F2550 as a virtual serial port. Microchip's code is open but not redistributable. If you want to compile the source, download the stack from Microchip, then drag the source code into the install directory. See the detailed instructions in the PIC compiler how-to.
.inf installation
The virtual serial port (CDC) is an open standard, it should work on any modern operating system.
You don't need a driver, but you will need a .inf file to tell Windows how to use the device. A suitable .inf is included in the project archive.
Commands
Bootloader
Source and license
Taking it further
Here's some ideas for the future:
- List
We'll post the most recent firmware updates on our blog. You can also join the discussion in the [forum].
Get one!
You can [get one for $00], including worldwide shipping.
Your purchases at Seeed Studio keep the open source project coming, we sincerely appreciate your support!

