diff --git a/AUTHORS b/AUTHORS index 2ec1870..c7f0b02 100644 --- a/AUTHORS +++ b/AUTHORS @@ -32,3 +32,4 @@ Werner Almesberger modules/usb-a-pcb.fpd modules/usb_a_plug_smt.fpd modules/sot-323.fpd + modules/ssop.fpd diff --git a/modules/ssop.fpd b/modules/ssop.fpd new file mode 100644 index 0000000..769a11c --- /dev/null +++ b/modules/ssop.fpd @@ -0,0 +1,74 @@ +/* MACHINE-GENERATED ! */ + +frame pin { + __0: vec @(D/2, C/2) + __1: vec @(-D/2, -C/2) + pad "$n" . __0 +} + +frame pins_top { + set n = N-i + + __0: vec @(x, 0mm) + frame pin . +} + +frame pins_bottom { + set n = i+1 + + __0: vec @(x, 0mm) + frame pin . +} + +frame pins { + set y = (A+B)/4 + + set x = (i-(N/2-1)/2)*P + + loop i = 0, N/2-1 + + __0: vec @(0mm, y) + frame pins_top . + __1: vec @(0mm, -y) + frame pins_bottom . +} + +frame outline { + set w = 5mil + + table + { r, d } + { 0.5mm, 2*r } + + __0: vec @(H/2, F/2) + __1: vec @(-H/2, -F/2) + rect . __0 w + __2: vec @(d-H/2, d-B/2) + __3: vec .(r, 0mm) + circ __2 . w +} + +package "SSOP-$N" +unit mm + +set P = 0.65mm + +set D = 0.4mm + +table + { N, A, B, C, F, H } + { 14, 8.1mm, 5.7mm, 1.2mm, 8.35mm, 4.55mm } + { 16, 8.1mm, 5.7mm, 1.2mm, 8.35mm, 5.2mm } + { 20, 8.1mm, 5.9mm, 1.1mm, 8.35mm, 6.5mm } + { 24, 8.1mm, 5.9mm, 1.1mm, 8.35mm, 7.8mm } + { 28, 8.1mm, 5.9mm, 1.1mm, 8.35mm, 9.1mm } + +frame outline @ +frame pins @ +measy outline.__1 >> outline.__0 1.5mm +measx outline.__1 >> outline.__0 F+1mm +measy pin.__1 -> pin.__0 1mm +measy pin.__1 >> pin.__0 -H-1mm +measy pin.__0 >> pin.__1 -H +measx pin.__1 -> pin.__0 -1mm +measx pins_top.__0 -> pins_top.__0 -2mm