rename some footprints to be less generic
authorBdale Garbee <bdale@gag.com>
Thu, 18 Nov 2010 22:44:08 +0000 (15:44 -0700)
committerBdale Garbee <bdale@gag.com>
Thu, 18 Nov 2010 22:44:08 +0000 (15:44 -0700)
pkg/newlib/DFN10_EP.fp
pkg/newlib/MCP-DFN10.fp [new file with mode: 0644]
pkg/newlib/MCP-DFN10.py [new file with mode: 0755]
pkg/newlib/QFN36.py [deleted file]
pkg/newlib/TI-QFN36.fp [new file with mode: 0644]
pkg/newlib/TI-QFN36.py [new file with mode: 0755]
pkg/newlib/molex/picoblade-th-v.py

index 204d3d7d6ec2b0b64d3997efc3eb70fb03f737b9..17dce5b12677e45e7d837d2aa1b7474c8920a4ef 100644 (file)
@@ -24,19 +24,19 @@ Element[0x00000000 "Dual-Flat-Nolead-DFN-10pin-0.5mm-pitch-exposed-pad-package-3
 #     soldermask, "pin name", "pin number", flags]
 
 # bottom row
-       Pad[-3937  7185 -3937  5020 1181 1600 1381 "1"  "1"   0x00000100]
-       Pad[-1969  7185 -1969  5020 1181 1600 1381 "2"  "2"   0x00000100]
-       Pad[    0  7185     0  5020 1181 1600 1381 "3"  "3"   0x00000100]
-       Pad[ 1969  7185  1969  5020 1181 1600 1381 "4"  "4"   0x00000100]
-       Pad[ 3937  7185  3937  5020 1181 1600 1381 "5"  "5"   0x00000100]
+       Pad[-3937  7185 -3937  5020 1181 1600 1781 "1"  "1"   0x00000100]
+       Pad[-1969  7185 -1969  5020 1181 1600 1781 "2"  "2"   0x00000100]
+       Pad[    0  7185     0  5020 1181 1600 1781 "3"  "3"   0x00000100]
+       Pad[ 1969  7185  1969  5020 1181 1600 1781 "4"  "4"   0x00000100]
+       Pad[ 3937  7185  3937  5020 1181 1600 1781 "5"  "5"   0x00000100]
 
 # top row
-       Pad[ 3937 -7185  3937 -5020 1181 1600 1381 "6"  "6"   0x00000100]
-       Pad[ 1969 -7185  1969 -5020 1181 1600 1381 "7"  "7"   0x00000100]
-       Pad[    0 -7185     0 -5020 1181 1600 1381 "8"  "8"   0x00000100]
-       Pad[-1969 -7185 -1969 -5020 1181 1600 1381 "9"  "9"   0x00000100]
-       Pad[-3937 -7185 -3937 -5020 1181 1600 1381 "10" "10"  0x00000100]
+       Pad[ 3937 -7185  3937 -5020 1181 1600 1781 "6"  "6"   0x00000100]
+       Pad[ 1969 -7185  1969 -5020 1181 1600 1781 "7"  "7"   0x00000100]
+       Pad[    0 -7185     0 -5020 1181 1600 1781 "8"  "8"   0x00000100]
+       Pad[-1969 -7185 -1969 -5020 1181 1600 1781 "9"  "9"   0x00000100]
+       Pad[-3937 -7185 -3937 -5020 1181 1600 1781 "10" "10"  0x00000100]
 
 # Exposed paddle (if this is an exposed paddle part)
-       Pad[ -1457     0  1457    0 6496 1600 6796 "11" "11"  0x00000100]
+       Pad[ -1457     0  1457    0 6496 1600 7096 "11" "11"  0x00000100]
 )
