Custom JTAGKey/OpenOCD JTAG problem/testing

Hi all,

I recently bought a new laptop so decided to make a new wiggler that

for USB except I am having some trouble with it. Hopefully someone can help me as I am starting to run out of ideas.

The PCB uses the jtagkey FT2232 pinout except I added

RX/TX pins to the header from channel A. I am using the jtagkey driver that comes with openocd.

I keep getting communication failure, and using an oscilloscope , the reset signals from the FT2232L IC don’t seem to have the right states. (nTRST remains high and its enable

low (enabled), nSRST low and its enable is always high).

TCK and TMS seem to have some signals on them (using 10ms timebase), TDI stays about low, TDO seem to be high.

I am trying to program an AT91SAM7A3 that I know is working at least

because it currently has usb code in it which enumerates when i plug it

into a pc. The problem appears to be that signals are not coming out of

the ft2232 properly.

I get the following output from R204 openocd:

Info: openocd.c:93 main(): Open On-Chip Debugger (2007-09-05 09:00

CEST)

Debug: jtag.c:1407 jtag_init(): -

Debug: ft2232.c:1296 ft2232_init_ftd2xx(): ‘ft2232’ interface using

FTD2XX with ‘jtagkey’ layout (0403:cff8)

Debug: ft2232.c:1385 ft2232_init_ftd2xx(): current latency timer: 2

Debug: ft2232.c:1651 jtagkey_init(): 80 08 1b

Debug: ft2232.c:1709 jtagkey_init(): 82 09 0f

Debug: ft2232.c:253 ft2232_speed(): 86 00 00

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1253 jtag_examine_chain(): JTAG communication failure,

check connection, JTAG interface, target power etc.

Error: jtag.c:1440 jtag_init(): trying to validate configured JTAG

chain anyway…

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1346 jtag_validate_chain(): Error validating JTAG scan

chain, IR mismatch, scan returned 0x3f

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1346 jtag_validate_chain(): Error validating JTAG scan

chain, IR mismatch, scan returned 0x3f

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1346 jtag_validate_chain(): Error validating JTAG scan

chain, IR mismatch, scan returned 0x3f

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1346 jtag_validate_chain(): Error validating JTAG scan

chain, IR mismatch, scan returned 0x3f

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1346 jtag_validate_chain(): Error validating JTAG scan

chain, IR mismatch, scan returned 0x3f

Debug: jtag.c:295 jtag_call_event_callbacks(): jtag event: TRST

asserted

Debug: jtag.c:1197 jtag_reset_callback(): -

Error: jtag.c:1346 jtag_validate_chain(): Error validating JTAG scan

chain, IR mismatch, scan returned 0x3f

Error: jtag.c:1448 jtag_init(): Could not validate JTAG chain, exit

and my script is:

telnet_port 4444

gdb_port 3333

#interface

interface ft2232

ft2232_device_desc “Amontec JTAGKey A”

ft2232_layout “jtagkey”

ft2232_vid_pid 0x0403 0xcff8

jtag_speed 100

jtag_nsrst_delay 2000

jtag_ntrst_delay 2000

#use combined on interfaces or targets that can’t set TRST/SRST

separately

reset_config srst_only srst_pulls_trst

#jtag scan chain

#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)

jtag_device 4 0x1 0xf 0xe

#target configuration

daemon_startup reset

#target

#target arm7tdmi

target arm7tdmi little run_and_init 0 arm7tdmi

run_and_halt_time 0 30

flash-options AT91

target_script 0 reset openocd_at91sam7a3_flash.script

working_area 0 0x00200000 0x4000 nobackup

flash bank at91sam7 0 0 0 0 0

I’ve tried a lot of changes in the script, and even tried some other

drivers, and openocd R141, but still get the same communication failure.

Has anyone made a FT2232 wiggler that can help me as I am starting to

run out of ideas?

Update:

I am still yet to find what is wrong with this programmer, however seeing as the wrong signals appear to be coming from the chip, and the chip otherwise seems to be fine, that perhaps there is part of the FT2232 that isn’t working.

The only way I can think of checking this to is to write some PC test code to sequentially or otherwise make each pin of the FT2232 go high/low, so that I can test that the pins are working properly. Can anyone help me get started writing a test program for the FT2232 chip so that I can turn individual outputs on/off or point me to an example? (I have searched high an low on the web but no-one seems to have written such a program)

Any hints appreciated. :roll: