add footprint for the DFN12 variant used by OnSemi for the NCP45560, et al
authorBdale Garbee <bdale@gag.com>
Thu, 6 Sep 2018 02:50:43 +0000 (20:50 -0600)
committerBdale Garbee <bdale@gag.com>
Thu, 6 Sep 2018 02:50:43 +0000 (20:50 -0600)
packages/506CD.5c [new file with mode: 0644]
packages/Makefile
symbols/onsemi/NCP45560.sym

diff --git a/packages/506CD.5c b/packages/506CD.5c
new file mode 100644 (file)
index 0000000..c4aca6e
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright © 2018 Bdale Garbee <bdale@gag.com>
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+load "footprint.5c"
+import Footprint;
+
+real pad_width = 0.48;
+real pad_height = 0.32;
+real pad_one_height = 0.45;
+real pad_spacing = 0.50;               /* center to center, along the pads */
+real pad_center = 3.30 - pad_width;    /* center to center, across the part */
+
+real center_width = 2.10;
+real center_height = 2.86;
+
+real package_width = 3;
+real package_height = 3;
+
+real pad_x_off = pad_center / 2;
+
+real num_pad = 6;      /* per side */
+
+element_start("506CD");
+
+real pad_off(int n) {
+       return pad_spacing * (n - (num_pad - 1) / 2);
+}
+
+/*
+real dot_off = -.3;
+
+line(-package_width/2 + dot_off, -package_height/2 + dot_off,
+     -package_width/2 + dot_off, -package_height/2 + dot_off);
+*/
+
+for (int pad = 0; pad < num_pad; pad++) {
+       /* left side */
+
+       if (pad == 0) {
+           pad_mm(-pad_x_off,
+              pad_off(pad) - (pad_one_height - pad_height)/2,
+              pad_width,
+              pad_one_height,
+              sprintf("%d", 1),
+              sprintf("%d", 1));
+       } else {
+           pad_mm(-pad_x_off,
+              pad_off(pad),
+              pad_width,
+              pad_height,
+              sprintf("%d", pad + 1),
+              sprintf("%d", pad + 1));
+       }
+       
+       /* right side */
+
+       pad_mm(pad_x_off,
+              -pad_off(pad),
+              pad_width,
+              pad_height,
+              sprintf("%d", pad + num_pad + 1),
+              sprintf("%d", pad + num_pad + 1));
+       
+}
+
+/* center pad */
+pad_mm(0, 0,
+       center_width,
+       center_height,
+       "13", "13");
+
+element_end();
index 128cfdbb8a17297b1088bb5ff3b659e49fc285ff..b42c55abe67769a924f49012f3a4bee2e36699a3 100644 (file)
@@ -115,7 +115,8 @@ FOOTPRINTS= \
        RN4678.fp \
        JTIBM15.fp \
        s-pqfp-g32.fp \
-       A29100-009.fp
+       A29100-009.fp \
+       506CD.fp
 
 .5c.fp:
        nickle $*.5c -o $@
index 61b8be195da6cd08b31b146556aea56bc1816285..691bbbb0fb2c28e33ba67e82f519af1bd525f4c5 100644 (file)
 v 20180820 2
-P 2400 2500 2100 2500 1 0 0
+P 3400 2500 3100 2500 1 0 0
 {
-T 2400 2500 5 10 0 0 0 6 1
+T 3400 2500 5 10 0 0 0 6 1
 pintype=pas
-T 2045 2495 5 10 1 1 0 6 1
+T 3045 2495 5 10 1 1 0 6 1
 pinlabel=VIN
-T 2195 2545 5 10 1 1 0 0 1
+T 3195 2545 5 10 1 1 0 0 1
 pinnumber=13
 }
-B 300 0 1800 3200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
-T 595 2595 8 10 0 1 0 0 1
+B 1300 0 1800 3200 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 1595 2595 8 10 0 1 0 0 1
 device=IC
-T 295 3295 8 10 1 1 0 0 1
+T 1295 3295 8 10 1 1 0 0 1
 refdes=U?
-P 2400 100 2100 100 1 0 0
+P 3400 100 3100 100 1 0 0
 {
-T 2400 100 5 10 0 0 0 0 1
+T 3400 100 5 10 0 0 0 0 1
 pintype=pas
-T 2045 95 5 10 1 1 0 6 1
+T 3045 95 5 10 1 1 0 6 1
 pinlabel=BLEED
-T 2195 145 5 10 1 1 0 0 1
+T 3195 145 5 10 1 1 0 0 1
 pinnumber=7
 }
-P 0 2100 300 2100 1 0 0
+P 1000 2100 1300 2100 1 0 0
 {
-T 0 2100 5 10 0 0 0 0 1
+T 1000 2100 5 10 0 0 0 0 1
 pintype=in
-T 355 2095 5 10 1 1 0 0 1
+T 1355 2095 5 10 1 1 0 0 1
 pinlabel=EN
-T 205 2145 5 10 1 1 0 6 1
+T 1205 2145 5 10 1 1 0 6 1
 pinnumber=2
 }