diff --git a/pkg/newlib/MCP-DFN10.fp b/pkg/newlib/MCP-DFN10.fp
new file mode 100644 (file)
index 0000000..85db7bf
--- /dev/null
@@ -0,0 +1,29 @@
+# author: Bdale Garbee
+# email: bdale@gag.com
+# dist-license: GPL 2
+# use-license: unlimited
+Element[0x0 "DFN10" "" "" 0 0 0 0 0 100 0x0]
+(
+   Pad[ -1830 0 1831 0 6102 0 6702 "pin11" "11" "square"]
+   Pin[ -3254 -1525 2800 1000 0 1500 "pin11" "11" 0x0002]
+   Pin[ 0 -1525 2800 1000 0 1500 "pin11" "11" 0x0002]
+   Pin[ 3255 -1525 2800 1000 0 1500 "pin11" "11" 0x0002]
+   Pin[ -3254 1526 2800 1000 0 1500 "pin11" "11" 0x0002]
+   Pin[ 0 1526 2800 1000 0 1500 "pin11" "11" 0x0002]
+   Pin[ 3255 1526 2800 1000 0 1500 "pin11" "11" 0x0002]
+   Pad[ -3936 -5412 -3936 -6790 1181 787 1583 "pin10" "10" "square"]
+   Pad[ -3936 5413 -3936 6791 1181 787 1583 "pin1" "1" "square"]
+   Pad[ -1968 -5412 -1968 -6790 1181 787 1583 "pin9" "9" "square"]
+   Pad[ -1968 5413 -1968 6791 1181 787 1583 "pin2" "2" "square"]
+   Pad[ 0 -5412 0 -6790 1181 787 1583 "pin8" "8" "square"]
+   Pad[ 0 5413 0 6791 1181 787 1583 "pin3" "3" "square"]
+   Pad[ 1969 -5412 1969 -6790 1181 787 1583 "pin7" "7" "square"]
+   Pad[ 1969 5413 1969 6791 1181 787 1583 "pin4" "4" "square"]
+   Pad[ 3937 -5412 3937 -6790 1181 787 1583 "pin6" "6" "square"]
+   Pad[ 3937 5413 3937 6791 1181 787 1583 "pin5" "5" "square"]
+   ElementLine[ -5906 -5906 5906 -5906 500 ]
+   ElementLine[ -5906 -5906 -5906 5906 500 ]
+   ElementLine[ -5906 5906 5906 5906 500 ]
+   ElementLine[ 5906 5906 5906 -5906 500 ]
+   ElementArc[ -5905 5906 500 500 0 360 1000 ]
+)
diff --git a/pkg/newlib/MCP-DFN10.py b/pkg/newlib/MCP-DFN10.py
new file mode 100755 (executable)
index 0000000..0013a2a
--- /dev/null
@@ -0,0 +1,120 @@
+#!/usr/bin/python
+# Copyright 2008 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for DFN10 package used by Microchip MCP73837
+#
+
+# dimensions in mm from the Microchip en012702.pdf datasheet
+PinWidth = 0.30                
+PinResist = 0.402              # width of gap in solder resist over pad
+PinHeight = 0.65
+PinSpacing = 0.50
+RowSpacing = 3.10
+PaddleLength = 2.48
+PaddleWidth = 1.55
+Length = 3.00
+Width = 3.00
+
+import sys
+
+# we're going to use the 1/100 of a mil fundamental unit form
+def mm2mils100( mm ):
+       return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
+
+print '# author: Bdale Garbee'
+print '# email: bdale@gag.com'
+print '# dist-license: GPL 2'
+print '# use-license: unlimited'
+
+print 'Element[0x0 "DFN10" "" "" 0 0 0 0 0 100 0x0]'
+print "("
+
+# pad under the chip, must be grounded
+print '   Pad[',\
+       mm2mils100(-PaddleLength/2 + PaddleWidth/2), \
+       mm2mils100(0), \
+       mm2mils100(PaddleLength/2 - PaddleWidth/2), \
+       mm2mils100(0), \
+       mm2mils100(PaddleWidth), \
+       0, \
+       mm2mils100(PaddleWidth)+600, \
+       '"pin11" "11" "square"]'
+
+## vias in the ground pad under the chip
+for viarow in range (-1,2,2):
+  for viacol in range (-1,2):
+    print '   Pin[',\
+       mm2mils100(viacol * PaddleLength / 3), \
+       mm2mils100(viarow * PaddleWidth / 4), \
+       2800, \
+       1000, \
+       0, \
+       1500, \
+       '"pin11" "11" 0x0002]'
+
+# pins
+for pin in range (1,6):
+    print '   Pad[',\
+       mm2mils100((pin - 3) * PinSpacing), \
+       mm2mils100(-RowSpacing/2 + PinHeight/2 - PinWidth/2), \
+       mm2mils100((pin - 3) * PinSpacing), \
+       mm2mils100(-RowSpacing/2 - PinHeight/2 + PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinResist), \
+       '"pin%i"' % (11-pin), '"%i"' % (11-pin), '"square"]'
+
+    print '   Pad[',\
+       mm2mils100((pin - 3) * PinSpacing), \
+       mm2mils100(+RowSpacing/2 - PinHeight/2 + PinWidth/2), \
+       mm2mils100((pin - 3) * PinSpacing), \
+       mm2mils100(+RowSpacing/2 + PinHeight/2 - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinResist), \
+       '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+
+#    print '   Pad[',\
+#      mm2mils100(-2.5 + pin * PinSpacing), \
+#      mm2mils100(+PinSpacing/2 - PinHeight + PinWidth/2), \
+#      mm2mils100(-2.5 + pin * PinSpacing), \
+#      mm2mils100(+PinSpacing/2 - PinWidth/2), \
+#      mm2mils100(PinWidth), \
+#      mm2mils100(PinSpacing - PinWidth), \
+#      mm2mils100(PinResist), \
+#      '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+
+print '   ElementLine[',\
+       -mm2mils100(Length/2), \
+       -mm2mils100(Width/2), \
+       mm2mils100(Length/2), \
+       -mm2mils100(Width/2), \
+       500, \
+       ']'
+print '   ElementLine[',\
+       -mm2mils100(Length/2), \
+       -mm2mils100(Width/2), \
+       -mm2mils100(Length/2), \
+       mm2mils100(Width/2), \
+       500, \
+       ']'
+print '   ElementLine[',\
+       -mm2mils100(Length/2), \
+       mm2mils100(Width/2), \
+       mm2mils100(Length/2), \
+       mm2mils100(Width/2), \
+       500, \
+       ']'
+print '   ElementLine[',\
+       mm2mils100(Length/2), \
+       mm2mils100(Width/2), \
+       mm2mils100(Length/2), \
+       -mm2mils100(Width/2), \
+       500, \
+       ']'
+
+print '   ElementArc[',\
+       mm2mils100(-Length/2), \
+       mm2mils100(Width/2), \
+       '500 500 0 360 1000 ]'
+print ")"
diff --git a/pkg/newlib/QFN36.py b/pkg/newlib/QFN36.py
deleted file mode 100755 (executable)
index a02e6ef..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/python
-# Copyright 2008 by Bdale Garbee <bdale@gag.com>.  GPLv2
-#
-# Program to emit PCB footprint for QFN36 package used by TI CC1111
-#
-
-# dimensions in mm from the TI cc1111f32.pdf datasheet
-PinWidth = 0.28                
-PinResist = 0.381              # width of gap in solder resist over pad
-PinHeight = 0.75
-PinSpacing = 0.50
-Overall = 6.30
-GndSquare = 4.40
-CoreSquare = 3.7592            # resist gaps and paste spots over ground tab
-PinSquare = 4.80
-
-import sys
-
-# we're going to use the 1/100 of a mil fundamental unit form
-def mm2mils100( mm ):
-       return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
-
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-
-# pad under the chip, must be grounded
-print '   Pad[',\
-       mm2mils100(0), \
-       mm2mils100(0), \
-       mm2mils100(0), \
-       mm2mils100(0), \
-       mm2mils100(GndSquare), \
-       0, \
-       0, \
-       '"pin37" "37" "square,nopaste"]'
-
-# vias in the ground pad under the chip
-for viarow in range (-1,2):
-  for viacol in range (-1,2):
-    print '   Pin[',\
-       mm2mils100(2 * viacol * CoreSquare / 5), \
-       mm2mils100(2 * viarow * CoreSquare / 5), \
-       2800, \
-       1000, \
-       0, \
-       1500, \
-       '"pin37" "37" 0x0002]'
-
-# break pad under chip into a grid to control the resist and paste masks
-for viarow in range (-2, 3):
-  for viacol in range (-2, 3):
-    if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
-      # copper sub-square with resist over vias
-      print '   Pad[',\
-       mm2mils100(viacol * CoreSquare / 5), \
-       mm2mils100(viarow * CoreSquare / 5), \
-       mm2mils100(viacol * CoreSquare / 5), \
-       mm2mils100(viarow * CoreSquare / 5), \
-       mm2mils100((CoreSquare)/5), \
-       0, \
-       0, \
-       '"pin37" "37" "square,nopaste"]'
-    else:
-      # copper sub-square without resist
-      print '   Pad[',\
-       mm2mils100(viacol * CoreSquare / 5), \
-       mm2mils100(viarow * CoreSquare / 5), \
-       mm2mils100(viacol * CoreSquare / 5), \
-       mm2mils100(viarow * CoreSquare / 5), \
-       mm2mils100((CoreSquare)/5), \
-       0, \
-       mm2mils100((CoreSquare)/5), \
-       '"pin37" "37" "square,nopaste"]'
-      # copper spot to control paste mask generation
-      print '   Pad[',\
-       mm2mils100(viacol * CoreSquare / 5), \
-       mm2mils100(viarow * CoreSquare / 5), \
-       mm2mils100(viacol * CoreSquare / 5), \
-       mm2mils100(viarow * CoreSquare / 5), \
-       1500, \
-       0, \
-       mm2mils100((CoreSquare)/5), \
-       '"pin37" "37" "square"]'
-
-# pins
-for pin in range (1,10):
-    print '   Pad[',\
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(-Overall/2 + PinWidth/2), \
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinResist), \
-       '"pin%i"' % (28-pin), '"%i"' % (28-pin), '0x0000]'
-
-    print '   Pad[',\
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(+Overall/2 - PinWidth/2), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinResist), \
-       '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
-
-    print '   Pad[',\
-       mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(Overall/2 - PinWidth/2), \
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinResist), \
-       '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]'
-
-    print '   Pad[',\
-       mm2mils100(-Overall/2 + PinWidth/2), \
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
-       mm2mils100(-2.5 + pin * PinSpacing), \
-       mm2mils100(PinWidth), \
-       mm2mils100(PinSpacing - PinWidth), \
-       mm2mils100(PinResist), \
-       '"pin%i"' % (27+pin), '"%i"' % (27+pin), '0x0000]'
-
-print '   ElementArc[',\
-       mm2mils100(-2.6), \
-       mm2mils100(2.6), \
-       '500 500 0 360 1000 ]'
-print ")"
diff --git a/pkg/newlib/TI-QFN36.fp b/pkg/newlib/TI-QFN36.fp
new file mode 100644 (file)
index 0000000..a2e90af
--- /dev/null
@@ -0,0 +1,95 @@
+# author: Bdale Garbee
+# email: bdale@gag.com
+# dist-license: GPL 2
+# use-license: unlimited
+Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]
+(
+   Pad[ 0 0 0 0 17323 0 0 "pin37" "37" "square,nopaste"]
+   Pin[ -5919 -5919 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ 0 -5919 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ 5920 -5919 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ -5919 0 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ 0 0 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ 5920 0 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ -5919 5920 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ 0 5920 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pin[ 5920 5920 2800 1000 0 1500 "pin37" "37" 0x0002]
+   Pad[ -5919 -5919 -5919 -5919 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 -5919 -2959 -5919 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 -5919 -2959 -5919 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 0 -5919 0 -5919 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 -5919 2960 -5919 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 -5919 2960 -5919 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 5920 -5919 5920 -5919 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ -5919 -2959 -5919 -2959 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -5919 -2959 -5919 -2959 1500 0 2960 "pin37" "37" "square"]
+   Pad[ -2959 -2959 -2959 -2959 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 -2959 -2959 -2959 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 0 -2959 0 -2959 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 0 -2959 0 -2959 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 2960 -2959 2960 -2959 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 -2959 2960 -2959 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 5920 -2959 5920 -2959 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 5920 -2959 5920 -2959 1500 0 2960 "pin37" "37" "square"]
+   Pad[ -5919 0 -5919 0 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 0 -2959 0 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 0 -2959 0 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 0 0 0 0 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 0 2960 0 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 0 2960 0 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 5920 0 5920 0 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ -5919 2960 -5919 2960 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -5919 2960 -5919 2960 1500 0 2960 "pin37" "37" "square"]
+   Pad[ -2959 2960 -2959 2960 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 2960 -2959 2960 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 0 2960 0 2960 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 0 2960 0 2960 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 2960 2960 2960 2960 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 2960 2960 2960 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 5920 2960 5920 2960 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 5920 2960 5920 2960 1500 0 2960 "pin37" "37" "square"]
+   Pad[ -5919 5920 -5919 5920 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 5920 -2959 5920 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ -2959 5920 -2959 5920 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 0 5920 0 5920 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 5920 2960 5920 2960 0 2960 "pin37" "37" "square,nopaste"]
+   Pad[ 2960 5920 2960 5920 1500 0 2960 "pin37" "37" "square"]
+   Pad[ 5920 5920 5920 5920 2960 0 0 "pin37" "37" "square,nopaste"]
+   Pad[ -7873 -11849 -7873 -9999 1102 866 1500 "pin27" "27" 0x0000]
+   Pad[ -7873 10000 -7873 11850 1102 866 1500 "pin1" "1" 0x0000]
+   Pad[ 10000 -7873 11850 -7873 1102 866 1500 "pin18" "18" 0x0000]
+   Pad[ -11849 -7873 -9999 -7873 1102 866 1500 "pin28" "28" 0x0000]
+   Pad[ -5905 -11849 -5905 -9999 1102 866 1500 "pin26" "26" 0x0000]
+   Pad[ -5905 10000 -5905 11850 1102 866 1500 "pin2" "2" 0x0000]
+   Pad[ 10000 -5905 11850 -5905 1102 866 1500 "pin17" "17" 0x0000]
+   Pad[ -11849 -5905 -9999 -5905 1102 866 1500 "pin29" "29" 0x0000]
+   Pad[ -3936 -11849 -3936 -9999 1102 866 1500 "pin25" "25" 0x0000]
+   Pad[ -3936 10000 -3936 11850 1102 866 1500 "pin3" "3" 0x0000]
+   Pad[ 10000 -3936 11850 -3936 1102 866 1500 "pin16" "16" 0x0000]
+   Pad[ -11849 -3936 -9999 -3936 1102 866 1500 "pin30" "30" 0x0000]
+   Pad[ -1968 -11849 -1968 -9999 1102 866 1500 "pin24" "24" 0x0000]
+   Pad[ -1968 10000 -1968 11850 1102 866 1500 "pin4" "4" 0x0000]
+   Pad[ 10000 -1968 11850 -1968 1102 866 1500 "pin15" "15" 0x0000]
+   Pad[ -11849 -1968 -9999 -1968 1102 866 1500 "pin31" "31" 0x0000]
+   Pad[ 0 -11849 0 -9999 1102 866 1500 "pin23" "23" 0x0000]
+   Pad[ 0 10000 0 11850 1102 866 1500 "pin5" "5" 0x0000]
+   Pad[ 10000 0 11850 0 1102 866 1500 "pin14" "14" 0x0000]
+   Pad[ -11849 0 -9999 0 1102 866 1500 "pin32" "32" 0x0000]
+   Pad[ 1969 -11849 1969 -9999 1102 866 1500 "pin22" "22" 0x0000]
+   Pad[ 1969 10000 1969 11850 1102 866 1500 "pin6" "6" 0x0000]
+   Pad[ 10000 1969 11850 1969 1102 866 1500 "pin13" "13" 0x0000]
+   Pad[ -11849 1969 -9999 1969 1102 866 1500 "pin33" "33" 0x0000]
+   Pad[ 3937 -11849 3937 -9999 1102 866 1500 "pin21" "21" 0x0000]
+   Pad[ 3937 10000 3937 11850 1102 866 1500 "pin7" "7" 0x0000]
+   Pad[ 10000 3937 11850 3937 1102 866 1500 "pin12" "12" 0x0000]
+   Pad[ -11849 3937 -9999 3937 1102 866 1500 "pin34" "34" 0x0000]
+   Pad[ 5906 -11849 5906 -9999 1102 866 1500 "pin20" "20" 0x0000]
+   Pad[ 5906 10000 5906 11850 1102 866 1500 "pin8" "8" 0x0000]
+   Pad[ 10000 5906 11850 5906 1102 866 1500 "pin11" "11" 0x0000]
+   Pad[ -11849 5906 -9999 5906 1102 866 1500 "pin35" "35" 0x0000]
+   Pad[ 7874 -11849 7874 -9999 1102 866 1500 "pin19" "19" 0x0000]
+   Pad[ 7874 10000 7874 11850 1102 866 1500 "pin9" "9" 0x0000]
+   Pad[ 10000 7874 11850 7874 1102 866 1500 "pin10" "10" 0x0000]
+   Pad[ -11849 7874 -9999 7874 1102 866 1500 "pin36" "36" 0x0000]
+   ElementArc[ -10235 10236 500 500 0 360 1000 ]
+)
diff --git a/pkg/newlib/TI-QFN36.py b/pkg/newlib/TI-QFN36.py
new file mode 100755 (executable)
index 0000000..a02e6ef
--- /dev/null
@@ -0,0 +1,136 @@
+#!/usr/bin/python
+# Copyright 2008 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for QFN36 package used by TI CC1111
+#
+
+# dimensions in mm from the TI cc1111f32.pdf datasheet
+PinWidth = 0.28                
+PinResist = 0.381              # width of gap in solder resist over pad
+PinHeight = 0.75
+PinSpacing = 0.50
+Overall = 6.30
+GndSquare = 4.40
+CoreSquare = 3.7592            # resist gaps and paste spots over ground tab
+PinSquare = 4.80
+
+import sys
+
+# we're going to use the 1/100 of a mil fundamental unit form
+def mm2mils100( mm ):
+       return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
+
+print '# author: Bdale Garbee'
+print '# email: bdale@gag.com'
+print '# dist-license: GPL 2'
+print '# use-license: unlimited'
+
+print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
+print "("
+
+# pad under the chip, must be grounded
+print '   Pad[',\
+       mm2mils100(0), \
+       mm2mils100(0), \
+       mm2mils100(0), \
+       mm2mils100(0), \
+       mm2mils100(GndSquare), \
+       0, \
+       0, \
+       '"pin37" "37" "square,nopaste"]'
+
+# vias in the ground pad under the chip
+for viarow in range (-1,2):
+  for viacol in range (-1,2):
+    print '   Pin[',\
+       mm2mils100(2 * viacol * CoreSquare / 5), \
+       mm2mils100(2 * viarow * CoreSquare / 5), \
+       2800, \
+       1000, \
+       0, \
+       1500, \
+       '"pin37" "37" 0x0002]'
+
+# break pad under chip into a grid to control the resist and paste masks
+for viarow in range (-2, 3):
+  for viacol in range (-2, 3):
+    if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
+      # copper sub-square with resist over vias
+      print '   Pad[',\
+       mm2mils100(viacol * CoreSquare / 5), \
+       mm2mils100(viarow * CoreSquare / 5), \
+       mm2mils100(viacol * CoreSquare / 5), \
+       mm2mils100(viarow * CoreSquare / 5), \
+       mm2mils100((CoreSquare)/5), \
+       0, \
+       0, \
+       '"pin37" "37" "square,nopaste"]'
+    else:
+      # copper sub-square without resist
+      print '   Pad[',\
+       mm2mils100(viacol * CoreSquare / 5), \
+       mm2mils100(viarow * CoreSquare / 5), \
+       mm2mils100(viacol * CoreSquare / 5), \
+       mm2mils100(viarow * CoreSquare / 5), \
+       mm2mils100((CoreSquare)/5), \
+       0, \
+       mm2mils100((CoreSquare)/5), \
+       '"pin37" "37" "square,nopaste"]'
+      # copper spot to control paste mask generation
+      print '   Pad[',\
+       mm2mils100(viacol * CoreSquare / 5), \
+       mm2mils100(viarow * CoreSquare / 5), \
+       mm2mils100(viacol * CoreSquare / 5), \
+       mm2mils100(viarow * CoreSquare / 5), \
+       1500, \
+       0, \
+       mm2mils100((CoreSquare)/5), \
+       '"pin37" "37" "square"]'
+
+# pins
+for pin in range (1,10):
+    print '   Pad[',\
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(-Overall/2 + PinWidth/2), \
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinResist), \
+       '"pin%i"' % (28-pin), '"%i"' % (28-pin), '0x0000]'
+
+    print '   Pad[',\
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(+Overall/2 - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinResist), \
+       '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+
+    print '   Pad[',\
+       mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(Overall/2 - PinWidth/2), \
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinResist), \
+       '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]'
+
+    print '   Pad[',\
+       mm2mils100(-Overall/2 + PinWidth/2), \
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
+       mm2mils100(-2.5 + pin * PinSpacing), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinResist), \
+       '"pin%i"' % (27+pin), '"%i"' % (27+pin), '0x0000]'
+
+print '   ElementArc[',\
+       mm2mils100(-2.6), \
+       mm2mils100(2.6), \
+       '500 500 0 360 1000 ]'
+print ")"
index 5f94ed3c65f807a74e7a06d7b44ffc38b8bfa591..a25f1615bba03c7f5c65f85105ade6f74930a131 100755 (executable)
@@ -10,7 +10,7 @@
 # dimensions in mm from 530470410_sd.pdf datasheet
 PinDiam = 0.52
 PinSpacing = 1.25
