diff --git a/AUTHORS b/AUTHORS index 278fe95..3a6e886 100644 --- a/AUTHORS +++ b/AUTHORS @@ -34,3 +34,4 @@ Werner Almesberger modules/usb_a_plug_smt.fpd modules/sot-323.fpd modules/ssop.fpd + modules/sot.fpd diff --git a/modules/INFO b/modules/INFO index b4c81b0..e9a5d29 100644 --- a/modules/INFO +++ b/modules/INFO @@ -96,3 +96,18 @@ N: mmst3904 # http://www.nxp.com/#/page/content=[f=/packages/SOT341-1.xml] F: ssop + +# experimental generic SOT footprint; currently only for +# +# - SOT-323 aka SC-70 +# http://www.onsemi.com/pub_link/Collateral/BAV99WT1-D.PDF +# - SOT-363 aka SC-88 aka SC-70-6 +# http://www.onsemi.com/pub_link/Collateral/MBT3946DW1T1-D.PDF +# - SOT-523 +# http://www.diodes.com/datasheets/ds31784.pdf +# - SOT-563 +# http://www.onsemi.com/pub_link/Collateral/NTZD3155C-D.PDF +# +# some conflicts with the outline exist + +F: sot diff --git a/modules/Makefile b/modules/Makefile index 46015b3..20d36d5 100644 --- a/modules/Makefile +++ b/modules/Makefile @@ -1,4 +1,4 @@ -MODULES=8_10-card fiducial mini-usb pads qfn qfp sot-323 ssop stdpass \ +MODULES=8_10-card fiducial mini-usb pads qfn qfp sot sot-323 ssop stdpass \ usb-a-pcb usb_a_plug_smt .SUFFIXES: .fpd .mod diff --git a/modules/sot.fpd b/modules/sot.fpd new file mode 100644 index 0000000..a52dae9 --- /dev/null +++ b/modules/sot.fpd @@ -0,0 +1,90 @@ +/* MACHINE-GENERATED ! */ + +frame pad { + set x = dx*e + + set y = dy*cy/2 + + __2: vec @(x, y) + __0: vec .(px/2, py/2) + __1: vec __2(-px/2, -py/2) + pad "$n" . __0 +} + +frame marker { + set x = D/2+r+w+clear + + set r = (px-w)/2 + + set clear = 0.15mm + + set y = cy/2 + + __0: vec @(-x, -y) + __1: vec .(r, 0mm) + circ __0 . w +} + +frame outline { + __0: vec @(D/2, E/2) + __1: vec @(D/2, -E/2) + line __0 . w + __2: vec @(-D/2, E/2) + __3: vec @(-D/2, -E/2) + line . __2 w +} + +frame pads6 { + table + { n, dx, dy } + { 1, -1, -1 } + { 2, 0, -1 } + { 3, 1, -1 } + { 4, 1, 1 } + { 5, 0, 1 } + { 6, -1, 1 } + + set x = dx*e + + set y = dy*cy/2 + + loop if = sqrt((N-6)*(N-6)), 0 + + frame marker @ + frame outline @ + frame pad @ +} + +frame pads3 { + table + { n, dx, dy } + { 1, -1, -1 } + { 2, 1, -1 } + { 3, 0, 1 } + + loop if = sqrt((N-3)*(N-3)), 0 + + frame outline @ + frame pad @ +} + +package "SOT-$Name" +unit mm + +table + { Name, N, D, E, e, cy, px, py } + { "323", 3, 2mm, 1.25mm, 0.65mm, 1.9mm, 0.7mm, 0.9mm } + { "363", 6, 2mm, 1.25mm, 0.65mm, 1.9mm, 0.4mm, 0.5mm } + { "523", 3, 1.6mm, 0.8mm, 0.5mm, 1.3mm, 0.4mm, 0.51mm } + { "563", 6, 1.6mm, 1.2mm, 0.5mm, 1.35mm, 0.3mm, 0.45mm } + +set w = 5mil + +frame pads6 @ +frame pads3 @ +measx outline.__2 >> outline.__0 1mm +measy outline.__3 >> outline.__2 0.5mm +measx pad.__1 -> pad.__0 -0.5mm +measy pad.__1 -> pad.__0 0.2mm +measx pad.__2 -> pad.__2 0.5mm +measy pad.__2 >> pad.__2 -D