mirror of
git://projects.qi-hardware.com/kicad-libs.git
synced 2024-11-26 12:56:17 +02:00
modules/qfp-gen.fpd: QFP modules generated from IPC-7351 formulas (WIP)
Known issues: - the dimensions don't look quite right yet. Especially clearance between pads is insufficient. - results need rounding - the design is a bit too efficient for its own good: several measurements aren't possible. Maybe split sides into different frames.
This commit is contained in:
parent
6c2655c5bc
commit
6a242723fb
84
modules/qfp-gen.fpd
Normal file
84
modules/qfp-gen.fpd
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
/* MACHINE-GENERATED ! */
|
||||||
|
|
||||||
|
frame land {
|
||||||
|
table
|
||||||
|
{ dx, dy, n }
|
||||||
|
{ 0, -1, i }
|
||||||
|
{ 1, 0, i+N/4 }
|
||||||
|
{ 0, 1, i+N/2 }
|
||||||
|
{ -1, 0, i+3*N/4 }
|
||||||
|
|
||||||
|
set side = e*(i-N/8-0.5)
|
||||||
|
|
||||||
|
table
|
||||||
|
{ sx, sy }
|
||||||
|
{ side*-dy, side*dx }
|
||||||
|
|
||||||
|
table
|
||||||
|
{ ix, iy, ox, oy, wx, wy }
|
||||||
|
{ Gmin/2*dx, Gmin/2*dy, Zmax/2*dx, Zmax/2*dy, Xmax*-dy, Xmax*dx }
|
||||||
|
|
||||||
|
loop i = 1, N/4
|
||||||
|
|
||||||
|
__0: vec @(ix, iy)
|
||||||
|
__1: vec .(sx, sy)
|
||||||
|
__2: vec .(ox-ix, oy-iy)
|
||||||
|
__4: vec .(wx/2, wy/2)
|
||||||
|
__3: vec __1(-wx/2, -wy/2)
|
||||||
|
pad "?" . __4
|
||||||
|
__5: vec @((ix+ox)/2, (iy+oy)/2)
|
||||||
|
}
|
||||||
|
|
||||||
|
package "QFP$N-$pkg-$dens"
|
||||||
|
unit mm
|
||||||
|
|
||||||
|
table
|
||||||
|
{ pkg, N, Dmin, Dmax, D1max, Lmin, Lmax, e, narrow, bmin, bmax, b1min, b1max }
|
||||||
|
{ "MS026BBA", 32, 8.9mm, 9.1mm, 7.1mm, 0.45mm, 0.75mm, 0.8mm, 0, 0.3mm, 0.45mm, 0.3mm, 0.4mm }
|
||||||
|
{ "MS026BBC", 48, 8.9mm, 9.1mm, 7.1mm, 0.45mm, 0.75mm, 0.5mm, 1, 0.17mm, 0.27mm, 0.17mm, 0.23mm }
|
||||||
|
|
||||||
|
table
|
||||||
|
{ Dtol, Ltol }
|
||||||
|
{ Dmax-Dmin, Lmax-Lmin }
|
||||||
|
|
||||||
|
table
|
||||||
|
{ Smin, Cs, Smax }
|
||||||
|
{ Dmin-2*Lmax, sqrt(Dtol*Dtol+Ltol*Ltol), Smin+Cs }
|
||||||
|
|
||||||
|
set Cl = Dmax-Dmin
|
||||||
|
|
||||||
|
set Cw = b1max-b1min
|
||||||
|
|
||||||
|
table
|
||||||
|
{ dens, ?narrow, Jt, Jh, Js, Court }
|
||||||
|
{ "A", 0, 0.55mm, 0.45mm, 0.05mm, 0.5mm }
|
||||||
|
{ "B", 0, 0.35mm, 0.35mm, 0.03mm, 0.25mm }
|
||||||
|
{ "C", 0, 0.15mm, 0.25mm, 0.01mm, 0.1mm }
|
||||||
|
{ "A", 1, 0.55mm, 0.45mm, 0.01mm, 0.5mm }
|
||||||
|
{ "B", 1, 0.35mm, 0.35mm, -0.02mm, 0.25mm }
|
||||||
|
{ "C", 1, 0.15mm, 0.25mm, -0.04mm, 0.1mm }
|
||||||
|
|
||||||
|
table
|
||||||
|
{ ?narrow, Jt_round, Jh_round, Js_round }
|
||||||
|
{ 0, 0.02mm, 0.02mm, 0.01mm }
|
||||||
|
{ 1, 0.02mm, 0.1mm, 0.01mm }
|
||||||
|
|
||||||
|
set pcb_tolerance = 0.1mm
|
||||||
|
|
||||||
|
set placement_tolerance = 0.1mm
|
||||||
|
|
||||||
|
table
|
||||||
|
{ F, P }
|
||||||
|
{ pcb_tolerance, placement_tolerance }
|
||||||
|
|
||||||
|
set Zmax = Dmin+2*Jt+sqrt(Cl*Cl+F*F+P*P)
|
||||||
|
|
||||||
|
set Gmin = Smax-2*Jh-sqrt(Cs*Cs+F*F+P*P)
|
||||||
|
|
||||||
|
set Xmax = b1min+2*Js+sqrt(Cw*Cw+F*F+P*P)
|
||||||
|
|
||||||
|
frame land @
|
||||||
|
measy land.__2 -> land.__1 1mm
|
||||||
|
measy land.__0 >> land.__0
|
||||||
|
measy land.__2 >> land.__4 4mm
|
||||||
|
measy land.__5 >> land.__5 6mm
|
Loading…
Reference in New Issue
Block a user