You are not logged in.
I've been ranting on JTAG in one of the dev forums and thought I'd share some of the trials and tribulations here in a public space. This isn't a real MOD yet, but something like this would be a nice one.
A few days ago I finished building a parallel port JTAG adapter based on this Wiggler schematic...
The Wiggler is a commercial JTAG adapter sold by Macraigor Systems for an outrageous price. It's a very popular design and many people have built their own clone of this device. Google for 'wiggler' and 'jtag' and you'll get some idea of just how popular they really are.
I figured that if I just winged it and started soldering the parts together without understanding where everything had to go on the board I would run into trouble. So I first spent about 3 days with Cadsoft Eagle to (a) get some idea of how I might arrange the components on the circuit board and (b) just to play with Eagle. My board is not a PCB. It's just a small un-plated phenolic perf board with a 0.1" (2.54 mm) grid of holes in it I picked up for about $3 USD.
With Eagle I laid out the parts from the schematic and came up with something like this (click for larger version).
Then I placed the components on the circuit board in Eagle and routed the traces (wires) to the different components. The result was this layout which I tried to follow as best I could. The freeware version of Cadsoft Eagle is limited to a small board like this, and this project is simple enough so that it's almost perfect for a first-time Eagle project.
I did not connect pins 15 or 17 of the IC which are unused inputs, but they appear in the schematic and on the layout because Eagle forces you to account for all input pins. No problem as long as pins 1, 10 and 19 are grounded. There are no connections to pins 3, 5 or 7 either (and Eagle doesn't force you to account for these unused outputs). Also, don't worry about PC_VCC coming off of pin 9 (D7) on the DSUB connector. Ignore it. If you connect it to anything you might damage the circuit.
The transistor I used is a basic NPN small signal transistor (cost: 8 cents) and the buffer chip is a Fairchild Fast Bipolar Octal Line Buffer (cost: 0.86 USD). I read that this chip, the 74F244, was one of the best choices for this application. I figured that guy knows what he's doing better than I do so I went with it. The most expensive part in the whole order was the 14-wire ribbon cable at $2.73 USD.
You might notice that the guy who recommended the 74F244 says the assembly is the easiest part of the project. Not if you don't have an etched PCB! It was the hardest and most tedious part of the project for me. Others might find that the Eagle learning curve is a higher hill to climb, but I've worked with CAD programs before so a lot of it was familiar to me right from the start. Eagle does have it's weak points, however, that's for sure.
I had to get creative with the DSUB-25 male connector attachment since there's not really a standard way to attach a plug like this to the edge of a board! I could have used a right-angle connector but (a) the holes don't line up with a 2.54 mm grid and (b) it's 10x the cost of the one I used. The pretty solid ground line between pins 18 and 25 on the underside of the board provides decent support there and I weaved the resistor leads going to the pins on top down through the holes and back up again before soldering them in place. The result is fairly sturdy and it doesn't wobble around or feel loose. It's basically stitched onto the board using the resistor leads as "thread"; a very solid attachment.
I took my time and wired up the perf board very carefully. I stuck pretty close to the layout I generated in Eagle. Here are a few pics of the completed project.
The actual connections to the JTAG header pins are different than what's in the Eagle layout. I had no choice, really, since I was running out of board real estate. I routed 2 of the signal lines up and over the ground strap to the far side of the header and used some insulation from stripped wires right on the resistor leads to make sure there were no short circuits. I think it worked out well.
Here's the bottom of the board. There are a few connections here that could easily win a Worst Solder Joint In The World Contest.
Obviously this device could be made a lot smaller if you had an etched PCB. It would be faster and a lot easier to assemble as well. If you substituted a couple of 100 ohm resistor networks (like the 2200 ohm one) it could be a lot smaller. In fact, I ordered those for this project as well as the loose resistors but in the end I needed the long discrete resistor leads to (a) help anchor the DSUB-25 connector and (b) get the signals to and from the JTAG header. Those considerations would not be a factor with a PCB.
All in all I only made 2 mistakes that made me undo some of my work. I used a wrong resistor value and had to replace it, and my hand got shaky with the soldering iron at one point and I globbed about 4 connector pins together. A handy solder sucker cleaned that up fast. A good magnifying glass or lens is an absolute must. I detected 3 shorts and 2 open solder joints with it during inspection. You don't want those to spoil your hard work. Oh, and I put one of the 100 ohm resistors in backwards so it's colored stripes don't match the other ones, but that is meaningless for the circuit.
And here is the adapter connected to my H2WR54G router.
Much to my surprise this cable adapter actually worked the very first time I tried it . You can see that the board has a lot of spare room on it. I might add an RS-232 serial port level shifter circuit there in the future. (And my MAX3233 free sample arrived today!)
One thing to note is that both the schematic and the board layout are missing the 3.3 volts Vcc. At the very last minute when I was double-checking all my connections I found out that on the Hawking H2WR54G router there is 3.3 volts available on pin 14 of the JTAG header. I was surprised to find this since I had observed the router PCB previously and to the naked eye it looks like there is nothing on pin 14. Oh well, my voltmeter says different. You can see the wire in the top picture of the completed board. It's the crooked jumper wire near the top. Some day I'll fix it to be neater. But for now, it works.
It seems to respond well to commands from a couple of different software packages but I wish there was a definitive test program or procedure that would let me verify that it is indeed working 100%. Especially the transistor circuit for the SRST_N signal.
Total time to construct: 3 days with Eagle + 2 days wiring and soldering and testing.
Total cost to construct: About $15 USD. More, really, because I ordered a few extra parts just in case.
Last edited by HH (2006-03-26 03:39:27)
i have been trying to look at the diagram found on hawks post, im not sure if anyone else is having trouble but im colour blind and im not 100% sure i have matched all the solder points up correctly so heres a picture of what im hoping is correct
Last edited by droven4567 (2010-11-11 11:12:26)