KiCad / kicad-footprints

Official KiCad Footprint Libraries for Kicad version 5
https://kicad.github.io/footprints
Other
617 stars 714 forks source link

MSOP-8_3x3mm_P0.65mm has too narrow clearance #2082

Closed essele closed 4 years ago

essele commented 4 years ago

This MSOP-8 footprint seems to have a pin to pin clearance of approximately 5.8mil, which will cause it to fail DRC checks with a 6mil clearance set.

All of the other MSOP-8's (the EP variants) all have a clearance approaching 10mil which seems a lot more sensible.

(Pins are 0.5mm on this one, and 0.4mm on the EP variants -- most of the datasheets I've looked at suggest between 0.35 and 0.45 ... so 0.4 seems like a good choice.)

andrewteasdale commented 4 years ago

I've just found the same thing on exactly this footprint and settled on 0.45mm pad width, which matches some of the 0.65mm pitch TSSOP parts. But generally there is not a lot of consistency across these footprints, with some having rounded corners per latest IPC and other not etc. I'd take on the challenge of harmonising this but some of the variation may be for a reason and settling on a defined standard for this will require a library manager to confirm an approved schema I suspect.

EDIT: I've done a bit of digging and some of the MSOP parts are not currently generated from kicad-footprint-generator, which explains some of the differences [square corners and silk differences]. The other differences come from interpretations of different manufacturer datasheets, which have subtly different pad sizes. There's probably a common-sense middle ground but not everyone would agree on it!

evanshultz commented 4 years ago

We are going with nominal-density IPC land patterns, but not all gullwing packages have been moved to the generator, as mentioned above. Contributions are welcome if you'd like to help with that effort.

andrewteasdale commented 4 years ago

Thanks @evanshultz, I've put adding some of the missing footprints to the generator onto my task list.

chschlue commented 4 years ago

FYI: This particular FP has recently been added to the generator but is generated without force_small_pitch_ipc_definition set, contrary to most other 0.65mm pitch MSOPs. That's why it has 100µm wider ~leads~ lands.

andrewteasdale commented 4 years ago

Thanks @chschlue - and apologies in advance for the long response!

To make this more complicated, my understanding is that force_small_pitch_ipc_definition should only be set for footprints <=0.625 mm, at which point the IPC-7351 side goal goes from 0.03 to -0.02 mm. If that assumption is true then a number of the existing 0.65 mm pitch script-generated parts are incorrect.

I suspect the thing that concerns people is that a 0.5 mm pad width with only 0.15 mm clearance feels and looks a bit tight. I stuck the JEDEC part spec into an IPC calculator and came up with a 0.48 mm pad width, which is indeed 0.5 mm when rounded to 0.05 mm, which is what IPC-7351B seems to recommend. Adjusting the placement tolerance brings the pad width down to the more reasonable 0.45 mm, but that's a bit of a fudge, and in reality more like 0.42 mm makes sense [but does not fit with the 0.05 mm rounding].

Incidentally, the pads generated using the default heel/toe for a nominal environment lead to a much larger footprint than the previous library version. This is on balance a good thing as the existing footprint wasn't ideal. However, there are flaws in the IPC-7351B approach [namely a one-size-fits-all pad size] which I understand is being resolved in IPC-7351C, with differing heel/toe dimensions for different lead pitchs as follows [source https://ocipcdc.org/archive/What_is_New_in_IPC-7351C_03_11_2015.pdf]:

image

A good source here is the PCB Library Expert approach, which is a hybrid of what's coming in IPC-7351C and common-sense extrapolations from the IPC-J-STD-001 solder joint goal acceptability guidelines. This makes use of differing heel/toe/side values for various pitch parts on a sliding scale, rather than the big/small approach used in the current IPC-7351B approach [and thus the generator scripts]:

image

Following some experimentation, in the absence of an agreed approach these are the values I'd probably implement in my own libraries as the footprints look both highly solder-able and sufficiently dense for a realistic nominal environment.

I'd be happy to get stuck in and update some of the remaining non-script-generated to 'new' IPC-style footprints as they need improving and standardising, but I suspect not everyone [myself included!] would be happy with the default 0.5 mm pad size, and hacking the scripts to generate 0.42 mm or 0.45 mm pad widths feels wrong.

Of course by far the simplest workable approach is for everyone to agree that [as an exception to the IPC spec] we move the 'small pitch' boundary from 0.625 mm to 0.65 mm and use force_small_pitch_ipc_definition for all 0.65 mm pitch parts. This would generate a perfectly reasonable [if narrower than IPC norms] 0.4 mm pad width and match the balance of 0.65 mm pitch parts already in the library. @evanshultz would you be happy with that [in which case I will get started]?

andrewteasdale commented 4 years ago

UPDATE: I've just seen the excellent work @essele has done in #2090 with all the TSSOP variants based on the JEDEC standard, which is exactly what I was hoping to implement for some of the other SOP families [unless this work is already planned by someone else?].

This PR has worked out perfectly for 0.65 mm pitch variants because the lead width on TSSOP parts is narrower than for e.g. MSOP parts, and thus force_small_pitch_ipc_definition is not required to product an acceptable pad width. Fantastic job!

chschlue commented 4 years ago

IMO, fine pitch goals are fine for MO-187 AA MSOPs, Should this be set manually or should the script be changed to use these for all <=0.65mm pitch FPs? MS-026 0.65mm TQFPs have equally wide leads, for example.

To answer your other question: AFAIK, #2090 is the only SOP rework at this time.

evanshultz commented 4 years ago

A few things pop to mind...

My brain may not be working. What do y'all think?

poeschlr commented 4 years ago

The force_small_pitch_ipc_definition is kind of a hack that allows to overwrite the automatic definition for pitches that are very close to the cut-off point. I simply noticed that 0.65mm footprints often result in way too little clearance and would be better off with the smaller definition.