// // file: so_package_4_pin // // Orig: 14-Apr-2015 original setup for Hub Module // // 21-Jan-2017 Modify the SMD Pads so that they do not go as far under // the Body of the IC Package. Reduce their run under the // IC Body by 0.50 mm but keep the outer edges of the // pads at the same location, i.e. the far outer edges of // the pads are spaced in Y by 7.60 mm. // // Because the Hub design is already routed, this will // require making two new asymmetric SMD Pad Stacks and it // will require two new entries in the Aperture Table. To // keep the current routing the X,Y locations of the pins // in this geometry must not be changed. Note, I have double // checked and this geom did match what IPC calls for but // as Brian pointed out it just did not look correct with // the HP Opto-Coupler. Perhaps the octo-couple body is // not SO4 compliant. // // 30-Jan-2017 Move the body outline and pin #1 indicator from // SilkScreen_1 to SilkScreen where it should be. // // // // Geometry for the SO Package 4 Pin aka Small Outline Package // // On the Hub Module this is for the Avago ACPL-217 opto-coupler. // // This opto-coupler is for the Pay Load enable signal. // // This is going to be made 100% IPC from their SOP specifications. // // Pin #1 is in the SW corner - it is the LED Anode // 2 is in the SE corner - it is the LED Cathode // 3 is in the NE corner - it is the Transistor Emitter // 4 is in the NW cornet - it is the Transistor Collector // // // // Original SMD Pad Setup: // // In this orientation the SMD Pad-Stack will be: // // 0.60 mm in X by 2.20 mm in Y // // The pins on the device are 0.40 wide. // // The centers of the pads are spaced: 1.27 in X by 5.40 in Y // // // // New 21-Jan-2017 SMD Pad Setup // // In this orientation the SMD Pad-Stack will be: // // The 4 SMP Pads are: 0.60 mm in X by 1.70 mm in Y // // Pins 3 and 4, Upper Pad-Stack in this geom's orientation // 1.10 mm in Y above the Y center // 0.60 mm in Y below the Y center // // Pins 1 and 2, Upper Pad-Stack in this geom's orientation // 0.60 mm in Y above the Y center // 1.10 mm in Y below the Y center // // The centers of the pads are spaced: 1.27 in X by 5.40 in Y // // $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- $$create_pin("SOP_4_PAD", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$SOP_4_PAD']); $$point_mode(@vertex); $$polygon( "PAD", , [ 0.30, 1.10, 0.30, -1.10, -0.30, -1.10, -0.30, 1.10 ]); $$polygon( "SOLDER_MASK", , [ 0.35, 1.15, 0.35, -1.15, -0.35, -1.15, -0.35, 1.15 ]); $$polygon( "PASTE_MASK", , [ 0.30, 1.10, 0.30, -1.10, -0.30, -1.10, -0.30, 1.10 ]); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- $$create_pin("SOP_4_UPPER_PAD", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$SOP_4_UPPER_PAD']); $$point_mode(@vertex); $$polygon( "PAD", , [ 0.30, 1.10, 0.30, -0.60, -0.30, -0.60, -0.30, 1.10 ]); $$polygon( "SOLDER_MASK", , [ 0.35, 1.15, 0.35, -0.65, -0.35, -0.65, -0.35, 1.15 ]); $$polygon( "PASTE_MASK", , [ 0.30, 1.10, 0.30, -0.60, -0.30, -0.60, -0.30, 1.10 ]); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- $$create_pin("SOP_4_LOWER_PAD", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'PI$SOP_4_LOWER_PAD']); $$point_mode(@vertex); $$polygon( "PAD", , [ 0.30, 0.60, 0.30, -1.10, -0.30, -1.10, -0.30, 0.60 ]); $$polygon( "SOLDER_MASK", , [ 0.35, 0.65, 0.35, -1.15, -0.35, -1.15, -0.35, 0.65 ]); $$polygon( "PASTE_MASK", , [ 0.30, 0.60, 0.30, -1.10, -0.30, -1.10, -0.30, 0.60 ]); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- $$create_component("SOP_4", @replace); $$page(0.0,0.0,0.0, @mm, 0.0, 0.0, [0.0, 0.0, 'CO$SOP_4']); $$point_mode(@vertex); $$attribute( "COMPONENT_LAYOUT_TYPE", "surface"); $$attribute( "COMPONENT_LAYOUT_SURFACE", "both"); $$attribute( "COMPONENT_HEIGHT", "10.20", , @scale , , [0.0, 0.0] ); // // Component Placement Outline for the SOP_4 // $$initial([ -1.40, -4.20 ], , @nosnap ); $$terminal([ -1.40, 4.20 ] ); $$terminal([ 1.40, 4.20 ] ); $$terminal([ 1.40, -4.20 ] ); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // // Silkscreen // $$template_line_style( @Solid ); $$initial([ -1.40, -4.20 ], , @nosnap ); $$terminal([ -1.40, 4.20 ] ); $$terminal([ 1.40, 4.20 ] ); $$terminal([ 1.40, -4.20 ] ); $$terminal([ -1.40, -4.20 ] ); $$path( "SILKSCREEN", 0.20 ); $$circle( "SILKSCREEN", -2.1, -3.5, 0.5, 0.20 ); $$circle( "SILKSCREEN", -2.1, -3.5, 1.0, 0.20 ); // // End of Silkscreen // $$text( "SILKSCREEN", "^$ref", 0.0, -5.8, 1.2, @BC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 ); // Define the 4 pins on the SOP_4: // // pin #1 the LED Anode is in the SW corner. // the long axis is vertical $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ -0.635, -2.70 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, SOP_4_LOWER_PAD"); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ 0.635, -2.70 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, SOP_4_LOWER_PAD"); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ 0.635, 2.70 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, SOP_4_UPPER_PAD"); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ -0.635, 2.70 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, SOP_4_UPPER_PAD");