// // file: qfn_48_pin_56sq_geom.txt // // date: 21-Apr-2012 Original version of 32 pin part // // 16-Dec-2015 Moved to 48 pins for Hub Module // // 22-Jul-2016 Clean up and finish this geometry. I'm moving // QFN- geometry to my "modern" setup using through // hole pins for thermal vias and Breakout metal on // top and bottom for the Exposed Pad SMD Pad. // // 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-48 package is only instanced on the // top side of the card. // // 8-Nov-2022 Start some rework of this geometry to fit the // Analog Devices AD9546 clock generator. The initial // main difference is that the AD9546 has an Exposed // Thermal Pad that is 5.60 mm x 5.60 mm vs the // previous 4.10 x 4.10 mm pad. I will move it to a // 4x4 array of Paste Windows and a 5x5 array of // Thermal Vias. The Paste Windows will give about // 70% coverage. // // On the AD9546 its Exposed Pad is both Thermal and // it is this part's Ground. Analog Devices calls // the AD9546 package: CP-48-13 // // Recall Special Layer Usage: // // Backside of Thermal/Gnd Pad is on Sheet_Dielectric_1 // not on Breakout_2 // // Via Plugs for the Exposed Pad are on PREPREG_5 // // Recall that this geometry is only setup to be instanced // on the top side of the pcb. The actual name of this // geometry and the names of its 3 included Pin/Pad Stacks // now includes the sufix _56sq. // // // // Now used for the AD9546 Clock Generator // // // There are various names for this package but I like // QFN Quad Flatpack No_leads. The QFN name seems to // be becoming the most common. // // // PCB PAD Layout - This comes from the TI CDCLVD1216 data sheet // but many details have been updated to fit the // AD9546 applications - many details besides just // the size of the exposed thermal pad. // // Basic Design: // // The SMD Package is between 6.90 mm and 7.10 mm on a side square. // // Pin Pitch is 0.50 mm // // Pin Length is 0.40 mm nominal and weld within limits of 0.30 mm to 0.50 mm // // The ends of the pins are flush with the edge of the package. // // The Pin Pad Lands are 0.28 mm x 0.86 mm // // External edges of Pin Pad Lands are 7.80 mm apart. // // Thus center to center the pads are 6.95 mm apart aka +- 3.475 mm in X or Y // // Solder Mask is back by 0.05 mm on all edges of the Pin Pad Land. // // Pin Pad Paste Stencil opening is 0.24 mm x 0.80 mm 80% of land area // // Paste Stencil opening is centered on the Pin Pad Land. // // // On the package the Exposed Pad is 5.60 mm on a side. // It is a square with a small pin 1 notch // // On the package the clearance between the inner edge of a maximum // length pin and the perimeter of the Exposed Pad is 0.20 mm. // // On the PCB the clearance between the inner edge of a Pin Pad // and the perimeter of the Land for the Exposed Pad is 0.245 mm. // // The PCB Land for the Exposed Pad Land is square 5.60 mm on a side // // There are 25 Vias in the Thermal Pad all 0.30 mm diameter // // The Thermal Pad Vias are spaced 1.125 mm center to center // // The Thermal Pad Vias closest to the edge of the Thermal Pad // are centered 0.55 mm back from the edge of the Thermal Pad // which gives 0.40 mm from the edge of the Drill Hole to the // edge of the Thermal Pad. // // The Thermal Pad Paste Stencil had 16 openings // // - Each opening is 1.15 mm x 1.15 mm square // // - There is a 0.30 mm wall vertically and horizontally between openings // // - Note the Paste Stencil openings are not centered over the vias // // - Note the paste stencil opening is 67% of the land area // // - The edge of the Paste Stencil openings closest to the // the edge of the Thermal Pad are held 0.05 mm back // from the edge of the Thermal Pad // // The thinest part of the Solder Mask, between the perimeter // of the exposed pad and the inner edge of the pin pad is // only 0.145 mm wide. 0.20 would be more comfortable. // // I will use the following Signal Pad Design: // // The pcb signal pads land 0.28 mm x 0.86 mm // The Solder Mask opening 0.38 mm x 0.96 mm centered on land // The Solder Stencil opening 0.24 mm x 0.80 mm centered on land // // // // Lay this out with the Pin #1 in the top left-hand corner, NW corner. // // Label the 25 "Thermal Vias" as component pins: 51 through 75 // // //---------------------------------------------------------------------------- $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; //---------------------------------------------------------------------------- // Pads with a long axis vertical $$lock_windows(@on); $$create_pin("qfn_48_vert_pad_56sq", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$qfn_48_vert_pad_56sq']); $$point_mode(@vertex); $$polygon( "PAD_1", , [ 0.14, 0.43, -0.14, 0.43, -0.14, -0.43, 0.14, -0.43 ] ); $$polygon( "SOLDER_MASK_1", , [ 0.19, 0.48, -0.19, 0.48, -0.19, -0.48, 0.19, -0.48 ] ); $$polygon( "PASTE_MASK_1", , [ 0.12, 0.40, -0.12, 0.40, -0.12, -0.40, 0.12, -0.40 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // Pads with a long axis horizontal $$lock_windows(@on); $$create_pin("qfn_48_horz_pad_56sq", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$qfn_48_horz_pad_56sq']); $$point_mode(@vertex); $$polygon( "PAD_1", , [ 0.43, 0.14, -0.43, 0.14, -0.43, -0.14, 0.43, -0.14 ] ); $$polygon( "SOLDER_MASK_1", , [ 0.48, 0.19, -0.48, 0.19, -0.48, -0.19, 0.48, -0.19 ] ); $$polygon( "PASTE_MASK_1", , [ 0.40, 0.12, -0.40, 0.12, -0.40, -0.12, 0.40, -0.12 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // Through Hole Pin/Pad Stack for the 25 "Thermal Vias" // These are component pins 51 through 75. // // 0.30 mm drill 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 // // --> for 1.125 mm spacing there is a 0.275 mm wide neck // in the Ground web between drills // $$lock_windows(@on); $$create_pin( "qfn_48_thd_pin_56sq" ); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [ 0.0, 0.0, 'PI$qfn_48_thd_pin_56sq' ] ); $$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 ); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- $$lock_windows(@on) ; $$create_component("qfn_48_56sq", @replace); $$page( 0.0, 0.0, 0.0, @mm, 0.0, 0.0, [ 0.0, 0.0, 'CO$qfn_48_56sq' ]); $$point_mode(@vertex); $$attribute( "COMPONENT_LAYOUT_SURFACE", "both"); $$attribute( "COMPONENT_HEIGHT", "1.20", , @scale , , [0.0, 0.0] ); // // Component Placement Outline for the QFN-48 // $$initial([ -4.20, -4.20 ], , @nosnap ); $$terminal([ -4.20, 4.20 ] ); $$terminal([ 4.20, 4.20 ] ); $$terminal([ 4.20, -4.20 ] ); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // // Silkscreen // $$template_line_style( @Solid ); $$initial([ -4.30, -4.30 ], , @nosnap ); $$terminal([ -4.30, 4.30 ] ); $$terminal([ 4.30, 4.30 ] ); $$terminal([ 4.30, -4.30 ] ); $$terminal([ -4.30, -4.30 ] ); $$path( "SILKSCREEN_1", 0.20 ); $$circle( "SILKSCREEN_1", -4.8, 4.8, 0.5, 0.20 ); $$circle( "SILKSCREEN_1", -4.8, 4.8, 1.0, 0.20 ); // // End of Silkscreen // // Reference Designator $$text( "SILKSCREEN", "^$ref", 0.0, 6.2, 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 Sheet_Dielectric_1 // // - Solder Mask Relief for this Thermal Pad // // - Paste Mask openings: 1.15 mm on a side 0.30 mm walls in a 4x4 array // $$polygon( "BREAKOUT_1", , [ -2.80, -2.80, 2.80, -2.80, 2.80, 2.80, -2.80, 2.80 ] ); $$polygon( "SOLDER_MASK_1", , [ -2.85, -2.85, 2.85, -2.85, 2.85, 2.85, -2.85, 2.85 ] ); $$polygon( "SHEET_DIELECTRIC_1", , [ -2.60, -2.60, 2.60, -2.60, 2.60, 2.60, -2.60, 2.60 ] ); // TOP Row of Paste Mask Windows $$polygon( "PASTE_MASK_1", , [ -2.75, 1.60, -1.60, 1.60, -1.60, 2.75, -2.75, 2.75 ] ); $$polygon( "PASTE_MASK_1", , [ -1.30, 1.60, -0.15, 1.60, -0.15, 2.75, -1.30, 2.75 ] ); $$polygon( "PASTE_MASK_1", , [ 0.15, 1.60, 1.30, 1.60, 1.30, 2.75, 0.15, 2.75 ] ); $$polygon( "PASTE_MASK_1", , [ 1.60, 1.60, 2.75, 1.60, 2.75, 2.75, 1.60, 2.75 ] ); // Row of Paste Mask Windows just above the mid-line $$polygon( "PASTE_MASK_1", , [ -2.75, 0.15, -1.60, 0.15, -1.60, 1.30, -2.75, 1.30 ] ); $$polygon( "PASTE_MASK_1", , [ -1.30, 0.15, -0.15, 0.15, -0.15, 1.30, -1.30, 1.30 ] ); $$polygon( "PASTE_MASK_1", , [ 0.15, 0.15, 1.30, 0.15, 1.30, 1.30, 0.15, 1.30 ] ); $$polygon( "PASTE_MASK_1", , [ 1.60, 0.15, 2.75, 0.15, 2.75, 1.30, 1.60, 1.30 ] ); // Row of Paste Mask Windows just below the mid-line $$polygon( "PASTE_MASK_1", , [ -2.75, -1.30, -1.60, -1.30, -1.60, -0.15, -2.75, -0.15 ] ); $$polygon( "PASTE_MASK_1", , [ -1.30, -1.30, -0.15, -1.30, -0.15, -0.15, -1.30, -0.15 ] ); $$polygon( "PASTE_MASK_1", , [ 0.15, -1.30, 1.30, -1.30, 1.30, -0.15, 0.15, -0.15 ] ); $$polygon( "PASTE_MASK_1", , [ 1.60, -1.30, 2.75, -1.30, 2.75, -0.15, 1.60, -0.15 ] ); // Bottom Row of Paste Mask Windows $$polygon( "PASTE_MASK_1", , [ -2.75, -2.75, -1.60, -2.75, -1.60, -1.60, -2.75, -1.60 ] ); $$polygon( "PASTE_MASK_1", , [ -1.30, -2.75, -0.15, -2.75, -0.15, -1.60, -1.30, -1.60 ] ); $$polygon( "PASTE_MASK_1", , [ 0.15, -2.75, 1.30, -2.75, 1.30, -1.60, 0.15, -1.60 ] ); $$polygon( "PASTE_MASK_1", , [ 1.60, -2.75, 2.75, -2.75, 2.75, -1.60, 1.60, -1.60 ] ); // // Define all of the pins // // Pads Along the Left-Hand Edge $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ -3.475, 2.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ -3.475, 2.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ -3.475, 1.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ -3.475, 1.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "5", , @scale , , [ -3.475, 0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "5, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "6", , @scale , , [ -3.475, 0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "6, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "7", , @scale , , [ -3.475, -0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "7, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "8", , @scale , , [ -3.475, -0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "8, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "9", , @scale , , [ -3.475, -1.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "9, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "10", , @scale , , [ -3.475, -1.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "10, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "11", , @scale , , [ -3.475, -2.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "11, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "12", , @scale , , [ -3.475, -2.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "12, qfn_48_horz_pad_56sq"); // Pads Along the Bottom Edge $$attribute( "COMPONENT_PIN_DEFINITION", "13", , @scale , , [ -2.75, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "13, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "14", , @scale , , [ -2.25, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "14, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "15", , @scale , , [ -1.75, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "15, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "16", , @scale , , [ -1.25, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "16, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "17", , @scale , , [ -0.75, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "17, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "18", , @scale , , [ -0.25, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "18, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "19", , @scale , , [ 0.25, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "19, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "20", , @scale , , [ 0.75, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "20, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "21", , @scale , , [ 1.25, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "21, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "22", , @scale , , [ 1.75, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "22, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "23", , @scale , , [ 2.25, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "23, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "24", , @scale , , [ 2.75, -3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "24, qfn_48_vert_pad_56sq"); // Pads Along the Right-Hand Edge $$attribute( "COMPONENT_PIN_DEFINITION", "25", , @scale , , [ 3.475, -2.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "25, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "26", , @scale , , [ 3.475, -2.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "26, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "27", , @scale , , [ 3.475, -1.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "27, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "28", , @scale , , [ 3.475, -1.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "28, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "29", , @scale , , [ 3.475, -0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "29, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "30", , @scale , , [ 3.475, -0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "30, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "31", , @scale , , [ 3.475, 0.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "31, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "32", , @scale , , [ 3.475, 0.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "32, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "33", , @scale , , [ 3.475, 1.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "33, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "34", , @scale , , [ 3.475, 1.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "34, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "35", , @scale , , [ 3.475, 2.25 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "35, qfn_48_horz_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "36", , @scale , , [ 3.475, 2.75 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "36, qfn_48_horz_pad_56sq"); // Pads Along the Top Edge $$attribute( "COMPONENT_PIN_DEFINITION", "37", , @scale , , [ 2.75, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "37, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "38", , @scale , , [ 2.25, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "38, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "39", , @scale , , [ 1.75, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "39, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "40", , @scale , , [ 1.25, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "40, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "41", , @scale , , [ 0.75, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "41, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "42", , @scale , , [ 0.25, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "42, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "43", , @scale , , [ -0.25, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "43, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "44", , @scale , , [ -0.75, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "44, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "45", , @scale , , [ -1.25, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "45, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "46", , @scale , , [ -1.75, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "46, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "47", , @scale , , [ -2.25, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "47, qfn_48_vert_pad_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "48", , @scale , , [ -2.75, 3.475 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "48, qfn_48_vert_pad_56sq"); // // Now the 25 Thermal Vias in the center for the Thermal Pad // // These are component pins 51 through 75 // $$attribute( "COMPONENT_PIN_DEFINITION", "51", , @scale , , [ -2.250, 2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "51, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "52", , @scale , , [ -1.125, 2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "52, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "53", , @scale , , [ 0.000, 2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "53, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "54", , @scale , , [ 1.125, 2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "54, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "55", , @scale , , [ 2.250, 2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "55, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "56", , @scale , , [ -2.250, 1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "56, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "57", , @scale , , [ -1.125, 1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "57, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "58", , @scale , , [ 0.000, 1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "58, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "59", , @scale , , [ 1.125, 1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "59, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "60", , @scale , , [ 2.250, 1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "60, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "61", , @scale , , [ -2.250, 0.000 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "61, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "62", , @scale , , [ -1.125, 0.000 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "62, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "63", , @scale , , [ 0.000, 0.000 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "63, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "64", , @scale , , [ 1.125, 0.000 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "64, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "65", , @scale , , [ 2.250, 0.000 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "65, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "66", , @scale , , [ -2.250, -1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "66, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "67", , @scale , , [ -1.125, -1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "67, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "68", , @scale , , [ 0.000, -1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "68, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "69", , @scale , , [ 1.125, -1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "69, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "70", , @scale , , [ 2.250, -1.125 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "70, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "71", , @scale , , [ -2.250, -2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "71, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "72", , @scale , , [ -1.125, -2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "72, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "73", , @scale , , [ 0.000, -2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "73, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "74", , @scale , , [ 1.125, -2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "74, qfn_48_thd_pin_56sq"); $$attribute( "COMPONENT_PIN_DEFINITION", "75", , @scale , , [ 2.250, -2.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "75, qfn_48_thd_pin_56sq"); //----------------------------------------------------------------------------