Eagle: Building a New Component Library

Eagle PCB design tool from Cadsoft is a cost-effect CAD tool for designing full-featured printed circuit boards.  It includes a schematics capture tool, a PCB layout tool, and a component library creation tool under the same “roof”.  In this article I will describe how to create a new component from data sheet.  The component library I will build is for power management device from Texas Instruments called TPS659122YFFT.  Download the data sheet before proceeding with the rest of this blog post.

Launching the Design Tool

To build a component library, launch Eagle, do File->New->Library to create a new library, or File->Open->Library to open an existing library.  After you launched  Eagle you get the below window.

EagleLaunchWindowFig. 1: Eagle component library tool main window.

In this blog, I will add TPS659122YFFT to an existing component library called ti-tintin.lbr. A library contains one more components.  In the above case, ti-tintin.lbr already has two components (devices), namely OPT8241NBN and OPT9221ZVM.  Now we will add a third component, TPS659122YFFT.

Design Process Overview

When creating a new component one has to:

  • Create the Package
  • Create the Symbols
  • Construct a Device

Usually a package is created first, followed by symbols, followed by device.  Under Eagle, a device  associates a specific package with a specific combination of symbols elements.  For example, SN7404 is a hex inverter available in different packages (J, W, FK, D).  The part is available in the D package as SN7404DR, and contains six inverters.  To create such device in Eagle, one has to first create the D package in Fig. 2 below with correct dimensions and pins named using the Package tool.


Fig. 2: SN7404DR “D” package.

Then an inverter symbol shown below must be created using the Symbol tool.

InverterFig. 3: Inverter symbol.

Then a Device is created using the Device tool, which associate the D package with six inverter symbols.  Now I will follow a similar process building TPS659122YFFT.

Create the Package

Below is the TPS659122YFFT package information from the data sheet.

Package InfoFig. 4:  TPS659122YFFT package data.

To build this package in Eagle, we need to know package width (E), length (D) and ball-to-ball pitch, which 0.40mm.  Since D and E have min/max values, I will use the average of the min-max as the dimension.

To run the Eagle package tool, run Library->Package to bring up a dialog box like the one below, and enter the name of the new package. In our case, I will call the package XBGA-YFF-81.

PackageFileDialogFig. 5:  Package name dialog box.

Enter the new name, answer “yes” to create new, and you will get an empty drawing canvas like the one below:

PackageToolCanvas.PNGFig. 6: Package tool design window.

The first thing is adjust the grid spacing to match the ball-to-ball pitch, which is 0.40mm according to the data sheet.  Select the grid button near the top-left and set the size to 0.40mm, and Alt to 0.20mm.  Be sure to change the units from ‘inches’ to ‘mm’:

GridSettingFig. 7: Setting the grid spacing.

First we need to all the pin.  Since BGA is a surface mounted device (SMD), we need to click the SMD symbol (red parallel gram) on the left pane toolbar, or simply type ‘smd’ in the entry box just above the canvas.  Now in the Size box, enter 0.15 x 0.15 for the ball size, and change Roundess to 100%; make sure the layer selection next to the grid button is set to ‘Top’.  Now the cursor should look like a red round ball.  Drop the balls over a 9 x 1 array with the center crosshair being at the center of the 9 x 9, as is shown in Fig. 8.  The layer for the balls should be ‘Top’.  When in doubt, right-click on the ball to bring up the Property dialog box and check.

Fig. 8: Package with 9×1 ball arrangement.

Now, name the pins by right-clicking on each ball and select ‘Name’, starting from the top, as A1, B1, C1, …, J1, as according to the pin numbering shown the data sheet (also shown in Fig. 4).  Note that letter ‘I’ is skipped.  Now starting from A1, copy and paste as you add more balls across the row.  As you do this, each ball will be automatically named A2, A3, …, A9.  Repeat this for the next row, and the next, until all 81 balls are populated and named.  Check the names to ensure automatic index increment was happening.

Now we add labels to make the pin coordinate system.  Rows are alphabets; columns are numerics.  Make sure to put the labels on the tName layer.  Then put the IC border in using the Wire tool on the left toolbar, placing the wires on the tPlace layer.  Then add a text and name it ‘>NAME’, place it in the tName layer, and a value ‘TPS659122’, place that in the tValue layer.  When you are done, the package canvas should look like Fig. 9.

Fig. 9: Full package designed.

Create the Symbols

We will now build the symbols for our device.  TPS659122YFFT device can be roughly broken down into two sides: control and power.  The control side enables an outside controller configure the device; the power side consists of DC/DC converters and LDOs. This means we will make a symbol block for control, and one for power.

To create a symbol, select Library->Symbol to bring up a dialog box like the one below:


Fig. 10: Dialog box for creating new symbol.

In the ‘New’ field, we will enter the name of the symbol, ‘TPS659122_CTRL_INTF’.  Following the same procedure, we shall also create another symbol, ‘TPS659122_PWR_INTF’.   We will first work with the control interface.  Click on the Symbol button at the top toolbar, and select ‘TPS659122_CTRL_INTF’ and edit.  For symbols always use the default grid spacing of 0.1 inch.   We want to draw a rectangle in the Symbol plane using the Wire tool to make something like this:


Fig. 11: The control symbol block we are to create.

To add pins, select the Pin button at the bottom left of the left toolbar, and then select from the top toolbar orientation options.  Click around the rectangle to drop the pins.  After the pins are dropped, right click on green circle of each pin to name it and also define the direction.  After the pins are named and their directions defined, name the part ‘TPS65922’ using the Text tool on the left toolbar and place it at the bottom of the part using the Value layer; and with the same Text tool, place the text ‘>NAME’ above the part on the Name layer.  When  you’re done, it should look like the figure below:


Fig. 12: The control symbol block created using Eagle.

Now, follow a similar procedure you should get the below power symbol block:


Fig. 13:  The power symbol block creating using Eagle.

Construct the Device

The final step is to tie the package and the symbols we created into a device and associate the pins on the package to the pins on the symbols.  To do this, first click on the ‘Table of Contents’ button in the top toolbar of the main window of Fig. 1.  Now click on the ‘Device’ button at the top toolbar to add a new device, call it ‘TPS659122YFFT’.

Now, click the ‘New’ button at the bottom right pane and add in the XBGA-YFF-81 package we created earlier.  Now click the ‘Add’ button on the left to add symbols. Add in the two symbols we created above.  The first one you add will become U1, and the second, U2, when you later bring the device into schematics.  When you have done all that, your window should look like this:


Fig. 14:  Creating a device using Eagle after adding in package and symbols.

The next step is to connect the pins.  Click on the ‘Connect’ button at the bottom right and connect the pins.  Once you complete the connections, save it and exit.  This will concludes the tutorial of creating a TPS659122YFFT device using Eagle.