changeset 87:60f864a068d5

ifctf-part-lib/m4-fp/hirose.inc: FH12 series footprints created
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 26 Apr 2018 00:42:23 +0000
parents ccbf05fcbcb2
children aab9b7e63fb6
files ifctf-part-lib/m4-fp/hirose.inc
diffstat 1 files changed, 132 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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)')