On Tuesday 12 December 2006 12:55, Bernd Jendrissek wrote: > On Tue, Dec 12, 2006 at 11:50:48AM +0200, Tomaz Solc wrote: > > I think this inconsistency is quite dangerous. > > [...] > > > Or am I missing something here? > > Now consider that there are parts like 1N1183 and 1N1183R where the only > difference is which electrode is connected to the nice big metal body. > > It's becoming increasingly clear to me that gEDA needs another level of > abstraction if we want to avoid having a symbol library consisting of > one symbol for each and every part and its variants. (And I think we > should avoid that.) > > I'd like to be able to place a DIODE symbol on my schematic and only > figure out later which PART I need. The pins should only get their > footprint numbers once one has chosen a specific orderable part with > which one wants to implement the function. I don't like the idea of > having to delete a 16C2550 PLCC from my schematic just so I can re-add a > 16C2550 TQFP. > > I wish I could show something more concrete but for now I can only do > some handwaving while I try to piece together exactly what I think I > need.
This is something I considered in abstract form over the summer. Basically, you have a library of "symbols" which you put on your schematic, and a library of "footprints", which you put on your PCB layout. A "part" is something that maps the pins on a symbol to the pins on a footprint. The part may have several variants, and may have metadata associated with it (vendor name/stock id, documentation URL, etc). So, for instance, the "STPS2L40U" part would map the pins on the "diode" symbol to the pins on the "DO-214AA" package. Similarly, there are about a million op-amps out there, and many of them have different pinouts despite being in the same package. What you want to do is to have a "op-amp" symbol with pins V+, V-, IN+, IN-, OUT and then when you've done your schematic and decided which actual parts you're going to use, create the part definitions to match. ------ EXAMPLE PART FILE (AD8615.gprt)------ ++METADATA++ description="20 MHz, Rail-to-Rail Input/Output Op-Amp" documentation=http://www.analog.com/UploadedFiles/Data_Sheets/AD8615_8616_8618.pdf ++MAP++ id=1 numslots=2 :1 OUT[0] :2 -IN[0] :3 +IN[0] :4 V- :5 +IN[1] :6 -IN[1] :7 OUT[1] :8 V+ ++PACKAGE++ footprint=MSOP8 map=1 ++PACKAGE++ footprint=SOIC8 map=1 -------------------------------------------- So: * Symbols no longer use "pinnumber" or "pinseq" attributes. * As instantiated, no part is associated. Attempting to netlist or select slot fails with an error, unless the symbol has "graphical=1". * A part should be selected. In this case, the part would be "AD8616". This is still not enough to specify the part fully. * Now gschem will have read "AD8616.gprt", and the user can select a specific footprint. Having done so, gschem will now allow the user to select slots. * Combination of symbols by refdes still works, except that all symbols thus combined must have the same part/footprint associated. Comments? This is far too much work to ever get implemented, but I think that it solves the problem. Peter -- Fisher Society committee http://tinyurl.com/o39w2 CUSBC novices, match and league secretary http://tinyurl.com/mwrc9 CU Spaceflight http://tinyurl.com/ognu2 v3sw6YChw7$ln3pr6$ck3ma8u7+Lw3+2m0l7Ci6e4+8t4Gb8en6g6Pa2Xs5Mr4p4 hackerkey.com peter-b.co.uk
pgpfiu0QUZcwK.pgp
Description: PGP signature
_______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
