Ricet: Bus Blaster v1
From DP
| Ricet: Bus Blaster v1 | |
|---|---|
| Codename | Ricet |
| Status | Test production |
| Development | development forum |
| ID # | {{{id}}} |
High-speed JTAG debugger, flashrom programmer.
Contents |
Development
Goals
- High-speed programmer debugger for JTAG and ROM chips
Software
Prototypes
JTAG pin connections
Pin connection compatibility
| JTAG signal | Direction | Bus Blaster | Amontec JTAGkey | Openmoko debug | OpenOCDLink |
|---|---|---|---|---|---|
| TDI | out | ADBUS1 | ADBUS1 | ADBUS1 | |
| TMS | out | ADBUS3 | ADBUS3 | ADBUS3 | |
| TCK | out | ADBUS0 | ADBUS0 | ADBUS0 | |
| TDO | in | ADBUS2 | ADBUS2 | ADBUS2 | |
| JTAG BUF EN | out | ADBUS4 | ADBUS4 | n/a | |
| nTRST | out | ACBUS0 | ACBUS0 | ACBUS1 | |
| nTRST_BUF_EN | out | ACBUS2 | ACBUS2 | ACBUS0 | |
| nSRST | out | ACBUS1 | ACBUS1 | ACBUS3 | |
| nSRST_BUF_EN | out | ACBUS3 | ACBUS3 | ACBUS2 | |
| nSRST | in | ADBUS6 | ADBUS6 | n/a | |
| RTCK | in | ADBUS7 | n/a (ADBUS7 reserved input) | connected to JTAG pin 13 | |
| DBGACK | in | ACBUS5 | n/a | n/a | |
| DBGRQ | out | ACBUS4 | n/a | n/a | |
| Target present(inverted) | in | ADBUS5 | ADBUS5 | n/a |
BOLD signals are fixed FT2232 pins.
JTAGkey buffer connections:
- nTRST = 0x01; (ACBUS0)
- nTRSTnOE = 0x4; (ACBUS2)
- nSRST = 0x02; (ACBUS1)
- nSRSTnOE = 0x08; (ACBUS3)
References
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
Resources
Reverse engineering links
Schematic
PCB
JTAG pinout
Partlist
| Part | Quantity | Value | Package |
|---|---|---|---|
| C1 | 1 | 100nF | C805 |
| C2 | 1 | 100nF | C805 |
| C3 | 1 | 100nF | C805 |
| C4 | 1 | 100nF | C805 |
| C5 | 1 | 100nF | C805 |
| C6 | 1 | 100nF | C805 |
| C7 | 1 | 100nF | C805 |
| C8 | 1 | 3.3uF | SMC_A |
| C9 | 1 | 27pF | C805 |
| C10 | 1 | 27pF | C805 |
| C11 | 1 | 4.7uF | SMC_A |
| C12 | 1 | 4.7uF | SMC_A |
| C13 | 1 | 100nF | C805 |
| C14 | 1 | 100nF | C805 |
| C15 | 1 | 100nF | C805 |
| C16 | 1 | 100nF | C805 |
| C17 | 1 | 100nF | C805 |
| C18 | 1 | 100nF | C805 |
| C19 | 1 | 100nF | C805 |
| C20 | 1 | 100nF | C805 |
| C21 | 1 | 100nF | C805 |
| C22 | 1 | 4.7uF | SMC_A |
| C25 | 1 | 100nF | C805 |
| IC1 | 1 | FT2232H | LQFP64 |
| IC2 | 1 | 93C46 | SOIC8 |
| IC3 | 1 | LD1117-3.3 | SOT223 |
| IC4 | 1 | SN74AVC4T245 | TSSOP16 |
| IC5 | 1 | SN74AVC4T245 | TSSOP16 |
| IC6 | 1 | SN74LVC2T45DCTR | DCT_R_PDSO_G8 |
| IC7 | 1 | SN74LVC2T45DCTR | DCT_R_PDSO_G8 |
| IC8 | 1 | SN74LVC2T45DCTR | DCT_R_PDSO_G8 |
| JTAG | 1 | 2520- | PAK100/2500-20 |
| L1 | 1 | FB805 | |
| L2 | 1 | FB805 | |
| LED1 | 1 | CHIPLED_0805 | |
| LED2 | 1 | CHIPLED_0805 | |
| PROG | 1 | 1X05 | |
| R1 | 1 | 12K | R805 |
| R2 | 1 | 1K | R805 |
| R3 | 1 | 10K | R805 |
| R4 | 1 | 10K | R805 |
| R5 | 1 | 10K | R805 |
| R6 | 1 | 2.2K | R805 |
| R7 | 1 | 10K | R805 |
| R8 | 1 | 100k | R805 |
| R9 | 1 | 1k | R805 |
| R10 | 1 | 470 | R805 |
| R11 | 1 | 470 | R805 |
| T1 | 1 | SOT23-BEC | |
| USB | 1 | MINI-USB | MINI-USBB |
| X1 | 1 | CRYSTAL_212M_ | 4X6 |
Testing
busblaster.cfg file for OpenOCD
# # Bus Blaster # # http://dangerousprototypes.com/docs/Bus_Blaster # interface ft2232 ft2232_device_desc "Dual RS232-HS" ft2232_layout jtagkey ft2232_vid_pid 0x0403 0x6010
openocd -f busblaster.cfg
Example usage.
openocd.cfg for OpenOCD
source [find busblaster.cfg] jtag_khz 2000
openocd -f openocd.cfg
Example usage (required busblaster.cfg).

