I’ve joined up as a contributor to gedasymbols.org. This great resource, run by DJ Delorie, hosts schematic symbols for gschem and footprints for gEDA’s layout software, PCB. A search engine helps locate symbols and footprints, and gedasymbols includes links to other libraries off-site, such as Dan Luciani’s extensive footprint library. Gedasymbols.org has been hugely useful every time I do a design in gschem or PCB, and I’m happy to have something I can contribute back.
Gedasymbols has the symbols and footprints for the A3PN250 FPGA and AK5388 audio ADC breakout boards, plus symbols from an MSP430 project that I haven’t posted here yet.
As for other hacking recently, I’ve done parts placement for the AK5388 board but haven’t started routing it. I also need to make a better feedthrough panel for my antenna. I’ll have more to say about those two projects in a future post.
I made a few changes from last week’s version. One change was to invert the dit and dah pins. Although high-true logic is convenient within the keyer module, it seems like a good idea to have the actual paddles grounded, so the inputs had to be low-true. The physical constraints file enables the built-in pull-up resistors on the dit and dah pins.
There comes a point in any project when one has to find out if it works, but first, there is the “smoke test”: Turn on the power and see if anything goes up in smoke. I smoke tested the A3PN250 FPGA breakout board this weekend, and it passed, or at least it failed to emit smoke. In any event, no smoke was emitted and the board survived. In fact, the board works. I talked to the board with a FlashPro4 programming pod and my rewired JTAG cable. The FPGA passed the pod’s signal-integrity check and identified itself correctly, so it is certainly alive.
Firstly, I built an JTAG adapter cable to work around a wiring error on the PCB. When I laid out the board, I accidentally numbered the pins on the JTAG connector DIP-style instead of ribbon cable style. That meant that all the pins except for pin 1 were wired wrong. After thinking a bit about the options, which included scrapping the board and starting over, or skywiring in corrected wiring for the connector, I decided the cleanest solution was to make a custom JTAG cable that moved the pins around where they belong. I’d seen other cables built this way. I asked myself, “How hard could it be?” Continue reading Making progress on the A3PN250 FPGA breakout…
I’ve recovered from the busy last few months and that means I can spend a little more time at my workbench. The first of the A3PN250 (ProASIC3 nano) FPGA breakout boards is built. Here it is, in all its glory:
After a busy week spent traveling for work and a morning digging out from a surprise snowstorm, I had a great weekend with my family. It was Sunday night before I heated up the soldering iron and got down to business building the ProASIC 3 nano FPGA board.
I started with the toughest component, the FPGA. Its central location and low height means that I will have an easier time accessing it before other components are mounted. That is not likely to be a big problem for this board, with plenty of space around the chip, but I would still prefer not to have to work around the filter capacitors if I can avoid it. On the other hand, its 100 pins and 0.5 mm pin pitch makes it far and away the most difficult soldering job on the PCB.
The goals for this layout constrained it to be a nearly single-sided layout, with a ground plane on the back. That way, the board could be mounted directly on a piece of copperclad with no short circuits to ground. My budget limited me to a double-sided board, so all signal and power traces had to go on the top side.
To get to my goal of a DSP-based ham radio using an FPGA as the DSP, I first need a way to prototype with an FPGA. Available FPGAs all use modern, small packages such as QFNs, QFPs, and BGAs. I can’t imagine soldering wires directly to a hundred tiny pins, so “dead-bug” construction, with the chip upside-down on a piece of copperclad board, is out. I need a breakout PCB that holds the chip and brings out its pins to something more reasonable to work with.