#!/bin/sh # Reference: Microchip Packaging Specification DS00000049BX (en012702.pdf), SSOP #@@example bga(map=a1:a2:a3:#:b1:!:b3:#:c1:c2:!) #@@purpose Generate ball grid array #@@desc Generate a grid of circular pads for BGA chips #@@params nx,ny,spacing,balldia,silkmark,map,width,height,automap,automap2,alphabet,ballmask,ballpaste,3dslant,3delevation #@@param:nx number of pins in the X direction #@@optional:nx #@@default:nx deduced from the map #@@param:ny number of pins in the Y direction #@@optional:ny #@@default:ny deduced from the map #@@param:spacing spacing between the pins #@@dim:spacing #@@default:spacing 0.5 mm #@@param:balldia diameter of a ball #@@dim:balldia #@@default:balldia 0.35 mm #@@param:ballmask diameter of the mask cutout #@@dim:ballmask #@@default:ballmask 0.45 mm #@@param:ballpaste diameter of the paste circle #@@dim:ballpaste #@@default:ballpaste 0.30 mm #@@include silkmark.help #@@optional:silkmark #@@default:silkmark square #@@preview_args:silkmark 3,3 #@@param:map pin name map; a colon separated list of names, from left to right, rows first. If a name is empty or is a hash mark, a new row is started. If a name is a !, the given pin is missing and no pad is generated. #@@optional:map #@@param:width width of the box (silk rectangle x size) #@@dim:width #@@optional:width #@@default:width two columns wider than the array #@@param:height height of the box (silk rectangle y size) #@@dim:height #@@optional:height #@@default:height two columns higher than the array #@@param:automap assume a regular nx*ny array, automap (autonumber) the pins #@@optional:automap #@@enum:automap:none do not autonumber pins #@@enum:automap:alnum number y rows from A..Z (then AA..AZ) from top to bottom, number x rows from 0..nx left to right #@@default:none #@@preview_args:automap 3,3 #@@thumbsize:automap 3 #@@thumbnum:automap 1 #@@param:automap2 change how automap behaves - multiple values separated by colon are accepted (e.g. automap2=pivot,reversex) #@@enum:automap2:pivot swap x and y #@@enum:automap2:reversex number x from right to left #@@enum:automap2:reversey number y from bottom up #@@preview_args:automap2 3,3,automap=alnum #@@thumbsize:automap2 3 #@@thumbnum:automap2 1 #@@param:alphabet the alphabet automap may use for rows; use A..Z if unspecified, else use the letters in this alphabet (in order). List letters without separator, e.g. ABCDEF #@@preview_args:automap2 3,3,automap=alnum,alphabet=QDT #@@thumbsize:automap2 3 #@@thumbnum:automap2 1 #@@param:3dslant if 0, 3d model is a cube, else it is the size of the slant on the 3d package model corners #@@optional:3dslant #@@default:0 #@@param:3delevation z-height or thickness of the body of the 3d model #@@optional:3delevation #@@include common_subc.awk awk -f `dirname $0`/common_subc.awk -f `dirname $0`/bga.awk -v "args=$*" -v gen=`basename $0` -v "genfull=$0"