Revision as of 01:47, 16 September 2011

Contents

Background

I had been curious about JTAG ever since I started experimenting with Didj. I had wondered about whether it could be used to investigate our Pollux-based devices.

As we all progressed with our experimentation, Moogle identified the JTAG pads on Didj, and then bcav added a wiki entry on how to use the JTAG port to debug a bootloader on Didj with OpenOCD (Open On-Chip Debugger). We later happily discovered that JTAG pads are clearly labeled on the Leapster Explorer mainboard (in my book, its a Big Win whenever a manufacturer acknowleges our Fundamental Rights!)

I had JTAG experimentation on my list-of-things-to-try for a while, but I didnt want to spend $72 to buy the JTAG dongle bcav used in the wiki entry. (I did have a home-made wiggler cable that I hacked together for use with WRT routers, but I wasn't confident enough that it would fit the bill for this use case. Plus the speed over a parallel port was not great)

Upon learning that that the ftdi2232 chip could be used to bitbang a JTAG connection and that the same part powers many USB-based JTAG cables, I purchased a $30 breakout board that was based on that chip - DLP Design DLP-USB1232H (datasheet).

What follows are the steps I used to make this breakout work with Didj, LX, and the Pollux-based eGo netbooks.

Connecting

Didj JTAG pads

Didj nSRST pad on opposite side of mainboard from JTAG pads

Leapster Explorer JTAG pads

LeapPad Explorer JTAG pads

Augen eGo 730-4 front JTAG pads

Augen eGo 730-4 back JTAG pads

The table below illustrates how to connect the DLP-USB1232H device pins to Didj, LX and the eGo.
The pinout on the breakout is in the DLP-USB1232H datasheet (pinout is on page 4 and page 7).

Pin type

DLP-USB1232H pin #

Didj Test Pad label

LX Test Pad label

eGo photo label

TRST

17

TP9

RST

nTRST

TDI

16

TP10

TDI

TDI

TMS

5

TP11

TMS

TMS

TCK

18

TP12

TCK

TCK

TDO

2

TP13

TDO

TDO

(S)RST

13

TP103 [1]

nRST

nPORST

GND

Either 1 or 10

TP14

GND

use any GND

IMPORTANT: You also need to connect pins 8 and 9 together on the DLP-USB1232H module in order to configure it to be powered via USB.

[1] As an alternative to TP103, either side of R43 (jumper/0 Ohms) or the right pad of R45 (unpopulated) works. This is near the other test pads.

Also, the Didj or LX must be powered on.

Software Installation

Install OpenOCD (examples are Ubuntu Lucid)

$ sudo apt-get install openocd

Place this configuration file - name it dlp-usb1232h.cfg - into your openocd /usr/share/openocd/scripts/interfaces directory: