kicad-footprints icon indicating copy to clipboard operation
kicad-footprints copied to clipboard

Add NEG-12 package

Open drid opened this issue 5 years ago • 19 comments

Add NEG-12 package
https://www.idt.com/package/neg12

image

Footprint comes from https://gitlab.com/librespacefoundation/lsf-kicad-lib


All contributions to the kicad library must follow the KiCad library convention

Thanks for creating a pull request to contribute to the KiCad libraries! To speed up integration of your PR, please check the following items:

  • [x] Provide a URL to a datasheet for the footprint(s) you are contributing
  • [x] An example screenshot image is very helpful
  • [x] If there are matching symbol or 3D model pull requests, provide link(s) as appropriate
  • [x] Check the output of the Travis automated check scripts - fix any errors as required
  • [x] Give a reason behind any intentional library convention rule violation.

drid avatar Jul 12 '19 16:07 drid

I did not do a full review, so just a few points that popped up while looking at the symbol:

  • [x] The datasheet suggests to put vias into the exposed-pad
  • [x] The Name of the footprint is not according to KLC. Please take a look at KLC 2.x. Something like "IDT_NEG12_1EP_2x2mm_P0.5mm_EP1.1x1.1mm_ThermalVias"
  • [x] Please use this as datasheet link https://www.idt.com/document/psc/neg12-package-outline-20-x-20-mm-body-epad-11-x-11-mm-050-mm-pitch-qfn

cpresser avatar Aug 14 '19 17:08 cpresser

  • [ ] Courtyard distance is 0.5mm. It should be 0.25mm
  • [ ] The Pad-Size seems to be good (0.25*0.475), but none of the positions I checked are okay.
  • [x] The Exposed-Pad should have a 0.2mm chamfer
  • [ ] The vias should not have a solder-paste margin set
  • [ ] B.Mask is not to be enabled on the B.Cu pad so mask is present
  • [x] 3D-Model Filename is not consistent

And one question: I can't seem to find the information on how to chamfer the pads. Where did you get them from?

cpresser avatar Aug 24 '19 12:08 cpresser

Where did you measure 0.5 courtyard? It was 0.25 and adjusted when i moved the pads. image

Pad chamfer was estimated from package chamfer and adapted to pad size (45 deg angle)

drid avatar Aug 27 '19 14:08 drid

Regarding the courtyard - my bad, I measured from the body outline. Which is wrong.

The name originally suggested by me is not good either. Sorry about that. Similar footprints do have the pin-count in separated by dashes. For example MLF-8-1EP_3x3mm_P0.65mm_EP1.55x2.3mm_ThermalVias. Following that scheme, this FP should be named IDT_NEG-12-1EP_2x2mm_P0.5mm_EP1.1x1.1mm_ThermalVias

Estimating values is not good. Did you try to import the .pdf into a CAD Software? One option is to use evince (print to svg) and inkscape to get a vector representation of the datasheet. That allows you to extract the missing dimensions (chamfer angle & distance of pads, corner-radius of exposed-pads).

I found more issues with the pads: image

  • [ ] Pad-Dimension is 0.47mm, should be 0.475mm (this will influence the courtyard position as well)
  • [ ] The chamfer is not 45° (45° line on Silk as reference)
  • [ ] The exposed-pad not only has a chamfer, but also round corners on the other 3 edges.

Please take a look at other FP with thermal vias. One example is "QFN-12-1EP_3x3mm_P0.5mm_EP1.65x1.65mm_ThermalVias". It has SolderMask on the bottom copper. You can check that with the 3D-Viewer.

Again, sorry about the slow pace and mistakes. I am pretty new as a reviewer.

cpresser avatar Aug 28 '19 20:08 cpresser

I would suggest this to be scripted with https://github.com/pointhi/kicad-footprint-generator/tree/master/scripts/Packages/Package_NoLead__DFN_QFN_LGA_SON (Uses IPC standard to generate a footprint from the package dimensions https://www.idt.com/document/psc/neg12-package-outline-20-x-20-mm-body-epad-11-x-11-mm-050-mm-pitch-qfn)

It can chamfer your pads. I am however not yet certain that it is really a requirement for this part.


Edit: There are many issues with this footpirnt. First we do not know how the original author came to the pad layout. (The manufacturer does not give a suggestion here->which rules where used?) And there is the topic of licensing. The source repo is under a license that does not allow commercial use. And it does not allow relicensing (not even a symbol exception) This would be violated by the license of the kicad library.

poeschlr avatar Aug 29 '19 05:08 poeschlr

I found more issues with the pads: image

Can you please check the pad properties, pads are 0.475 (2 * 0.2375) image

drid avatar Sep 01 '19 18:09 drid

And there is the topic of licensing. The source repo is under a license that does not allow commercial use. And it does not allow relicensing (not even a symbol exception) This would be violated by the license of the kicad library.

We have changed the license to CC BY-SA 4.0

drid avatar Sep 01 '19 18:09 drid

I can measure the pads in kicad. This is not the question. How did you get from package dimension to pad size? This is why we typically use the IPC generator scripts as that script uses industry standard rules to determine that. And it also makes future maintainance easier to have stuff scripted. (A change to the standard is easily implemented by just changing a central script parameter, regenerating all footprints and updating them here. The same for changes to the library convention.)

