// // file: qfn_16_on_ti // // date: 9-Nov-2012 Original Version for CMX // // 12-Apr-2015 Revision for NB7VQ14M on the Hub Module // Note that On-Semi may now be recommending // a pad width of 0.30mm (vs earlier 0.25 mm). // // 14-Apr-2015 Change pad width to 0.30 mm. See On-Semi SOLDERRM-D // // 21-Aug-2016 Rework this whole geometry in to my "new, simple" // format for QFN Exposed Pad devices. Dump a lot // of the old notes and comments. Look at the CMX // version of this Geometry if you want to see the // old stuff. Split QFN-16 into 3 versions: TI, // On-Semi for Top, On-Semi for the Bottom side. // // 13-Sep-2016 Move the backside metal for the center thermal/gnd // pad from Breakout_2 to Sheet_Dielectric_1. // Handling of the backside metal is described in // the Hub trace routing details file. // // 10-Dec-2016 To the Pin/Pad Stack for the Center Thermal Pad Via // geometry add a 0.28 mm diameter flash on PREPREG_5 // to indicate the location of a Via that needs to be // Plugged from the Top. This works because in the Hub // design the QFN_16_TI package is only instanced on // the top side of the card. // // 30-Jan-2017 Change the Power Relief of the Thermal/Ground via/pins // to the standard value for QFNs. // // // // // On the Hub Module this Geometry is used for: // // TI CDCLVD1204 1:4 Fanout of Clock Signals // // // // This geometry is for the 3mm x 3mm QFN-16 // Quad Flat No-leads 16 pin. // // There are some differences in pad sizes between the On-Semi // and TI devices. There are also differences between the PCB // layout recomendations from On-Semi and TI for the QFN-16. // I've given up on trying to make a common Geometry that will // work for for both and I'm switching to using a separate // geometry for each company's parts. // // // Recall that the center pad must be a Through Hole Device pad // as it must attach to the ground planes to carry away heat. // // Like other QFN packages there are special considerations // wrt Solder Mask openings and control of the Solder Paste // placement on the center pad. The Thermal Vias must be // "plugged" to prevent the solder for the center Exposed // Pad from wicking into these vias. // // // PCB PAD Layout - See TI QFN PCB Attachment SLUA271A Sept 2007 // - On-Semi SOLDERRM Rev. D March 2016 // // // TI Device Dimensions: // // Center Pad: 1.66 mm sq min typ // // Perimeter Pad Length: 0.30 mm min, 0.40 mm typ, 0.50 mm max // Perimeter Pad Width: 0.18 mm min, 0.30 mm max // // Distance between inner edges: 2.00 mm min, 2.40 mm max // of the Device's Perimeter Pads // // --> Heel-to-Hell Distance: 2.00 mm min, 2.20 mm typ, 2.40 mm max // // --> The Toe-to-Toe Distance is defined as 3.00 mm by the device size. // // // // TI Recommended PCB Pad Dimensions: // // Perimeter: 0.85 mm x 0.28 mm spaced 2.95 mm center to center // // Center: 1.70 mm x 1.70 mm // // Stencil: 68% of the center pad land area --> 1.40 mm sq total // // Clearance: 0.20 mm center pad to perimeter pads PCB // // Distance: 2.10 mm between inside edges of perimeter PCB pads // // --> Their PCB pad typically extends 0.05 mm further inward // than the Device pad. // // --> Their PCB pad typically extends 0.40 mm further outward // than the Device pad. // // // // This Geometry's Exposed PCB Pad Design: // // The pcb Exposed pad will be 1.70 mm x 1.70 mm. // This is exactly the TI recommended center pad size. // // There are 4 through holes spaced 0.50 mm in X and Y from 0,0 // This make these holes 1.00 mm apart in either X or Y // // These 4 pins are numbered 17:20 in the normal CCW layout // // The Solder Mask will be 1.80 mm x 1.80 mm centered on 0,0 // i.e. the Solder Mask is 0.05mm bigger at every edge // // The solder stincil will be: // 4 sections 0.70 mm x 0.70 mm i.e. about 68% // of the pcb center pad area. The solder stincil // goes out to within 0.05 mm of the edges of the // center pcb pad and has a 0.20 mm wide bars making // a cross in the center where no solder paste is applied. // // // // This Geometry's Perimeter PCB Pad Design: // // The pcb signal pads are 0.28 mm x 0.84 mm // // The Solder Mask opening is 0.38 mm x 0.94 mm centered on the pad // // The Solder Stencil opening is 0.28 mm x 0.84 mm centered on the pad // // Center-to-Center Pad Spacing across the device: 2.94 mm // // --> PCB Pad Heel-to-Heel Distance: 2.10 mm // // --> Clearance to the 1.70 mm sq center pad: 0.20 mm // // --> PCB Pad Toe-to-Toe Distance: 3.78 mm // // --> The PCB pad typically extends 0.05 mm further inward // than the Device pad. // // --> The PCB pad typically extends 0.39 mm further outward // than the Device pad. // // //---------------------------------------------------------------------------- // // // Lay this out with the Pin #1 in the top lefthand corner. // // Label the 4 DAP pads as pins: 17, 18, 19, 20 // // //---------------------------------------------------------------------------- // $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; // //---------------------------------------------------------------------------- // // Pads with a long Vertical axis. $$lock_windows(@on); $$create_pin("QFN_16_TI_Vert_Pad", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$QFN_16_TI_Vert_Pad']); $$point_mode(@vertex); $$polygon( "PAD", , [ 0.14, 0.42, -0.14, 0.42, -0.14, -0.42, 0.14, -0.42 ] ); $$polygon( "SOLDER_MASK", , [ 0.19, 0.47, -0.19, 0.47, -0.19, -0.47, 0.19, -0.47 ] ); $$polygon( "PASTE_MASK", , [ 0.14, 0.42, -0.14, 0.42, -0.14, -0.42, 0.14, -0.42 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- // Pads with a long Horizontal axis. $$lock_windows(@on); $$create_pin("QFN_16_TI_Horz_Pad", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$QFN_16_TI_Horz_Pad']); $$point_mode(@vertex); $$polygon( "PAD", , [ 0.42, 0.14, -0.42, 0.14, -0.42, -0.14, 0.42, -0.14 ] ); $$polygon( "SOLDER_MASK", , [ 0.47, 0.19, -0.47, 0.19, -0.47, -0.19, 0.47, -0.19 ] ); $$polygon( "PASTE_MASK", , [ 0.42, 0.14, -0.42, 0.14, -0.42, -0.14, 0.42, -0.14 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- // // Through Hole Pin/Pad Stack for the "Thermal Vias" // // 0.30 mm finished hole diameter // 0.60 mm land pad // 0.85 mm plane relief // 0.28 mm PrePreg_5 flash to indicate a // via that is plugged from the top // // // --> 0.275 mm clearance from edge of drill hole to Planes // // --> for 1.00 mm spacing there is a 0.15 mm wide neck // in the Ground web between drills // $$lock_windows(@on); $$create_pin( "QFN_16_TI_THD_Pin" ); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [ 0.0, 0.0, 'PI$QFN_16_TI_THD_Pin' ] ); $$point_mode(@vertex); $$attribute( "TERMINAL_THRUHOLE_DEFINITION", ""); $$attribute( "TERMINAL_DRILL_SIZE", "", , @scale , , [ 0.30, 0.0 ]); $$circle( "SIGNAL", 0.0, 0.0, 0.60, 0.0 ); $$circle( "POWER", 0.0, 0.0, 0.85, 0.0 ); $$circle( "PREPREG_5", 0.0, 0.0, 0.28, 0.0 ); //---------------------------------------------------------------------------- // // Now start the actual QFN-16 TI Geometry // $$lock_windows(@on) ; $$create_component("QFN_16_TI", @replace); $$page( 0.0, 0.0, 0.0, @mm, 0.0, 0.0, [ 0.0, 0.0, 'CO$QFN_16_TI' ]); $$point_mode(@vertex); // // $$attribute( "COMPONENT_LAYOUT_TYPE", "surface"); // $$attribute( "COMPONENT_LAYOUT_SURFACE", "both"); $$attribute( "COMPONENT_HEIGHT", "1.20", , @scale , , [0.0, 0.0] ); // // Component Placement Outline for the qfn_16_ti // $$initial([ -1.90, -1.90 ], , @nosnap ); $$terminal([ -1.90, 1.90 ] ); $$terminal([ 1.90, 1.90 ] ); $$terminal([ 1.90, -1.90 ] ); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // // Silkscreen Outline then Details // $$template_line_style( @Solid ); $$initial([ 2.10, 2.10 ], , @nosnap ); $$terminal([ -2.10, 2.10 ]); $$terminal([ -2.10, -2.10 ]); $$terminal([ 2.10, -2.10 ]); $$terminal([ 2.10, 2.10 ]); $$path( "SILKSCREEN", 0.20 ); // // Mark Pin Number 1 // $$circle( "SILKSCREEN_1", -2.7, 1.9, 0.8, 0.20 ); $$circle( "SILKSCREEN_1", -2.7, 1.9, 0.6, 0.20 ); // Silkscreen End of // // Reference Designator // $$text( "SILKSCREEN", "^$ref", 0.0, 4.0, 2.0, @CC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 ); // // Setup the Local Fiducial Marks // //$$circle( "PAD_1", 0.00, 4.50, 1.0, 0.0); //$$circle( "SOLDER_MASK_1", 0.00, 4.50, 1.3, 0.0); //$$circle( "PAD_1", 0.00, -4.50, 1.0, 0.0); //$$circle( "SOLDER_MASK_1", 0.00, -4.50, 1.3, 0.0); // // Now place the center Thermal Pad // // - Copper on Breakout 1 and 2 // // - Solder Mask Relief for this Thermal Pad // // - Paste Mask openings // $$polygon( "BREAKOUT_1", , [ -0.85, -0.85, 0.85, -0.85, 0.85, 0.85, -0.85, 0.85 ] ); $$polygon( "SOLDER_MASK_1", , [ -0.90, -0.90, 0.90, -0.90, 0.90, 0.90, -0.90, 0.90 ] ); $$polygon( "PASTE_MASK_1", , [ 0.10, 0.10, 0.80, 0.10, 0.80, 0.80, 0.10, 0.80 ] ); $$polygon( "PASTE_MASK_1", , [ -0.10, 0.10, -0.80, 0.10, -0.80, 0.80, -0.10, 0.80 ] ); $$polygon( "PASTE_MASK_1", , [ 0.10, -0.10, 0.80, -0.10, 0.80, -0.80, 0.10, -0.80 ] ); $$polygon( "PASTE_MASK_1", , [ -0.10, -0.10, -0.80, -0.10, -0.80, -0.80, -0.10, -0.80 ] ); $$polygon( "SHEET_DIELECTRIC_1", , [ -0.85, -0.85, 0.85, -0.85, 0.85, 0.85, -0.85, 0.85 ] ); // // Define the pins: // ------------------ // // Pads Along the Left-Hand Edge $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ -1.47, 0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, QFN_16_TI_Horz_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ -1.47, 0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, QFN_16_TI_Horz_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ -1.47, -0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, QFN_16_TI_Horz_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ -1.47, -0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, QFN_16_TI_Horz_Pad" ); // Pads Along the Bottom Edge $$attribute( "COMPONENT_PIN_DEFINITION", "5", , @scale , , [ -0.75, -1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "5, QFN_16_TI_Vert_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "6", , @scale , , [ -0.25, -1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "6, QFN_16_TI_Vert_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "7", , @scale , , [ 0.25, -1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "7, QFN_16_TI_Vert_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "8", , @scale , , [ 0.75, -1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "8, QFN_16_TI_Vert_Pad" ); // Pads Along the Right-Hand Edge $$attribute( "COMPONENT_PIN_DEFINITION", "9", , @scale , , [ 1.47, -0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "9, QFN_16_TI_Horz_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "10", , @scale , , [ 1.47, -0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "10, QFN_16_TI_Horz_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "11", , @scale , , [ 1.47, 0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "11, QFN_16_TI_Horz_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "12", , @scale , , [ 1.47, 0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "12, QFN_16_TI_Horz_Pad" ); // Pads Along the Top Edge $$attribute( "COMPONENT_PIN_DEFINITION", "13", , @scale , , [ 0.75, 1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "13, QFN_16_TI_Vert_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "14", , @scale , , [ 0.25, 1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "14, QFN_16_TI_Vert_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "15", , @scale , , [ -0.25, 1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "15, QFN_16_TI_Vert_Pad" ); $$attribute( "COMPONENT_PIN_DEFINITION", "16", , @scale , , [ -0.75, 1.47 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "16, QFN_16_TI_Vert_Pad" ); // Center Pad with 2x2 Drill Array Thermal/Ground Connection $$attribute( "COMPONENT_PIN_DEFINITION", "17", , @scale , , [ 0.50, 0.50 ]); $$attribute( "COMPONENT_PIN_DEFINITION", "18", , @scale , , [ -0.50, 0.50 ]); $$attribute( "COMPONENT_PIN_DEFINITION", "19", , @scale , , [ -0.50, -0.50 ]); $$attribute( "COMPONENT_PIN_DEFINITION", "20", , @scale , , [ 0.50, -0.50 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "17, QFN_16_TI_THD_Pin" ); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "18, QFN_16_TI_THD_Pin" ); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "19, QFN_16_TI_THD_Pin" ); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "20, QFN_16_TI_THD_Pin" );