Dangerous Prototypes

Dangerous Prototypes => Bus Blaster JTAG debugger => Topic started by: Gridstop on March 23, 2014, 09:27:53 pm

Title: JTAG circulate/echo operation?
Post by: Gridstop on March 23, 2014, 09:27:53 pm
I'm investigating using my bus blaster to replace an old parallel-port JTAG setup. (It's for an old proprietary ASIC)

For the most part, everything seems fine, the original authors of the test software were nice enough to carefully contain everything in three main routines:
scan_ir (just what you think it is)
scan_dr (also what you think it is)

But then there is a 'circulate_dr' function, that's a scan_dr read-only, but it's setup so just before each clock, it echos the input to the output. I guess that would allow the jtag to cycle the entire chain through and put all the original data back in the shift registers when reading. This doesn't seem to be standard, from what I can tell, but it's used repeatedly for this device.

The FT2232 doesn't do this echo on a normal JTAG_Read (using FTDI's FTCJTAG.dll). Perhaps there's a way to get it to do it directly via the D2XX.dlls and lower level MPSSE stuff?

I could easily fake this with the CPLD, by having a GPIO set a mux that sources TDI from either the FT2232 or an echo of the TDO input. That's one thing awsome about this setup. But I'm wondering if anyone else has seen anything like this or if it can be done directly in the FT2232. At the end of the day, it may be easiest to go with the XDS100, which has the same capability and would be easy to sell to management, I suppose. I'm just curious if anyone has ever seen anything like this.

Thanks!

( ! ) Fatal error: Uncaught exception 'Elk_Exception' with message 'Please try again. If you come back to this error screen, report the error to an administrator.' in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
( ! ) Elk_Exception: Please try again. If you come back to this error screen, report the error to an administrator. in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
Call Stack
#TimeMemoryFunctionLocation
10.00832034544session_write_close ( )...(null):0
20.00862166120ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.00862166896Database_MySQL->query( ).../DatabaseHandler.php:119
40.05262305616Database_MySQL->error( ).../Db-mysql.class.php:273