poeschlr avatar Sep 02 '19 06:09 poeschlr

I used the recommended land pattern from page 2 of datasheet. I've also extracted missing dimensions from PDF using inkscape as suggested. I've also tried the generator script, it does create the pad chamfers but pad size will differ from datasheet.

drid avatar Sep 02 '19 10:09 drid

If this is considered a qfn than it must use the generator. If not then it must be placed in a more specialized library. (And i am not yet certain that you will get me to agree that this is indeed such a specialized package as to not be best served with the IPC compliant version of the footprint. Only option would be that this is a very high frequency device or a MEMS that really need exact compliance with manufacturer footprints as otherwise mechanical or HF behavior differ from their assumptions. The former would then go into one of the RF_xxx libraries and the later into one of the Sensor libraries.)


Edit: ok i am now convinced that the generator is the way to go. See note 5 of the suggested footprint. (The name might still be best quite specific as this part has chamfered corner pads)


Edit2: yes pad sizes might differ as the manufacturer might have used different settings for the pcb manufacturing tolerance parameters. (These are ideally set by the user. We use the quite conservative settings suggested as the default by IPC as we can not really know the users ideal settings -> Another benefit to the generator. Users can easily generate the footprints with their settings by setting these parameters.)

poeschlr avatar Sep 02 '19 11:09 poeschlr

Ok, so generated footprint looks like this image Should I force square pads? Is there a way to achieve R 0.102 and chamfer for EP or leave it as it is? Should I commit the non thermalVia version too?

drid avatar Sep 02 '19 12:09 drid

Right now there is no support for chamfering the center pad. I do not believe this to be necessary. (Nearly all qfn packages have a chamfered lead to indicate pin 1, but a vast majority of datasheets suggest a non chamfered pad. This could of course be because of a lack of software support but if there would be a major benefit then they would still suggest it.)

There might however still be something not ideal with exposed pad creation right now. The more i think about it the less rounded corners for it make sense. So i kind of decided to roll this back https://github.com/KiCad/kicad-footprints/issues/1798 (benefit of the script. I just need to change the parameters and regenerate and even such a major decision is easily implemented.)

poeschlr avatar Sep 02 '19 16:09 poeschlr

Script https://github.com/pointhi/kicad-footprint-generator/pull/418

drid avatar Sep 02 '19 18:09 drid

I checked at the script and the generated FP.

  • The Pads are 0.2mm wide. I would expect 0.2 + 0.05 (tolerance) - which is the same as the value recommended by the datasheet.
  • The leads extend slightly longer than 2.4mm (2.7mm).
  • The radius of the exposed-pad seems way bigger than the EP of the part. That might be an issue. But I cant see the radius defined in the datasheet. It it already mentioned as a possible issue above (https://github.com/KiCad/kicad-footprints/issues/1798)

That's most likely intended by the IPC generator. Unsure how to handle this. Perhaps @poeschlr has some time to look at this. image

cpresser avatar Sep 11 '19 21:09 cpresser

Fixed pad width, can't find a way to control how much a pad will extend past the body size, any clue?

drid avatar Sep 17 '19 13:09 drid

All fillet goals are controlled by the IPC document which governs the generator. IPC 7351B is not freely available but you can search for it online and reading the script contains the math part of it. You don't adjust anything, like the pad size above, manually (OK, maybe in rare cases) because the footprint is generated the way it's supposed to be according to IPC. The footprint in the datasheet is discarded in favor of the scripted one.

The inputs to the script are the package drawing, not the footprint drawing. So use page 1 of https://www.idt.com/document/psc/neg12-package-outline-20-x-20-mm-body-epad-11-x-11-mm-050-mm-pitch-qfn, not page 2 as shown in the screenshot above.

evanshultz avatar Sep 17 '19 15:09 evanshultz

@evanshultz The change of the lead-witdh to 0.25mm ist most likely a reaction to my previous post. I am still unsure why a lead-with of 0.20mm and tolerance of 0.05mm just gives a pad of 0.2mm. Is that the correct behavior of the IPC generator? Would you mind taking a look and handling this PR? I am not experienced enough with the generator scripts (yet).

cpresser avatar Sep 17 '19 21:09 cpresser

Flat no lead has negative fillet sizes on the side (i can double check that but it kind of makes sense. If it is wrong then all our qfns are wrong right now.):

# Flat No Lead (DFN/QFN) with toe fillet
#           | Minimum | Median    | Maximum |
#           | (Least) | (Nominal) | (Most)  |
#           | Density | Density   | Density | round
# Lead Part | Level C | Level B   | Level A |  to
# ----------+---------+-----------+---------+-
# Toe       | 0.2     | 0.3       | 0.4     | 0.05
# Heel      | 0.0     | 0.0       | 0.0     | 0.05
# Side      | -0.04   | -0.04     | -0.04   | 0.05
# Courtyard | 0.1     | 0.25      | 0.5     |

poeschlr avatar Sep 18 '19 09:09 poeschlr

Confirmed the table Rene shared above is correct.

evanshultz avatar Sep 19 '19 15:09 evanshultz