[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: gEDA 1.2.0, opamp-1.sym pin numbers?



Andy Peters wrote:
> On Sep 23, 2007, at 7:40 AM, Dan McMahill wrote:
> 
>> Peter Clifton wrote:
>>> On Sat, 2007-09-22 at 20:35 +0200, Stefan Salewski wrote:
>>>> I think that opamp-1.sym will not be compatible with SOT23-5  
>>>> footprints
>>>> -- in TI datasheet of OPA656 pin 1 is output for SOT23 package.  
>>>> Maybe
>>>> opamp-1.sym is compatible with SC70-5 configuration, which I have  
>>>> newer
>>>> seen.
>>>>
>>>> Or opamp-1.sym and opamp-2.sym are only abstract representations  
>>>> of an
>>>> OpAmp, without any relationship to a concrete footprint?
>>>>
>>>> In any case, there seems to be no symbol in gEDA related to an  
>>>> ordinary
>>>> OpAmp in DIP8 (or SO8) package.
>>>>
>>>> This may look very strange for new gEDA/pcb users.
>>> There are various "heavy" symbols, such as lm741-1.sym.
>>>
>>> It is a well known problem though, the mapping between a light symbol
>>> and a real package is not something which is easily solved.
>>>
>> which is why I'm in favor of a heavy symbol generator for op-amps like
>> the one I demonstrated for bipolar transistors.  You use a small  
>> set of
>> symbols and then have a text file which is essentially a spread sheet
>> that for each actual part number (the full vendor part number  
>> including
>> package code) you give the mapping from symbol pin to the footprint  
>> pin
>> # as well as list the actual footprint.  Its pretty simple, you don't
>> have to continually wonder if you have the right footprint or right
>> pinout, and you only have to maintain a small number of graphical
>> symbols.  Adding new part number is then a snap.
>>
>> I'm more and more convinced it is the way to go.
> 
> This is one MAJOR reason to use heavy symbols.
> 
> I'd rather select a part number from a library, knowing that it  
> always has the correct footprint and vendor part number (or numbers)  
> every time, rather than go through an intermediate step to match ALL  
> parts on the schematic with the proper footprints.  That's just too  
> easy to screw up.
> 
> Sure your library ends up having lots of symbols.  That can be  
> handled with a reasonable library directory structure.  Creating,  
> say, a new resistor is as easy as copying an existing resistor symbol  
> and changing the part number and value fields.

I'd argue that this is the wrong way though.  Create 1 resistor symbol 
and use an awk/perl/ruby/whatever script to read an ascii database and 
generate a heavy library based on the one master symbol.  That way you 
can maintain consistency throughout your library a little easier.

> I've been in favor of the heavy symbols including a manufacturer part  
> number, but this is limiting because multiple manufacturers make  
> compatible devices, so how do you choose which manufacturer's number  
> to use?  Either you allow multiple vendor part numbers or you create  
> your own part-number system.  After using the latter system for a  
> couple of years, I see its advantages.  All that's needed is a way to  
> take a BOM generated by the schematic and run it against a database  
> to get vendor part numbers (and prices and whatever else).

My guess is that for most companies of any size, that internal part 
numbers is exactly the path used.  Thats how we've done it at jobs I had 
at places that made lots of boards for products.  For personal use, I 
don't particularly care if I happen to specify a single vendor's part by 
way of a heavy symbol.

> To further complicate things: for cases like 0805 resistors, where  
> you have a lot of different values, perhaps the simplification is a  
> "light/heavy" symbol.  This can work where the only variation is the  
> resistance value; everything else (footprint, tolerance, etc) stays  
> the same.  The part number in the symbol is a "base" part number.   
> When you place an instance of the RES0805 symbol on the schematic,  
> you modify the value as needed.  Then you generate the BOM, and your  
> database lookup uses the base part number and the value to get a  
> manufacturer part number.

The neat thing with resistors is it is easier to script the whole thing. 
  I haven't done it yet, but before I do my next board I'll probably 
write a generator to produce all 1% and 5% resistor values in 0201's 
through 1206's.  It will probably take 15 minutes and I'll never have to 
deal with resistors again.

> It's funny how complex this can get ...

indeed.

library management is an area where I've consistently seen problems for 
many years.

Not only do you need a sane way for generating the libraries, you also 
need a sane way to version things and allow projects to pick when to 
switch to new versions and have tools to help with errors that come up 
with moving to a new version and have tools to make it easy for 
engineers to know if a new version is required (wrong pin out), 
suggested (better looking symbol or footprint which is "better"), 
optional (cosmetic changes), and what the fallout will be (different 
pinout, different footprint, symbol not compatible, etc).

Without all of those things in place things just can turn ugly.  And 
even with those things in place, things can still turn ugly.

-Dan


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user