Root/modules/qfp-gen.fpd

Source at commit 5ed16708597ccf77aca40505ca75716a6518b49e created 11 years 8 months ago.
By Werner Almesberger, modules/: add measurementes to DIP-4/6-300mil; add to catalog and Makefile
1/* MACHINE-GENERATED ! */
2
3frame meas_aux {
4    set ?dy = -1
5
6    __0: vec @(-wx/2, -wy/2)
7    __1: vec @(wx/2, wy/2)
8}
9
10frame land {
11    table
12        { dx, dy, n }
13        { 0, -1, i }
14        { 1, 0, i+N/4 }
15        { 0, 1, i+N/2 }
16        { -1, 0, i+3*N/4 }
17
18    set side = e*(i-N/8-0.5)
19
20    table
21        { sx, sy }
22        { side*-dy, side*dx }
23
24    table
25        { ix, iy, ox, oy, wx, wy }
26        { Gmin/2*dx, Gmin/2*dy, Zmax/2*dx, Zmax/2*dy, Xmax*-dy, Xmax*dx }
27
28    loop i = 1, N/4
29
30    __0: vec @(ix, iy)
31    __1: vec .(sx, sy)
32    __2: vec .(ox-ix, oy-iy)
33    frame meas_aux .
34    __4: vec .(wx/2, wy/2)
35    __3: vec __1(-wx/2, -wy/2)
36    pad "$n" . __4
37    __5: vec @((ix+ox)/2, (iy+oy)/2)
38}
39
40package "QFP$N-$pkg-$dens"
41unit mm
42
43table
44    { pkg, N, Dmin, Dmax, D1max, Lmin, Lmax, e, narrow, bmin, bmax, b1min, b1max }
45    { "MS026BBA", 32, 8.9mm, 9.1mm, 7.1mm, 0.45mm, 0.75mm, 0.8mm, 0, 0.3mm, 0.45mm, 0.3mm, 0.4mm }
46    { "MS026BBC", 48, 8.9mm, 9.1mm, 7.1mm, 0.45mm, 0.75mm, 0.5mm, 1, 0.17mm, 0.27mm, 0.17mm, 0.23mm }
47
48table
49    { Dtol, Ltol }
50    { Dmax-Dmin, Lmax-Lmin }
51
52table
53    { Smin, Cs, Smax }
54    { Dmin-2*Lmax, sqrt(Dtol*Dtol+Ltol*Ltol), Smin+Cs }
55
56set Cl = Dmax-Dmin
57
58set Cw = b1max-b1min
59
60table
61    { dens, ?narrow, Jt, Jh, Js, Court }
62    { "A", 0, 0.55mm, 0.45mm, 0.05mm, 0.5mm }
63    { "B", 0, 0.35mm, 0.35mm, 0.03mm, 0.25mm }
64    { "C", 0, 0.15mm, 0.25mm, 0.01mm, 0.1mm }
65    { "A", 1, 0.55mm, 0.45mm, 0.01mm, 0.5mm }
66    { "B", 1, 0.35mm, 0.35mm, -0.02mm, 0.25mm }
67    { "C", 1, 0.15mm, 0.25mm, -0.04mm, 0.1mm }
68
69table
70    { ?narrow, Jt_round, Jh_round, Js_round }
71    { 0, 0.02mm, 0.02mm, 0.01mm }
72    { 1, 0.02mm, 0.1mm, 0.01mm }
73
74set pcb_tolerance = 0.1mm
75
76set placement_tolerance = 0.1mm
77
78table
79    { F, P }
80    { pcb_tolerance, placement_tolerance }
81
82set Zmax_raw = Dmin+2*Jt+sqrt(Cl*Cl+F*F+P*P)
83
84set Gmin_raw = Smax-2*Jh-sqrt(Cs*Cs+F*F+P*P)
85
86set Xmax_raw = b1min+2*Js+sqrt(Cw*Cw+F*F+P*P)
87
88set Zmax = floor(Zmax_raw/Jt_round+0.5)*Jt_round
89
90set Gmin = floor(Gmin_raw/Jh_round+0.5)*Jh_round
91
92set Xmax = floor(Xmax_raw/Js_round+0.5)*Js_round
93
94frame land @
95measy land.__2 -> land.__1 -7mm
96measy land.__0 >> land.__0 6mm
97measy land.__2 >> land.__4 5mm
98measy land.__5 >> land.__5 7mm
99measx meas_aux.__0 -> land.__4 -1mm
100

Archive Download this file

Branches:
master



interactive