4
\$\begingroup\$

I'm doing my own component in Eagle for a PCB design. This is the footprint that the manufacturer gives:

enter image description here

But I have a problem with the SMD roundness when I try to draw the SMD footprint at the sides. I don't know if it is possible to draw with 100% roundness at only one side of SMD foot print like in the image and leave the another side with 0% roundness.

\$\endgroup\$
7
  • \$\begingroup\$ Do you have a link to the datasheet? \$\endgroup\$
    – pipe
    Commented Jan 18, 2016 at 11:59
  • \$\begingroup\$ Just make the pads fully rectangular (2.5mm x 0.5mm). There is no need for one side to be rounded. \$\endgroup\$
    – DerStrom8
    Commented Jan 18, 2016 at 14:25
  • 1
    \$\begingroup\$ @pipe here is the datasheet \$\endgroup\$
    – ferdepe
    Commented Jan 18, 2016 at 14:54
  • 1
    \$\begingroup\$ @derstrom8 why? \$\endgroup\$
    – ferdepe
    Commented Jan 18, 2016 at 14:56
  • \$\begingroup\$ You can build these, but you would need to use low level drawing commands in Eagle to do so, and not "SMD" \$\endgroup\$ Commented Jan 18, 2016 at 17:45

2 Answers 2

10
\$\begingroup\$

There are several different options to do this. Two are quite easy but don't give you exactly the right result, and the third is a bit more complex but achieves exactly what is shown. All three are shown in the image below:

Different shapes

  1. The first option, pictured in the centre above, is simply to square off the corners. Here I inserted simply a 2.5mm x 1mm SMD to get the pad with Stop disabled. Then I added a 2.8mm x 1.3mm rectangle on the TStop layer to get the recommended stop mask clearance. This is the most straight forward option and I highly doubt the lack of curved corners will cause any issue whatsoever.

  2. The second option, pictured rightmost, is to use a curved SMD pad which extends outwards from the side of the chip - basically beyond where the pad is recommended. To draw it, I added an SMD of size 3mm x 1mm to get the main pad. For this I again disabled the Stop, and this time set the roundness to 100. On the Tstop layer, I drew a 2.15mm x 1.3mm rectangle and a 0.65mm circle with zero width. This gives the required stop mask aperture. The actual aperture is exactly as required in the datasheet, so despite the extra bit of copper, the exposed region will be the same.

  3. The third option, pictured leftmost, gives exactly what you want, but is the most complicated of the three. Firstly a 2mm x 1mm SMD is inserted which gives you the main pad - again with Stop disabled. Then a polygon (must be a polygon to avoid the DRC generating clearance warnings) is drawn over the top. The polygon was drawn with a width of 0.2mm which will pass 6mil minimum clearance DRC checks (you can make it thicker if needed), and drawn so that its outer dimension (factoring in the width) is exactly the size needed. Over the top, a rectangle of size 2.15mm x 1.3mm was drawn on the TStop layer, along with a 0.65mm radius circle with a width of 0. While the most complex, this gives you the exact pad recommended in the datasheet.


For reference, the following is the library I made to produce the footprints shown. Copy it as shown into a file called whatever.lbr and open in the Eagle library editor. You can simply group the pad you want to use, and copy the group multiple times into your own footprint.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="6.6.0">
<drawing>
<settings>
<setting alwaysvectorfont="no"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="inch" style="lines" multiple="1" display="yes" altdistance="0.025" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="yes" active="yes"/>
</layers>
<library>
<packages>
<package name="TEST">
<smd name="P$1" x="-2" y="0" dx="2" dy="1" layer="1" rot="R90" stop="no" cream="no"/>
<circle x="-2" y="1" radius="0.65" width="0" layer="29"/>
<smd name="P$2" x="0" y="0.25" dx="2.5" dy="1" layer="1" rot="R90" stop="no" cream="no"/>
<smd name="P$3" x="2" y="0" dx="3" dy="1" layer="1" roundness="100" rot="R90" stop="no" cream="no"/>
<polygon width="0.2" layer="1">
<vertex x="-2.4" y="-0.9"/>
<vertex x="-1.6" y="-0.9"/>
<vertex x="-1.6" y="1" curve="180"/>
<vertex x="-2.4" y="1"/>
</polygon>
<rectangle x1="-2.65" y1="-1.15" x2="-1.35" y2="1" layer="29"/>
<rectangle x1="-0.65" y1="-1.15" x2="0.65" y2="1.65" layer="29"/>
<rectangle x1="1.35" y1="-1.15" x2="2.65" y2="1" layer="29"/>
<circle x="2" y="1" radius="0.65" width="0" layer="29"/>
</package>
</packages>
<symbols>
</symbols>
<devicesets>
</devicesets>
</library>
</drawing>
</eagle>
\$\endgroup\$
2
\$\begingroup\$

Use two SMD pads for each pad:

  • 100% roundness for inner corners
  • 0% roundness for outer corners

Overlap the two SMD pads to create a single shape. Your 48-pin package, therefore, gets 96 SMD pads.

Pads need unique names. Name the sharp pad with prefix _. For example, name the pin 1 rounded pad 1 and name the pin 1 sharp pad _1.

The screenshot shows five pins on a QFN-20 using this two-SMD scheme. The thermal pad is a similar idea, using three SMDs.

