FreeCalypso > hg > ueda-linux
changeset 128:e90e948e9368
m4-fp: SRAM_TSOPII_44 footprint added
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 16 Jul 2020 18:23:22 +0000 |
parents | 2da7374372a0 |
children | 3f475a608cc2 |
files | ifctf-part-lib/m4-fp/common.m4 ifctf-part-lib/m4-fp/gullwing.inc |
diffstat | 2 files changed, 60 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ifctf-part-lib/m4-fp/common.m4 Thu Jul 16 18:22:33 2020 +0000 +++ b/ifctf-part-lib/m4-fp/common.m4 Thu Jul 16 18:23:22 2020 +0000 @@ -96,6 +96,7 @@ include(dil.inc) include(dpr.inc) include(geda.inc) +include(gullwing.inc) include(hirose.inc) include(johnstech.inc) include(midcom.inc)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ifctf-part-lib/m4-fp/gullwing.inc Thu Jul 16 18:23:22 2020 +0000 @@ -0,0 +1,59 @@ +# -*- m4 -*- +# +# Miscellaneous gull wing packages not covered by old geda.inc set + +# 44-lead TSOP II package used by many SRAM ICs +# based on Cypress DOC-11360 "44-TSOP II.pdf" drawing + +define(`PKG_SRAM_TSOPII_44', + ` +Element[0x00 "$1" "$2" "$3" 200000 100000 0 0 0 100 0x00] +( + # distance from centre of part to centre of pad (nm) + define(`pad_ctr', eval(11410800/2)) + # pad thickness + define(`pad_thick', 477000) + # pad thickness plus soldermask expansion + define(`pad_thickmask', eval(pad_thick+150000)) + # movement of aperture to draw each pad + define(`pad_apert_move', eval((1517400-pad_thick)/2)) + # inner and outer X coordinates of each Pad object + define(`pad_inner', eval(pad_ctr-pad_apert_move)) + define(`pad_outer', eval(pad_ctr+pad_apert_move)) + # stupid PCB clearance parameter + define(`clearance', 10mil) + + # left row of pads + define(`Ypos', -8400) + forloop(`i', 1, 22, ` + Pad[-pad_inner`nm' Ypos`um' -pad_outer`nm' Ypos`um' + pad_thick`nm' clearance pad_thickmask`nm' + "" "i" "square"] + define(`Ypos', eval(Ypos+800)) + ') + # right row of pads + define(`Ypos', 8400) + forloop(`i', 23, 44, ` + Pad[pad_inner`nm' Ypos`um' pad_outer`nm' Ypos`um' + pad_thick`nm' clearance pad_thickmask`nm' + "" "i" "square"] + define(`Ypos', eval(Ypos-800)) + ') + + # silk line thickness (nm) + define(`silkW', 150000) + # silk outline X extent (nm) + define(`silkX', eval(pad_outer+(pad_thickmask/2)+(silkW/2))) + # silk outline Y extent (nm) + define(`silkY', eval(18517000/2)) + # arc radius + define(`silk_arc_rad', 0.65mm) + + # draw the silk outline + ElementLine[-silkX`nm' -silkY`nm' -silk_arc_rad -silkY`nm' silkW`nm'] + ElementArc[0 -silkY`nm' silk_arc_rad silk_arc_rad 0 180 silkW`nm'] + ElementLine[silk_arc_rad -silkY`nm' silkX`nm' -silkY`nm' silkW`nm'] + ElementLine[silkX`nm' -silkY`nm' silkX`nm' silkY`nm' silkW`nm'] + ElementLine[silkX`nm' silkY`nm' -silkX`nm' silkY`nm' silkW`nm'] + ElementLine[-silkX`nm' silkY`nm' -silkX`nm' -silkY`nm' silkW`nm'] +)')