From: krw on
On Mon, 31 May 2010 17:10:31 -0700, "Joel Koltner"
<zapwireDASHgroups(a)yahoo.com> wrote:

>Hi Keith,
>
><krw(a)att.bizzzzzzzzzzzz> wrote in message
>news:kcu406lla4kc1kp5vfn42cuubjfc6o32fv(a)4ax.com...
>> Our "value" and "P/N" fields are separate so that only the value is printed
>> on
>> the schematic, not the entire P/N.
>
>Yeah, that's what we presently do as well... the part numbers are long enough
>that you'd end up with rather cluttered schematics if they were always on,
>although I suppose some places might have them on by default and then have the
>guy drawing the schematic just turn them off for individual components in
>areas that too become too dense.

That would be everywhere. ;-)

>> We *can* add parts, but leave it to the "component engineer", who also is
>> the
>> layout guy. I'll make OrCad symbols and put them in my own library. He
>> pulls
>> them from there and checks all the information before putting it in a
>> "standard" library.
>
>We can't add (or modify) parts, but otherwise we do the same thing.

There are only three of us likely to add components, but it's just cleaner if
one does it. I don't like the way others draw components so I do my own, even
if it already exists.

>> He was likely given the position without the time or perhaps authority to do
>> the job properly. Management is often does things like that.
>
>Yes, I'd accept that he had too many tasks to perform that were more company
>business-critical than fixing parts libraries. However, I don't see any good
>excuse for why he'd make that claim while simultaneously refusing to allow
>some of the engineers to go and clean things up (and they had volunteered to
>do so). Management eventually leaned on him, telling him he either had to
>start fixing errors in a timely manner or allow other to do so in his stead,
>and since he didn't like either of those options, he chose to quite instead.

Sounds more like it was a power trip for him. You don't need control freaks
around.
From: John Larkin on
OK, I just finished (or at least got working) BLUE.EXE. It compares
the parts in a PADS-Logic netlist to our MAX parts/inventory database.

It checks that each PADS part on the board has the required attribute
fields. A part entry in the PADS-Logic netlist file looks like

PART C50
{
"ORIG" JL 7-24-96
"DESC" 0603 SURFACE MOUNT CAPACITOR
"HTI" 103-2720
"VALUE" 0.33uF
}

Where HTI is our in-house MAX stock number. Pretty ugly, no? PITA to
parse.

The program verifies that the DESC, HTI, and VALUE fields are present
and look about right, then verifies that the corresponding MAX part
actually exists, then verifies the value and package types against
what MAX expects. I only process R/L/C parts, since they are the ones
that cause the most trouble.

It's done in PowerBasic in the clumsiest way possible... tons of
string operations, linear search of all MAX parts for every PADS part,
gross stuff like that. Analysis of a 1200 part VME board runs in 0.156
seconds.

Parsing and comparing the values was a little tricky. 0.33uF was not
exactly the same as 330nF in floating point, and some people decided
that m was milli but M was mega. Sometimes.

And things like "1206" can appear in various places in the DESC field
for some PADS parts, like resistor networks. And so on.

560 line source file, 38 kbytes compiled.

PINK.EXE was the one that compares two PADS-Logic or PADS-PCB
netlists.

John

From: Joel Koltner on
"John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in message
news:atp806ddh0j8oqqql9n1ujvm3s1h21b2uc(a)4ax.com...
> "DESC" 0603 SURFACE MOUNT CAPACITOR
>
> Where HTI is our in-house MAX stock number. Pretty ugly, no? PITA to
> parse.

Having the attribute names in quotes but the attribute values not in quotes
sure is a pain...

> Parsing and comparing the values was a little tricky. 0.33uF was not
> exactly the same as 330nF in floating point

I was wondering if you were going to deal with this...