Five pins on a QFN-20 using this two-SMD scheme. The thermal pad is a similar idea, using three SMDs.

Disadvantages

This is a kludge, so there are a few disadvantages.

  1. It is extra work to Route the PCB layout. The second pad creates a meaningless air wire to Route. I Route these with a 5-mil trace to keep them hidden. The trace needs some width to satisfy the minimum trace width in your DRC.

  2. It is extra work to create the Device. Connect pads to pins as usual when you create the device. But now you also Append the extra pad for each connection. For example, after you Connect pad 1 and schematic symbol pin 1, you also Append pad _1 to schematic symbol pin 1.

    Append pad <code>_6</code> to pin <code>6</code>.

  3. Unused pins are flagged by the DRC as Overlap errors:

    Add nets to unused pins to avoid DRC Overlap error.

    To avoid these DRC Overlap errors:

    • In the .sch, add dummy nets to these pins, i.e., nets that connect to nothing else.
    • In the .brd the dummy net is an airwire between the two pads that form the single QFN signal pad.
    • Route this airwire. Use a small width, e.g., 5-mil, to hide the trace under the copper pad artwork.
  4. The schematic shows an annoying *2 next to each pin number.

    Because there are two pads for each QFN signal pad, the schematic symbol shows an annoying <code>*2</code> after each pin number.

    The *2 shows there are two of each pin. The pin number and *2 are visible when Visible is set to both in the lbr Symbol definition. There is no way to keep the pin number and hide the *2.

    In the .lbr Symbol, change Visible to pin:

    Change <code>Visible</code> to <code>pin</code> to eliminate the <code>*2</code>.

    This eliminates the *2 and the pin number.

Advantages

The advantage is the automated artwork for the solder paste and solder mask layers.

Solder Paste Details

The solder paste layer is automated if Cream is turned on for the SMD (default). The screenshot shows the pads with layer 31 tCream displayed.

The hatched artwork is left as automatic on the signal pads. EAGLE generates correct 1:1 paste-to-copper artwork for small pads.

The OP shows a QFN without a thermal pad. But usually a QFN has a thermal pad. Unless the QFN is small, a solder paste stencil exposing the entire thermal pad results in too much solder paste. Large thermal pads use window-pane paste artwork to reduce the amount of paste. This decreases likelihood of solder voids under the thermal pad. The voids are created by the outgassing flux with no room to escape.

The solid-looking artwork on the thermal pad is drawn manually with the polygon tool and a small but non-zero wire width.

The *hatched* solder paste artwork on the QFN signal pads is automatic. The *solid* solder paste artwork on the thermal pad is drawn manually with the <code>polygon</code> tool.

Solder Mask Details

This information is independent of how you create the SMD in EAGLE. But the OP shows a QFN footprint, so the mask artwork is the next logical consideration after getting the pad shape into EAGLE.

Automated solder mask artwork is turned on or off for each SMD just like the Cream artwork.

Whether to use the automated artwork depends on:

  • the QFN pitch
  • the PCB manufacturer's specification for solder mask relief

For example, a 0.5 mm pitch QFN with solder mask relief <= 3-mil uses the automated solder mask artwork, providing individual stop masks on each pad.

But with a 4-mil relief, those individual masks connect. Turn off the automatic solder mask and draw a polygon to gang the solder mask.

Ganged Solder Mask Artwork

Round the inner corner of the polygon (just like the copper pad) to maximize the amount of solder mask between the gangs. If there is still not enough solder mask to stick to the board, reduce the mask relief.

For example, compare a 5 x 5 mm 32-pin QFN and a 4 x 4 mm 20-pin QFN both with 0.5 mm pitch.

4-mil relief on this QFN32 needs reduced relief at the gang ends, otherwise the solder mask might not stick between the gangs: manual solder mask artwork for <code>4-mil</code> relief on a QFN32 needs tighter mask at the gang ends

This QFN20 has more space between the gangs, so the solder mask artwork shows the full 4-mil relief at the ends of each gang: manual solder mask artwork for <code>4-mil</code> relief on a QFN20 uses <code>4-mil</code> relief on all sides

\$\endgroup\$
3
  • \$\begingroup\$ Adding copper shapes to pads works with most (all?) ecad programs, Orcad, Altium, PADS.. You would have to work with this kind of thing with e.g. surface mount USB connectors that have folded metal mounting pins etc. Depending on the package it'll make the solder and paste mask for you automagically or you'll have to explicitly add the shapes to the corresponding layers. \$\endgroup\$
    – Barleyman
    Commented May 30, 2019 at 13:38
  • \$\begingroup\$ It's time for me to upgrade then. I'm using EAGLE v 7.7. It does not allow adding copper shapes to pads. \$\endgroup\$
    – M Gazes
    Commented Jun 5, 2019 at 19:27
  • \$\begingroup\$ Pro packages are very expensive thought, thousand quid a year on rough ballpark, althought usually they let you keep on using the tool after you support contract expires. I remember doing some song and dance with PADS back in the day, but fortunately all of them allow arbitrary shapes these days. If all else fails you may have to physically place copper shapes on layout to copper/paste/mask layers. But that's obviously the last resort! \$\endgroup\$
    – Barleyman
    Commented Jun 7, 2019 at 11:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.