-P 2400 2100 2100 2100 1 0 0
+P 3400 2100 3100 2100 1 0 0
 {
-T 2400 2100 5 10 0 0 0 0 1
+T 3400 2100 5 10 0 0 0 0 1
 pintype=pas
-T 2045 2095 5 10 1 1 0 6 1
+T 3045 2095 5 10 1 1 0 6 1
 pinlabel=VOUT
-T 2195 2145 5 10 1 1 0 0 1
+T 3195 2145 5 10 1 1 0 0 1
 pinnumber=8
 }
-P 0 1300 300 1300 1 0 0
+P 1000 1300 1300 1300 1 0 0
 {
-T 0 1300 5 10 0 0 0 6 1
+T 1000 1300 5 10 0 0 0 6 1
 pintype=pas
-T 355 1295 5 10 1 1 0 0 1
+T 1355 1295 5 10 1 1 0 0 1
 pinlabel=SR
-T 205 1345 5 10 1 1 0 6 1
+T 1205 1345 5 10 1 1 0 6 1
 pinnumber=5
 }
-P 0 100 300 100 1 0 0
+P 1000 100 1300 100 1 0 0
 {
-T 0 100 5 10 0 0 0 0 1
+T 1000 100 5 10 0 0 0 0 1
 pintype=pwr
-T 355 95 5 10 1 1 0 0 1
+T 1355 95 5 10 1 1 0 0 1
 pinlabel=GND
-T 205 145 5 10 1 1 0 6 1
+T 1205 145 5 10 1 1 0 6 1
 pinnumber=4
 }
-P 0 2900 300 2900 1 0 0
+P 1000 2900 1300 2900 1 0 0
 {
-T 0 2900 5 10 0 0 0 0 1
+T 1000 2900 5 10 0 0 0 0 1
 pintype=pwr
-T 355 2895 5 10 1 1 0 0 1
+T 1355 2895 5 10 1 1 0 0 1
 pinlabel=VCC
-T 205 2945 5 10 1 1 0 6 1
+T 1205 2945 5 10 1 1 0 6 1
 pinnumber=3
 }
-P 0 1700 300 1700 1 0 0
+P 1000 1700 1300 1700 1 0 0
 {
-T 0 1700 5 10 0 0 0 0 1
+T 1000 1700 5 10 0 0 0 0 1
 pintype=out
-T 355 1695 5 10 1 1 0 0 1
+T 1355 1695 5 10 1 1 0 0 1
 pinlabel=PG
-T 205 1745 5 10 1 1 0 6 1
+T 1205 1745 5 10 1 1 0 6 1
 pinnumber=6
 }
-P 2400 2900 2100 2900 1 0 0
+P 3400 2900 3100 2900 1 0 0
 {
-T 2400 2900 5 10 0 0 0 6 1
+T 3400 2900 5 10 0 0 0 6 1
 pintype=pas
-T 2045 2895 5 10 1 1 0 6 1
+T 3045 2895 5 10 1 1 0 6 1
 pinlabel=VIN
-T 2195 2945 5 10 1 1 0 0 1
+T 3195 2945 5 10 1 1 0 0 1
 pinnumber=1
 }
-P 2400 1700 2100 1700 1 0 0
+P 3400 1700 3100 1700 1 0 0
 {
-T 2400 1700 5 10 0 0 0 0 1
+T 3400 1700 5 10 0 0 0 0 1
 pintype=pas
-T 2045 1695 5 10 1 1 0 6 1
+T 3045 1695 5 10 1 1 0 6 1
 pinlabel=VOUT
-T 2195 1745 5 10 1 1 0 0 1
+T 3195 1745 5 10 1 1 0 0 1
 pinnumber=9
 }
-P 2400 1300 2100 1300 1 0 0
+P 3400 1300 3100 1300 1 0 0
 {
-T 2400 1300 5 10 0 0 0 0 1
+T 3400 1300 5 10 0 0 0 0 1
 pintype=pas
-T 2045 1295 5 10 1 1 0 6 1
+T 3045 1295 5 10 1 1 0 6 1
 pinlabel=VOUT
-T 2195 1345 5 10 1 1 0 0 1
+T 3195 1345 5 10 1 1 0 0 1
 pinnumber=10
 }
-P 2400 900 2100 900 1 0 0
+P 3400 900 3100 900 1 0 0
 {
-T 2400 900 5 10 0 0 0 0 1
+T 3400 900 5 10 0 0 0 0 1
 pintype=pwr
-T 2045 895 5 10 1 1 0 6 1
+T 3045 895 5 10 1 1 0 6 1
 pinlabel=VOUT
-T 2195 945 5 10 1 1 0 0 1
+T 3195 945 5 10 1 1 0 0 1
 pinnumber=11
 }
-P 2400 500 2100 500 1 0 0
+P 3400 500 3100 500 1 0 0
 {
-T 2400 500 5 10 0 0 0 0 1
+T 3400 500 5 10 0 0 0 0 1
 pintype=pas
-T 2045 495 5 10 1 1 0 6 1
+T 3045 495 5 10 1 1 0 6 1
 pinlabel=VOUT
-T 2195 545 5 10 1 1 0 0 1
+T 3195 545 5 10 1 1 0 0 1
 pinnumber=12
 }
+T 1332 3600 8 10 0 0 0 0 1
+datasheet=onsemi/NCP45560-D.PDF
+T 1332 3900 8 10 0 0 0 0 1
+footprint=506CD