-RowOffset = 1.15
+BoxOffset = 1.15
 BoxHeight = 3.2
 BoxEnd = 1.5
 LineWidth = 600
@@ -43,8 +43,8 @@ for pin in range (1,pins+1):
     else:
        Flags = '0x0001'
     print '   Pin[', \
-       mm2mils100(BoxEnd + (pin-1)*PinSpacing), \
-       mm2mils100(RowOffset), \
+       mm2mils100((pins-1)*PinSpacing - (pin-1)*PinSpacing), \
+       0, \
        3500, \
        1200, \
        4100, \
@@ -54,31 +54,31 @@ for pin in range (1,pins+1):
 BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
 
 print '   ElementLine[', \
-       mm2mils100(0), \
-       mm2mils100(0), \
-       mm2mils100(0), \
-       mm2mils100(BoxHeight), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(-BoxOffset), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
        LineWidth, ']'
 
 print '   ElementLine[', \
-       mm2mils100(0), \
-       mm2mils100(BoxHeight), \
-       mm2mils100(BoxWidth), \
-       mm2mils100(BoxHeight), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
        LineWidth, ']'
 
 print '   ElementLine[', \
-       mm2mils100(BoxWidth), \
-       mm2mils100(BoxHeight), \
-       mm2mils100(BoxWidth), \
-       mm2mils100(0), \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(-BoxOffset), \
        LineWidth, ']'
 
 print '   ElementLine[', \
-       mm2mils100(BoxWidth), \
-       mm2mils100(0), \
-       mm2mils100(0), \
-       mm2mils100(0), \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(-BoxOffset), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(-BoxOffset), \
        LineWidth, ']'
   
 print ")"