# HG changeset patch # User Mychaela Falconia # Date 1524703343 0 # Node ID 60f864a068d5d5730cf5345b4b01bc07498e6b73 # Parent ccbf05fcbcb26a7a632d7748c2d29dd480c2eb31 ifctf-part-lib/m4-fp/hirose.inc: FH12 series footprints created diff -r ccbf05fcbcb2 -r 60f864a068d5 ifctf-part-lib/m4-fp/hirose.inc --- a/ifctf-part-lib/m4-fp/hirose.inc Wed Apr 25 20:13:34 2018 +0000 +++ b/ifctf-part-lib/m4-fp/hirose.inc Thu Apr 26 00:42:23 2018 +0000 @@ -74,3 +74,135 @@ define(`PKG_DF19RCPT_14H', `DF19RCPT_HOR_TOP(`$1',`$2',`$3',14)') define(`PKG_DF19RCPT_20H', `DF19RCPT_HOR_TOP(`$1',`$2',`$3',20)') define(`PKG_DF19RCPT_30H', `DF19RCPT_HOR_TOP(`$1',`$2',`$3',30)') + +# Hirose FH12 series - FFC/FPC connectors +# 0.5 mm pitch, horizontal mounting +# +# Some applications of these connectors define the leftmost contact +# to be pin 1, while others define it to be the rightmost contact; +# we provide footprint versions for both configurations. +# +# $1: canonical name +# $2: name on PCB +# $3: value +# $4: number of contacts +# $5: 1 to put pin 1 on the left or -1 to put it on the right +define(`FH12_05SH_FAMILY', + ` +Element[0x00 "$1" "$2" "$3" 200000 100000 0 0 0 100 0x00] +( + # We put the mark at the bottom of the keepout directly under pin 1 + # all units are um + define(`left_gnd_nearedge', -1000) + define(`left_gnd_centre', eval(left_gnd_nearedge - 900)) + define(`left_gnd_faredge', eval(left_gnd_nearedge - 1800)) + define(`right_gnd_nearedge', eval(($4 - 1) * 500 + 1000)) + define(`right_gnd_centre', eval(right_gnd_nearedge + 900)) + define(`right_gnd_faredge', eval(right_gnd_nearedge + 1800)) + # x dimensions + define(`padwidth', 300) + define(`gndpadwidth', 1800) + # y axis planning + define(`gndbot', 1900) + define(`gndtop', 4100) + define(`padbot', 5600) + define(`padtop', 6900) + # soldermask opening fudge + define(`maskextra_pad', 100) + define(`maskextra_gnd', 150) + # draw the pads first + forloop(i, 1, $4, ` + define(`Xpos', eval((i-1) * 500 * $5)`um') + Pad[Xpos -eval(padtop-padwidth/2)`um' + Xpos -eval(padbot+padwidth/2)`um' + padwidth`um' 100um eval(padwidth+maskextra_pad)`um' + "" "i" ""] + ') + # ground/mechanical pads + define(`Xpos', eval(left_gnd_centre * $5)`um') + Pad[Xpos -eval(gndtop-gndpadwidth/2)`um' + Xpos -eval(gndbot+gndpadwidth/2)`um' + gndpadwidth`um' 100um eval(gndpadwidth+maskextra_gnd)`um' + "GND" "eval($4 + 1)" ""] + define(`Xpos', eval(right_gnd_centre * $5)`um') + Pad[Xpos -eval(gndtop-gndpadwidth/2)`um' + Xpos -eval(gndbot+gndpadwidth/2)`um' + gndpadwidth`um' 100um eval(gndpadwidth+maskextra_gnd)`um' + "GND" "eval($4 + 2)" ""] + # silk outline, legacy mil units + define(`silkW', 1000) + define(`silkext', 1100) + define(`silktop', eval(padtop * 1000 / 254 + silkext)) + define(`silkleft', eval(left_gnd_faredge * $5 * 1000 / 254 + silkext)) + define(`silkright', eval(right_gnd_faredge * $5 * 1000 / 254 + silkext)) + ElementLine[silkleft -silktop silkright -silktop silkW] + ElementLine[silkleft silkext silkright silkext silkW] + ElementLine[silkleft -silktop silkleft silkext silkW] + ElementLine[silkright -silktop silkright silkext silkW] +)') + +# Footprints with pin 1 on the left + +define(`PKG_FH12_6S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 6, 1)') +define(`PKG_FH12_8S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 8, 1)') +define(`PKG_FH12_10S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 10, 1)') +define(`PKG_FH12_11S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 11, 1)') +define(`PKG_FH12_12S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 12, 1)') +define(`PKG_FH12_13S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 13, 1)') +define(`PKG_FH12_14S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 14, 1)') +define(`PKG_FH12_15S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 15, 1)') +define(`PKG_FH12_16S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 16, 1)') +define(`PKG_FH12_17S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 17, 1)') +define(`PKG_FH12_18S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 18, 1)') +define(`PKG_FH12_19S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 19, 1)') +define(`PKG_FH12_20S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 20, 1)') +define(`PKG_FH12_22S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 22, 1)') +define(`PKG_FH12_24S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 24, 1)') +define(`PKG_FH12_25S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 25, 1)') +define(`PKG_FH12_26S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 26, 1)') +define(`PKG_FH12_28S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 28, 1)') +define(`PKG_FH12_29S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 29, 1)') +define(`PKG_FH12_30S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 30, 1)') +define(`PKG_FH12_32S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 32, 1)') +define(`PKG_FH12_33S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 33, 1)') +define(`PKG_FH12_34S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 34, 1)') +define(`PKG_FH12_35S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 35, 1)') +define(`PKG_FH12_36S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 36, 1)') +define(`PKG_FH12_40S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 40, 1)') +define(`PKG_FH12_42S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 42, 1)') +define(`PKG_FH12_45S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 45, 1)') +define(`PKG_FH12_50S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 50, 1)') +define(`PKG_FH12_53S_05SH_1L', `FH12_05SH_FAMILY(`$1',`$2',`$3', 53, 1)') + +# Footprints with pin 1 on the right + +define(`PKG_FH12_6S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 6, -1)') +define(`PKG_FH12_8S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 8, -1)') +define(`PKG_FH12_10S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 10, -1)') +define(`PKG_FH12_11S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 11, -1)') +define(`PKG_FH12_12S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 12, -1)') +define(`PKG_FH12_13S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 13, -1)') +define(`PKG_FH12_14S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 14, -1)') +define(`PKG_FH12_15S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 15, -1)') +define(`PKG_FH12_16S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 16, -1)') +define(`PKG_FH12_17S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 17, -1)') +define(`PKG_FH12_18S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 18, -1)') +define(`PKG_FH12_19S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 19, -1)') +define(`PKG_FH12_20S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 20, -1)') +define(`PKG_FH12_22S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 22, -1)') +define(`PKG_FH12_24S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 24, -1)') +define(`PKG_FH12_25S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 25, -1)') +define(`PKG_FH12_26S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 26, -1)') +define(`PKG_FH12_28S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 28, -1)') +define(`PKG_FH12_29S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 29, -1)') +define(`PKG_FH12_30S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 30, -1)') +define(`PKG_FH12_32S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 32, -1)') +define(`PKG_FH12_33S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 33, -1)') +define(`PKG_FH12_34S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 34, -1)') +define(`PKG_FH12_35S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 35, -1)') +define(`PKG_FH12_36S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 36, -1)') +define(`PKG_FH12_40S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 40, -1)') +define(`PKG_FH12_42S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 42, -1)') +define(`PKG_FH12_45S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 45, -1)') +define(`PKG_FH12_50S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 50, -1)') +define(`PKG_FH12_53S_05SH_1R', `FH12_05SH_FAMILY(`$1',`$2',`$3', 53, -1)')