S1 Component Subtyping Purpose This document describes Agilent’s recommendations for component subtyping, which is done in the Component file for both the Primary and Secondary sides. 5DX users are encouraged to be consistent in their subtyping method to facilitate the transference of programs between geographically dispersed 5DX sites. This document also describes how to effectively transfer data in Component Library between programs. Subtyping permits tighter thresholds by grouping parts with similar solder profiles. Minimizing the amount of variation within a subtype allows the Regions of Interest (ROIs), such as the heel, center, and toe, to be placed consistently on subsequent pads. Greater consistency yields fewer falls calls, and increases the integrity of the 5DX program. In this document This document is divided into six sections. Topic If you are using Component Library Generate package data Rename package names Perform initial subtyping Subtype out pins due to shape or shading Sample component file Component subtyping process flow If you are using Component Library See Page 1 3 3 4 7 9 10 If you are NOT using Component Library, proceed to the Generate Package Data section. Note: In the Component Library, if the NDF Data Package ID names do not match the Library Data Package ID names, you CANNOT get Package information, subtypes, or thresholds. You will need a different library for each customer that uses different design groups with different Land Pattern ID names. Continued on next page Ver 1.6 Page 1 of 10 S1 If you are using Component Library (continued) If you plan to use an existing library within Component Library, then follow these steps to export data: Step 1 2 3 4 Action Start Component Library. Select Open Library. Load the NDF Panel Export the Package Data Note: Some CAD translators try to export a PACKAGE.NDF file when exporting the other data. To avoid confusion, delete this file before trying to export package information from Component Library. a. Select the Packages tab in NDF Data and Library Data. b. Click on the Export button to export all packages used by the program. c. Click OK at the window marked Copy All Relevant Library Packages To NDFs . d. If notices appear, take note of the different land patterns. e. For each land pattern noted in the previous step, export the land pattern data with the following steps. • Select the LandPat tab in NDF Data and Library Data. • Select the LandPats named in previous step. 5 • Click the Export button Export the subtype numbers. a. Click on the Subtype button in the NDF Data. b. In the Assign Subtype Numbers window: • Highlight all Joint Types. • Select Package Name and Board Side. • Click the Subtype button. c. Each Package ID will appear with a suggested subtype number. To change the subtype number, enter a subtype number, then click the Change button. To keep the suggested subtype number, click the Skip button. Continued on next page Ver 1.6 Page 2 of 10 S1 If you are using Component Library (continued) Step Action 5 Note: If a subtype is in the library for a part on the primary side of (cont.) the board but not the secondary, and the program you are developing has that component on the secondary side, then export it as the odd number. After exporting thresholds (below), change the subtype number and copy the thresholds from the odd number to the even number. 6 d. When all joint types are done, click the Done button. Export Thresholds a. Select Subtype Summary tab in NDF Data and Library Data. b. Click Export button. c. Click OK at the Copy Thresholds window. Generate package data Generate the package data for those packages not available from Component Library by following the guidelines in Generating Package Data, available on the customer secure web site: www.agilent.com/key/boardtest under 5DX Technical Support, ASAP Best Practices. Rename package identifiers Rename the packages if the same name is assigned to different algorithm families. Some board designers use the package identifier “0603” for resistors, inductors, and capacitors alike, but it is important that unique package identifiers be used for each family. For example, you may elect to change the package identifiers for the resistor, capacitor, and inductor to R0603, C0603 and L0603 respectively. To accomplish this, perform the following steps: Step 1 2 Action Go to the section in the Component file that has the same package, for instance "0603", listed for various component types. Perform a sort on the column of reference designators containing the ‘0603’ suffix. This will separate resistors (Rxxxx) from chips (Cxxxx) and inductors (Lxxxx). Rename the original package identifier as required. For example, all 0603s associated with reference designators beginning with an “R” are likely resistor and should be renamed “R0603". The same holds true for capacitors and inductors, which should be renamed to C0603 and L0603 respectively. Continued on next page Ver 1.6 Page 3 of 10 S1 Rename package identifiers (continued) 3 4 There are now 3 different types of packages in this group, R0603, C0603, and L0603. These three groups must be placed into their appropriate algorithm family, which would be Resistor, Chip and Gullwing respectively. NOTE: Now that you’ve created three new package identifiers in the component file (C0603, R0603, and L0603), you will now have to create packages for them. Edit the Package file and locate the lines associated with these package names. Duplicate these lines for each of the new package names and rename it for each new package. Assign each package to the appropriate algorithm family, indicated in bold: @0603 55.0000 PLASTIC RES 1 -30.000 @0603 55.0000 PLASTIC RES 2 30.000 @C0603 55.0000 PLASTIC CHIP 1 -30.000 @C0603 55.0000 PLASTIC CHIP 2 30.000 0.0000 R 0.0000 R 5 0.0000 R 0.0000 R 6.0000 30.0000 6.0000 30.0000 6.0000 30.0000 6.0000 30.0000 @R0603 55.0000 PLASTIC RES 1 -30.000 0.0000 R 6.0000 30.0000 @R0603 55.0000 PLASTIC RES 2 30.000 0.0000 R 6.0000 30.0000 @L0603 55.0000 PLASTIC GULLWING 1 -30.000 0.0000 R 6.0000 30.0000 @L0603 55.0000 PLASTIC GULLWING 2 30.000 0.0000 R 6.0000 30.0000 Compile. If there are errors, check the Component and Package files. Refer to Chapter 4 of the 5DX Reference Guide for proper syntax. Perform initial subtyping This step describes how to format and subtype the Component files. Refer to the Sample Component File to see what a completed Component file looks like, available on the customer secure web site: www.agilent.com/key/boardtest under 5DX Technical Support, ASAP Best Practices. Continued on next page Ver 1.6 Page 4 of 10 S1 Perform initial subtyping (continued) Step 1 Action Separate the throughhole (TH) from the surface mount (SM) parts. a. Open the Component on the Primary board side. b. Subtyping will require sorting like package with like package. Prepare the file for sorting by inserting the following comment lines just prior to the line containing the first reference designator. These comment lines will be used as the header for each of the various families. ######The Following are inspected with the BGA2 algorithm###### ######The Following are inspected with the FPGullwing algorithm###### ######The Following are inspected with the Gullwing algorithm ###### ######The Following are inspected with the Jlead algorithm ###### ######The Following are inspected with the Connector algorithm ###### ######The Following are inspected with the Resistor algorithm ###### ######The Following are inspected with the PCap algorithm ###### ######The Following are inspected with the CHIP algorithm ###### ######The Following are inspected with the PTH algorithm ###### c. The first step is to separate surface mount (SM) and through hole (TH) components. Using VisualSlick, select/highlight those items falling under the SM/TH column being sure to include ALL “SMs” and “THs” and to exclude the header. This column can be highlighted by placing the cursor just prior to the first SM (or TH) to appear in the file starting from the top, pressing the keys “ALT” and “C” and then moving the arrows keys until the entire column is highlighted. d. Select “Tools” from the toolbar and then select “Sort” choose “Ascending” order, then O.K. This will place all “SM” parts on the top section of the board and the “TH” components just below. e. Since all TH parts are inspected using the PTH algorithm, cut the “PTH” comment from B and insert it just prior to the section listing the TH components. Place a pound sign (#) at the beginning of the line to identify it as a COMMENT: Continued on next page Ver 1.6 Page 5 of 10 S1 Perform initial subtyping (continued) Step 2 Action Sort the package names within the throughhole (TH) and surface mount (SM) groups. a. Using VisualSlick, select/highlight, in the SM section only, the column of package names, which fall under the header “Package Type.” b. From the Toolbar, select Tools then Sort and choose Ascending order, then OK. This will group together all parts with the same package name. c. Repeat this step for the TH parts. d. Look at each of the SM package groups now sorted/separated and determine to which family each subgroup belongs. For examples, • SOICs will fall into the FPGullwing family. • An R0603 would fall into the Resistor family. e. 3 Look at each group of package types in the file. Cut the lines associated with each package group and then paste them under their appropriate Header, created above. Assign subtype numbers. a. Once all of the package types have been placed under their appropriate Header, subtype numbers can be assigned. b. Assign different subtype numbers to every different package name (SOIC14, SOIC8, SOIC12, etc…). c. Within each family, assign a subtype number. Assign odd subtype numbers to the Primary side of the board, i.e. the side on which the more complex devices reside (1, 3, 5, ... for each group within any given family). Assign even numbers to the Secondary side (2, 4, 6, ...) d. Compile. If there are errors, check the Component files. Refer to Chapter 4 of the 5DX Reference Guide for proper syntax. Ver 1.6 Page 6 of 10 S1 Subtype out pins due to shape or shading If the pads within a land pattern vary in size, or if certain pins/parts within any subtype are shaded differently, remove these pins/parts from the existing subtype and assign a separate subtype number to them. On occasion you may come across a part for which one of the two following conditions exist: a. The part type, such as an SOT223, has one of its 3 pins much larger than the remaining 2 pins. b. One or more of the component’s pins are shaded by a part on the opposite side of the board causing its solder profile to vary from the other pins within the subtype. In either case, break the package into two subtypes, one for the larger or shaded pins and a second subtype for the smaller or non-shaded pins. Again, the more time you invest in grouping together parts/pads with similar solder profiles, the tighter you are able to set thresholds which leads to a more robust test. NOTE: In the case of shading, you must observe which pins are shaded under X-ray using CheckCad or during threshold tuning. The following is an example of how to modify each of the NDF files including the Board, Component, and SMLand (or THLand if a TH part) in order to subtype a particular pin. This example uses the case whereby a part U49 of package type SOT23 has one pin (Pin 1) much larger in size than the remaining two pins; the same method applies to subtyping shaded pins. Step 1 Action Modify the board file. Duplicate the line for the part in question. Rename both the reference designator and package name to differentiate the two types of pads. In this example U49/SOT23 has been renamed with a “_lg” for the large pads and “_sm” for the small pads. #REF_DES @U49_sm @U49_lg 2 X 6495.000 6495.000 Y 3795.000 3795.000 ROT 180 180 FOOTPRINT SOT23_sm SOT23_lg Modify the Component file. Duplicate the line for the part in question. Again, rename the reference designator and package name so as to differentiate the two pads. Assign a different subtype for each: REF_DES LOAD? PACKAGE_TYPE COMP_TYPE ALGOSUB_TYPE @U49_sm TRUE SOT23_sm SM 3 @U49_lg TRUE SOT23_lg SM 5 Continued on next page Ver 1.6 Page 7 of 10 S1 Subtype out pins due to shape or shading (continued) Step 3 Action Modify the SMLand (or THLand) file. Determine which pin is of the larger size by observing the last two columns, which reflect the pad width and length. In this case, Pin 1 has dimension of 50 and 60 mils which is much larger than the remaining pads, which measure 30 and 35mils. Modify the Package name associated with each line accordingly. FOOTPRINT @SOT23_lg @SOT23_sm @SOT23_sm 4 X-PAD 0 -37 37 Y-PAD 40 -40 -40 SHAPE R R R DX 50 30 30 DY 60 35 35 Modify the Package file. Modify the Package file accordingly. It may be necessary to specify the Pin Orientation after splitting up the package. #PACKAGE_ID @SOT23_lg @SOT23_sm @SOT23_sm 5 PIN 1 2 3 PITCH 63 38 38 MATERIAL PLASTIC PLASTIC PLASTIC JOINT TYPE GULLWING GULLWING GULLWING PIN 1 2 3 X Y SHAPE DX DY ORIENTATION 0 40 R 40 6 270 -37 -40 R 24 3.5 90 37 -40 R 24 3.5 90 Compile. If there are errors, check the NDFs. Refer to Chapter 4 of the 5DX Reference Guide for proper syntax. Continued on next page Ver 1.6 Page 8 of 10 S1 Sample component file The following is an example of a component file. #### SAMPLE COMPONENT FILE .BOARD_ID: #RD ###### TYPE SUBTYPE THE FOLLOWING ARE INSPECTED WITH BGA2 ##### TRUE PBGA272 SM 1 THE FOLLOWING ARE INSPECTED WITH FP GULLWING ##### @U132 @U132_shaded ##### HYPOTHETICAL_BOARD_TOP TEST PKG ID @U110 ###### #### TRUE QFP208_normal TRUE QFP208_shaded SM SM 1 3 THE FOLLWING ARE INSPECTED WITH GULLWING ##### @U90 TRUE PQFP100 SM 1 @U76_smpins TRUE QFP160 SM 5 @U79_lgpins TRUE QFP160 SM 5 ##### THE FOLLOWING ARE TESTED WITH CONNECTOR #### @J8 ##### TRUE CONN100 SM 1 THE FOLLOWING ARE INSPECTED WITH JLEAD ##### @U153 TRUE PLCC28 SM 1 @U165 TRUE PLCC44 SM 3 ##### THE FOLLOWING ARE INSPECTED WITH CHIP ##### @C91 TRUE C0805 SM 1 @C92_shaded TRUE C0805 SM 3 ##### THE FOLLOWING ARE INSPECTED WITH RES @R66 @R67 TRUE R1206 TRUE R1206 SM SM 1 1 @R3 TRUE R1210 SM 3 @R1 TRUE R0805 SM 5 ##### THE FOLLOWING ARE INSPECTED WITH PTH ##### @DD7 TRUE CONN42 TH 1 ##END OF FILE Ver 1.6 Page 9 of 10 S1 Component Subtyping Process Flow Component Subtyping Use Component Library? No Yes Export the Package Data Generate Package Data Rename Package Names No Is the compile error-free? Yes Perform Initial Subtyping No Is the compile error-free? Yes Do the pads vary in size or any pins shaded? Yes Subtype out pins due to shape or shading No End Ver 1.6 Page 10 of 10