Date:2010-08-12 14:39:13 (9 years 4 months ago)
Author:Werner Almesberger
Commit:87588bed0ed72bf44e01333d19915cbcebe6fb5a
Message:Added QFN28 and QFN32 footprints for MCU and TXRX.

Files: BOOKSHELF (1 diff)
modules/INFO (1 diff)
modules/qfn.fpd (1 diff)

Change Details

BOOKSHELF
3939# Footprints of standard rectangular passive components
4040N: stdpass
4141D: http://www.vishay.com/docs/20035/dcrcwe3.pdf
42
43# NXP SOT617-3 package (QFN32 with a 3.6 x 3.6 mm center pad)
44N: sot617-3-lp
45A: nxp-qfn32-lp
46D: http://www.nxp.com/documents/outline_drawing/sot617-3_po.pdf
47
48N: atmel-qfn
49D: http://www.atmel.com/dyn/resources/prod_documents/doc8583.pdf
modules/INFO
1414
1515# Standard rectangular passive components
1616F: stdpass
17
18# "Generic" simple QFN
19F: qfn
20#
21# The information for these packages comes from various sources:
22#
23# - the C8051F326 data sheet, for the QFN28 footprint (N: mcu)
24# - the AT86F326 data sheet, for the QFN32 package dimensions (N: txrx)
25# - Atmel's general recommendations for QFN land patterns (N: atmel-qfn)
26# - NXP's SOT617-1 and SOT617-3, for package and land pattern:
27# http://www.nxp.com/package/SOT617-1.html
28# http://www.nxp.com/package/SOT617-3.html
29#
30# Known bugs:
31#
32# - we should distribute the solder paste in an array of small
33# squares instead of just covering the whole center pad.
34# - really ought to merge all the various QFN definitions (we have more
35# over at gta02-core) into a single QFN file with a big mean table of
36# everything
37#
38N: sot617-3-lp
modules/qfn.fpd
1/* MACHINE-GENERATED ! */
2
3frame center {
4    set pin = pins+1
5
6    set x = D2+0.1mm
7
8    set y = E2+0.1mm
9
10    __0: vec @(x/2, y/2)
11    __1: vec @(-x/2, -y/2)
12    pad "$pin" . __0
13}
14
15frame pad {
16    set px = (dx*X1+dy*Y1)/2
17
18    set py = (dy*X1+dx*Y1)/2
19
20    set pin = side*pins/4+i+1
21
22    __0: vec @(px, py)
23    __1: vec @(-px, -py)
24    pad "$pin" __0 .
25}
26
27frame side {
28    set pos = i-(pins/4-1)/2
29
30    loop i = 0, pins/4-1
31
32    __0: vec @(E*pos*dx, E*pos*dy)
33    frame pad .
34}
35
36frame pads {
37    table
38        { side, dx, dy }
39        { 0, 0, -1 }
40        { 1, 1, 0 }
41        { 2, 0, 1 }
42        { 3, -1, 0 }
43
44    __0: vec @(dy*C1/2, -dx*C2/2)
45    frame side .
46}
47
48frame index {
49}
50
51frame outline {
52    table
53        { index, dx, _, dy }
54        { 1, -1, 0, 0 }
55        { 0, 0, 0, -1 }
56        { 0, 1, 0, 0 }
57        { 0, 0, 0, 1 }
58
59    set mx = dx*C1/2
60
61    set my = dy*C2/2
62
63    set cx = mx+my
64
65    set cy = my-mx
66
67    set ax = -Y1/2*dx
68
69    set ay = -Y1/2*dy
70
71    set bx = -Y1/2*dy
72
73    set by = Y1/2*dx
74
75    __0: vec @(cx, cy)
76    w: vec .(ax, ay)
77    line __0 . w
78    __2: vec __0(bx, by)
79    line __0 . w
80    __1: vec .(index*(ax-bx), index*(ay-by))
81    line __2 . w
82}
83
84package "QFN$pins"
85unit mm
86
87table
88    { pins, X1, Y1, E, C1, C2, D2, E2 }
89    { 28, 0.25mm, 0.9mm, 0.5mm, 4.8mm, 4.8mm, 3.15mm, 3.15mm }
90    { 32, 0.29mm, 0.9mm, 0.5mm, 5.1mm, 5.1mm, 3.3mm, 3.3mm }
91
92set X2 = X1+(pins/4-1)*E
93
94set Y2 = X2
95
96set w = 5mil
97
98__0: vec @(D2/2, E2/2)
99frame pads @
100frame center @
101frame outline @

Archive Download the corresponding diff file



interactive