I've often felt a tool that goes around and "standardizes" all the decoupling
caps to 100nF or 0.1uF or whatever one prefers would be useful. Not because
I'm a nazi when it comes to suggesting that there should be hard rules for
when fractional values are OK or not (although some people around here
are...), but rather because I think there's value in having consistentcy in
your schematic: 100nF vs. 0.1uF vs. 0u1 (ouch!) tends to just say something
about how old you are (when you went to school) or if you're in the U.S. or
Europe, but different styles throughout the schematic makes you look
schizophrenic, which is rather more worrisome.

> and some people decided
> that m was milli but M was mega. Sometimes.

I once had a "helpful" tech decide that my 22milliohm current-sensing shunt
resistor (labeled "22m" on the schematic) was really 22megaohms. The circuit
didn't really work after he made that substitution... :-)

I take it your program elicits some warnings if it's trying to be "smart" and
discoveres that m/M confusion likely exists?

> 560 line source file, 38 kbytes compiled.

Sounds pretty useful; very neat!

For some real fun you should write up a description of the program and see how
much a professional software developer would want to code it up. :-)

---Joel

From: John Larkin on
On Mon, 31 May 2010 19:46:11 -0700, "Joel Koltner"
<zapwireDASHgroups(a)yahoo.com> wrote:

>"John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in message
>news:atp806ddh0j8oqqql9n1ujvm3s1h21b2uc(a)4ax.com...
>> "DESC" 0603 SURFACE MOUNT CAPACITOR
>>
>> Where HTI is our in-house MAX stock number. Pretty ugly, no? PITA to
>> parse.
>
>Having the attribute names in quotes but the attribute values not in quotes
>sure is a pain...
>
>> Parsing and comparing the values was a little tricky. 0.33uF was not
>> exactly the same as 330nF in floating point
>
>I was wondering if you were going to deal with this...
>
>I've often felt a tool that goes around and "standardizes" all the decoupling
>caps to 100nF or 0.1uF or whatever one prefers would be useful. Not because
>I'm a nazi when it comes to suggesting that there should be hard rules for
>when fractional values are OK or not (although some people around here
>are...), but rather because I think there's value in having consistentcy in
>your schematic: 100nF vs. 0.1uF vs. 0u1 (ouch!) tends to just say something
>about how old you are (when you went to school) or if you're in the U.S. or
>Europe, but different styles throughout the schematic makes you look
>schizophrenic, which is rather more worrisome.

Often schematics are assembled by cut-and-paste from other schematics.
Then the bypasses do look schitzoid. I use 0.33uF 0603 as my standard
bypass, but the kids have decreed that it should be "330nF"

We do try to minimize the different parts on a board to simplify
pulling kits and assembling boards. 100R, 1K, 10K, like that.

It wouldn't be hard to pile up a *lot* of microfarads of bypass caps
on one plane, scattered over many sheets of schematic. Enough to freak
out some LDOs that, on the power supply page, have an aluminum or
tantalum bypass.

>
>> and some people decided
>> that m was milli but M was mega. Sometimes.
>
>I once had a "helpful" tech decide that my 22milliohm current-sensing shunt
>resistor (labeled "22m" on the schematic) was really 22megaohms. The circuit
>didn't really work after he made that substitution... :-)
>
>I take it your program elicits some warnings if it's trying to be "smart" and
>discoveres that m/M confusion likely exists?

No, I'm figuring it will eventually throw a mismatch as a warning. The
m/M case is rare anyhow.

John

From: Joel Koltner on
"John Larkin" <jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in message
news:dot806hthadka7m7oqt76e1pv607q22382(a)4ax.com...
> It wouldn't be hard to pile up a *lot* of microfarads of bypass caps
> on one plane, scattered over many sheets of schematic. Enough to freak
> out some LDOs that, on the power supply page, have an aluminum or
> tantalum bypass.

Have one of the kids write up a PowerBASIC program (or whatever their
programming language of choice is) to find all the capacitors connected to a
given net and add up their values? :-) That'd be a kinda cool macro,
actually...