If you had a dedicated PCB, then you could possibly use some pogo pins.
http://www.sparkfun.com/products/9174
Note that I've never used them before.
If you had a dedicated PCB, then you could possibly use some pogo pins.
http://www.sparkfun.com/products/9174
Note that I've never used them before.
structuredsound,
It might be trivial for you, but I am more of a software person, and after much work still don't have a working JTAG adapter. So I think it will save some people some time.
soundcyst, gbulmer,
I re-routed the board, did a solid copper pour on both sides, updated the board PNG, and committed back to my GitHub fork of the maple hardware.
I looked at the gerbers of the board, and these look much better.
I also emailed Laen to see if I could replace the .brd file I sent him with the new one. I haven't yet sent a .brd file - so check the new one out if you want. If you have more suggestions, let me know!
If Laen doesn't let me do the replace, I'll just submit the new boards into the run.
adamfeuer - looking good :-)
I think there may be an error.
I would expect the bottom row of pins, which are all ground (the net list is GND), to be connected to the copper pour polygons. Instead, those pins are all isolated from both copper pours.
A copper pour polygon is just a track, it gets given a unique autogenerated name when it is created (e.g. N$23). To tell Eagle to make it part of the GND net, it's name (set with the NAME command) needs to be set to GND. When that is correct, all of the bottom row GND pins, and every other GND pin and track, will be connected into the pour.
If you switch off one layer (say top), it will be easier to select the polygon, and very clear if the pins become connected. Then switch off the other layer, and NAME the other polygon.
gbulmer's right, and looking back at my previous post, i didn't really write about how to finish up!
so, you've hidden your vcc and ground airwires, you've routed everything, then you can use "rats vcc" to show just the vcc, and route it using thick traces (so far so good with what you have).
but ground is different. if you're planning to do a ground pour, you don't actually want to route the ground signals by hand, you just want to place the pour and name it appropriately. eagle will automatically fill in the connections quite nicely.
you still want to show the airwires though, because if you've drawn your traces such that there's an isolated area that should be connected to ground but isn't, you'll want to know about it. if this happens, the way to resolve the problem isn't routing, it's by using a via. so use the command "via 'gnd'" and then any via you place will automatically be named gnd.
use the rats command again to redraw the poly. you may also wish to use "rip 'gnd'" before you embark on this process to rip up all of your existing ground traces.
but other than that, yeah, looks a LOT better than the previous rev. nice work!
Well, that solves my question of whether pull-up resistors are needed (they are not).
gbulmer, soundcyst,
I will re-do the pours with one as a GND plane, and see if I also need to place vias.
Laen says I can resubmit the board design up to the deadline, so we are good on that. I will work on it a bit later this evening and let you know when I commit to my git repo.
Ok, I re-did the copper pours. Top copper pour is now GND, bottom is unconnected. I could connect that to VCC, but wasn't sure if that is best practice. I also moved a few traces to the bottom of the board to declutter things a bit.
https://github.com/adamfeuer/maple/tree/master/jtagadapter
If you have improvements let me know. Otherwise I'll submit this version on Friday or Saturday.
Maybe I missed it, but could you add a 10 to 20 pin on to this board? So when the new boards come out a 20 pin adapter will work?
tcmichals,
I will put the 10 pin connector on the next version. I want to keep this version stable since it the deadline is this weekend and I don't have that much time to work on it.
I want to make sure there is an adapter that works for the future Maples - I am using this first run to learn. The next rev will include that learning.
Good news!
I got the Olimex ARM-USB-OCD today. It appears to work with the breadboarded circuit I made from Okie's schematic - the Open OCD correctly recognizes the Maple via the JTAG adapter. What is different between the ARM-USB-TINY and the ARM-USB-OCD I do not yet know.
I haven't tried actually debugging yet... I will try that later.
I will also try removing the pullup/pulldown resistors - if that works, and if I have time on Saturday, I will modify the board layout before resubmitting it to Dorkbot PDX.
appreciate the effort adamfeuer, especially willing to play guinea pig. I tip my hat to you.
-> Larry
Debugging works using Olimex ARM-USB-OCD. I tested with gdbtui, and also via Eclipse C/C++ Helios with the Zylin plugin. I am on Ubuntu 10.04 LTS. I installed OpenOCD 0.4.0 from source. I installed the Codesourcery ARM toolchain from here:
http://static.leaflabs.com/pub/codesourcery/
The direct URL for linux is:
http://static.leaflabs.com/pub/codesourcery/arm-2009q3-68-arm-none-eabi-toolchain-linux32.tar.gz
installed Eclipse C/C++ Helios from here:
http://www.eclipse.org/downloads/
I installed the Zylin remote debugger Eclipse plugin using the instructions here:
http://opensource.zylin.com/embeddedcdt.html
I configured OpenOCD and Zylin using this guide:
Then I used Eclipse to launch OpenOCD, and started the debugger using a Debug Configuration. I can set breakpoints and start and stop the blinky.cpp program!
Here is a screenshot of blinky.cpp (main.cpp) stopped at a breakpoint: http://imgur.com/9CZ6q
There seems to be something funky going on with the interrupts as single-stepping lands you in the USB ISR, but you can run to breakpoints just fine. I will see if I can figure out what is wrong tomorrow. I will also see about posting a complete how-to guide once I have a better idea of how it all hangs together.
I tested the JTAG adapter circuit without pullup resistors - it works fine for me. The circuit now follows the one in the STM32 Reference Manual. I updated the Eagle schematic, here's a PNG:
https://github.com/adamfeuer/maple/raw/master/jtagadapter/maple-jtagadapter.png
I also re-routed the board, using very wide traces, and made the outline a bit smaller. You can see the Eagle files here:
https://github.com/adamfeuer/maple/tree/master/jtagadapter
If you have improvements, let me know. Otherwise, I will submit this updated board to Laen tomorrow for the Dec. 13 run.
Adam - connect both copper pours. They can both be ground.
On the .png, one end of R3 looks like it is not connected, but that could be the way it's been drawn.
gbulmer,
Ok, both top and bottom polygons are now ground. Regarding one end of R3 looking like it's not connected - I think this is because of the way Eagle does the image export. In Eagle and on the gerbers it looks connected. Here's screenshots of the top and bottom gerbers:
Top: http://imgur.com/MHltU
Bottom: http://imgur.com/2pzzB
I sent this off to Laen - we'll see how they come out!
You must log in to post.