Hi Simone,

Are you thinking of targeting some specific CPLDs? My advice is you might be
better off implementing the actual programming protocol, if they support
something else. I have a USB JTAG programmer using urJTAG that operates in a
similar fashion (see
https://www.assembla.com/spaces/bora/wiki/Quick_Start_Guide). It definitely
works, but is almost slow enough to be frustrating (30-60 seconds to
program).

All my code is posted (somewhere) along with tutorials, which might help you
if you do want to proceed with the urJTAG setup.

Regards,

 -Colin O'Flynn


-----Original Message-----
From: Simone Baratta [mailto:cont...@gmail.com] 
Sent: October 15, 2014 7:31 AM
To: urjtag-development@lists.sourceforge.net
Subject: [UrJTAG-dev] Using uC as a JTAG adapter

Good morning to all,
As a hobbist CPLD user, I'm trying to implement a low-cost (and obviously,
low-speed) jtag cable using commercial development boards (i.e. MSP430
launchpad, Stellaris launchpad, arduino-*); the purpose of this is having a
firmware which beginner cpld users can flash onto their random arduino-like
board and use to program their CPLD, although in a quite slow way, to
understand the principles before needing to buy a commercial programmer
(which could never be the case, if they use JTAG once a year). As a first
milestone, I would like to be able to play SVF files generated by FPGA
development environments.

I think urJTAG could work well for this purpose, as I understand it has a
layered structure and so the cable level is independent from the "high
level" jtag interpreter.

Now, the question is: suppose I have a firmware which receives (via
USB) pin states for the TCK, TMS, TRST and TDI pins in a parport fashion,
and gives back the TDO state; what should i do to use this simple device as
a JTAG adapter with urJTAG?

Looking at the source, I suppose I should code a new "cable", which would
declare the 11 functions described at http://urjtag.org/book/_drivers.html
and then record them into a cable_driver_t struct, and insert it into the
*cable_drivers array into tap/cable.c.Is this the correct way to encode a
custom jtag device into the software? Or should I implement something
different too? (e.g. I see there are "link" drivers, which I suppose to be
low-level drivers opening the transaction port)

Also, taking as reference tap/cable/byteblaster.c, I see not all of the
functions are implemented, but only the most hardware-related ones. Is this
feasible?


Thank you for your attention and sorry for being this long.

--
Simone Baratta

----------------------------------------------------------------------------
--
_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development


------------------------------------------------------------------------------
_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to