modules/INFO |
557 | 557 | # |
558 | 558 | # http://www.ck-components.com/index.php?module=media&action=Display&cmpref=13325&lang=en&width=&height=&format=&alt= |
559 | 559 | # |
| 560 | |
| 561 | # ST LGA patterns (e.g., LGA-3x3-16 for LIS3DH) |
| 562 | F: LGA |
| 563 | # |
| 564 | # http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/TECHNICAL_NOTE/CD00134799.pdf |
| 565 | # |
| 566 | # Instead of using an asymmetric solder mask opening, we make the pads a bit |
| 567 | # larger on the outside. That way, the solder mask opens as well, plut the |
| 568 | # pads can be reached with a soldering iron. |
| 569 | # |
modules/lga.fpd |
| 1 | /* MACHINE-GENERATED ! */ |
| 2 | |
| 3 | frame piny { |
| 4 | set name = i*f+a |
| 5 | |
| 6 | __0: vec @(dx*(py/2+pe), px/2) |
| 7 | __1: vec @(-dx*py/2, -px/2) |
| 8 | pad "$name" . __0 |
| 9 | } |
| 10 | |
| 11 | frame pinsy { |
| 12 | set y = e*(i-(ny-1)/2) |
| 13 | |
| 14 | set x = sx/2-py/2-b |
| 15 | |
| 16 | table |
| 17 | { dx, f, a } |
| 18 | { -1, -1, ny } |
| 19 | { 1, 1, pins-ny-nx+1 } |
| 20 | |
| 21 | loop i = 0, ny-1 |
| 22 | |
| 23 | __0: vec @(x*dx, y) |
| 24 | frame piny . |
| 25 | } |
| 26 | |
| 27 | frame pinx { |
| 28 | set name = i*f+a |
| 29 | |
| 30 | __0: vec @(px/2, -dy*py/2) |
| 31 | __1: vec @(-px/2, dy*py/2) |
| 32 | __2: vec .(0mm, dy*pe) |
| 33 | pad "$name" . __0 |
| 34 | } |
| 35 | |
| 36 | frame outline { |
| 37 | set corner = gap*2-(w+0.2mm)/sqrt(2) |
| 38 | |
| 39 | __0: vec @(sx/2, sy/2) |
| 40 | __1: vec __0(gap, gap) |
| 41 | __2: vec @(-sx/2, -sy/2) |
| 42 | __3: vec __2(-gap, -gap) |
| 43 | rect . __1 w |
| 44 | __4: vec @(-sx/2, sy/2) |
| 45 | __5: vec .(-gap, gap) |
| 46 | __6: vec .(corner, 0mm) |
| 47 | __7: vec __5(0mm, -corner) |
| 48 | line . __6 w |
| 49 | } |
| 50 | |
| 51 | frame pinsx { |
| 52 | set x = e*(i-(nx-1)/2) |
| 53 | |
| 54 | set y = sy/2-py/2-b |
| 55 | |
| 56 | table |
| 57 | { dy, f, a } |
| 58 | { -1, 1, ny+1 } |
| 59 | { 1, -1, pins } |
| 60 | |
| 61 | loop i = 0, nx-1 |
| 62 | |
| 63 | __0: vec @(x, y*dy) |
| 64 | frame pinx . |
| 65 | } |
| 66 | |
| 67 | package "LGA-$pins-${sizex}x${sizey}" |
| 68 | unit mm |
| 69 | |
| 70 | table |
| 71 | { nx, ny, sx, sy, e, b, px, py, pe } |
| 72 | { 3, 5, 3mm, 3mm, 0.5mm, 0.1mm, 0.25mm, 0.35mm, 0.2mm } |
| 73 | |
| 74 | set pins = 2*(nx+ny) |
| 75 | |
| 76 | set sizex = sx/1mm |
| 77 | |
| 78 | set sizey = sy/1mm |
| 79 | |
| 80 | set w = 5mil |
| 81 | |
| 82 | set gap = 0.2mm+w/2+0.1mm |
| 83 | |
| 84 | frame pinsx @ |
| 85 | frame pinsy @ |
| 86 | frame outline @ |
| 87 | measx outline.__2 >> outline.__0 -1.5mm |
| 88 | measy outline.__2 >> outline.__0 1.5mm |
| 89 | measx pinsx.__0 -> pinsx.__0 -1.5mm |
| 90 | measx pinx.__2 -> pinx.__0 py+0.5mm |
| 91 | measy pinx.__1 -> pinx.__0 0.2mm |
| 92 | measy pinx.__2 -> pinx.__1 0.2mm |
| 93 | measy outline.__3 >> outline.__5 1.5mm |
| 94 | measx outline.__3 >> outline.__1 -1.5mm |
| 95 | measy pinx.__1 >> outline.__2 -0.5mm |