I’ve learned quite a lot from searching these forums, but this is a question I don’t think I fully understand the answer to yet.
I am working on a four-layer PCB project using through-hole components. This summer I designed my first ever PCB (with KiCAD) and have successfully been building complexity from there.
On my newest project, I have a ROM socket. I’d like to support either a 28 or 32-pin ROM package. These ROMs use the standard JEDEC pin-out, so both can be supported in the same socket with only two jumpers.
I have a hierarchical layer that I’ve created for the ROM component, so I have a full page worth of schematic to play with. I can easily drop both components, draw the jumpers exactly how they’d be, and wire them both up. That seems to be the best “documentation” of the design. But it obviously doesn’t lead to a successful PCB design.
I need to have only one footprint. I’ve seen in an older thread (Managing alternative component footprints) the suggestion of drawing my own symbol, which I could definitely do and assign a 32 pin footprint, but then I’m not sure how I’d make the jumpers happen.
Your component on the pcb is the socket, not the chip. You should put a symbol for the socket on the board and wire it up on pcb. For documentation you can add other symbols for chips if you like and prepend their references with # so that they won’t be transferred to pcb.
I’ve been in the same situation where I designed a chip position to use either the 27 EPROMs or the 28 EEPROMs. What I did was choose the symbol for one option and make sure that the jumper positions for the other option work. Naturally ERC will be of less use so check carefully. And because of the jumpers you’ll probably need a PWR_FLAG or two to silence some warnings.
If it’s about different sizes of ROM (for example 28 pin or 32 pin devices) then use the footprint for the 32 pin chip, because otherwise it would not fit.
The jumpers have their own footprints. You can even stack different sorts of jumpers on each other. For example 2.54mm THT jumper footprints and “solder jumpers”. That way you can use the square pins with actual jumpers for development and a small drop of solder for a more permanent solution. For larger production runs, a more automated approach is wanted, such as using “0 Ohm” resistors or a default jumper position with bridged solder jumpers.
At the moment KiCad has no build in methods for choosing between such configurations. So you have to make notes on the schematic or other documentation of what the jumper settings must be for different hardware configurations. You also have to handle the BOM for the differences manually. It can help in this regard if the part that appears in the BOM is something that does not exist, so a re-run of the BOM tools can never result in the wrong parts being ordered.