This relates generally to circuit design tools, and more particularly to tools for the design of coils.
An inductance-to-digital converter (LDC) circuit in its simplest form includes a spiral coil placed on a printed circuit board and connected to an LDC integrated circuit device. A change in distance between the coil and a target, typically a metallic object, changes the inductance (L) in the coil, and this change can be sensed. The LDC may be used to determine the distance between the coil and the target based on the inductance. Changes in the distance may, in turn, be used to detect some event, for example, that a button housing the target has been pressed. The design of effective LDC sensor circuits depends on the design of robust PCB coils, i.e., coils laid out on a printed circuit board.
Developing a coil design with satisfactory performance from the myriad of available combinations of input parameters is a very tedious and time-consuming task. A coil design tool that allows a designer to efficiently design a PCB coil that meets desired performance characteristics is needed.
In a described example, a computerized PCB coil circuit design system includes a user input engine: to receive PCB coil design parameters based on PCB manufacturing rules including trace width (W) and copper thickness (t); to receive user input parameters including inductor-capacitor (LC) sensor capacitance (C), coil shape, and number of coil layers (M); and to receive updates to any of the PCB coil design parameters or the user input parameters. The computerized PCB coil circuit design system further includes a PCB coil solution generation engine to: calculate output coil parameters including total inductance (L), sensor frequency (f), and Q factor as a function of the PCB coil design parameters and received user input parameters; to graphically plot one selected output coil parameter as a function of one input coil parameter; and upon an update to one parameter selected from the parameters based on PCB manufacturing rule and user input parameters, to recalculate the output coil parameters and to replot the one selected output coil parameter as a function of one input coil parameter.
Corresponding numerals and symbols in the different figures generally refer to corresponding parts unless otherwise indicated. The figures are not necessarily drawn to scale.
The term “PCB coil” includes planar coils laid down on printed circuit boards in various geometric shapes in one or more layers. A PCB coil may be in multiple layers. Furthermore, PCB coils may include multiple coils arranged in parallel or in series.
The term “LDC circuit” refers to a circuit that includes at least one PCB coil connected to an inductance-to-digital converter such as the LDC1000 commercially available from Texas Instruments Incorporated.
The design of circuit components, including the design of PCB coils, is often a tedious exercise in which many different combinations of parameters must be weighed against each other to satisfy certain design goals as efficiently as possible. The embodiments disclosed herein include a circuit design tool, specifically, a circuit design tool useful in designing PCB coils. PCB coils can be used in sensors with inductance-to-digital conversion (LDC) circuits. LDC circuits are useful as sensors to provide a precise measurement of position or motion of a target object relative to a sensor. An example is detecting whether a button integrating a target has been pushed.
The PCB coil 105, which has an inductance L, is connected in parallel with a resistor 107 and a capacitor 109 forming an LC-circuit 111. The LC circuit 111 is a tank circuit in which electrical energy oscillates between the inductor and the capacitor at a frequency which depends on the inductance and the capacitance of the circuit.
The frequency of the oscillations depends on the inductance L of the PCB coil 105. If the target 103, typically made of metal, is brought closer to the coil 105, eddy currents occur in the coil 105. These eddy currents change the inductance of the coil 105, which, in turn, changes the frequency of the LC-circuit 111.
The LC-circuit 111 is connected to an inductance-to-digital converter (LDC) 113. The LDC 113 detects the frequency of the oscillations in the LC-circuit 111, from which the distance d may be determined. The LDC 113 may be connected to a processor 115 for further processing of data obtained, for example, interpretation of an observed change in distance d as being indicative of a user pressing a control button of the device 100. Proximity detection of objects and additional applications can be implemented using the system 100, in addition to sensing button pushes. The embodiments can be used to design coils for a wide variety of applications in addition to the examples described.
In the embodiment illustrated in
Because the inductance of the two coils 205 and 205′ reacts differently to movement of the target 203, the relationship between the inductance of the two coils is a useful measurement for precise detection of the location of the target 203 relative to the two coils.
A circuit design has to take many factors into account.
In a first step 501, the maximum physical size of the PCB coil 105 is determined that may be used in the intended application. The value Dout, the outer diameter, is set to the maximum physical size available for the PCB coil 105.
Next, based on PCB manufacturing rules, the values for trace width and trace space are set, step 503, as well as conductor thickness. In this example the conductor is copper. Typical value for trace width and trace space if 4 mils (0.1 mm) or 6 mils (0.15 mm). For purposes of increased electrical conductance, the thicker the copper or other conductor layer, the better. A typical value may be 1 oz-cu (˜35 μm).
In step 505, a PCB coil may be composed of several layers. In a preferred embodiment, the available number of layers is selected from 1 through 8. The number of layers is typically set to match the number of board layers in the design. The number of layers of the coil can be less than the number of board layers in an alternative arrangement.
In step 507, the capacitance of the LC-circuit 111 is set. Typical range is 500 pF to 2 nF unless a specific sensor frequency is required.
In step 509, the inner diameter is typically best set so that the ratio between the inner diameter, Din, and the outer diameter, Dout, is greater 0.3, i.e., Din/Dout>0.3. Several parameters defining a PCB coil depend upon each other. For example, with a given trace width and trace spacing, the inner diameter may be indirectly set by setting the number of turns of the PCB coil 105 thereby achieving the desired Din′Dout ratio given the trace width and trace spacing parameters.
In step 511, the output parameters are determined from the corresponding input parameters by performing calculations. These calculations, which are discussed in greater detail hereinbelow, include: calculation of total inductance; sensor frequency; and Q factor.
In step 513, once the design satisfies desired design goals, the design may be exported to a computer aided design (CAD) format for further circuit design using additional design tools. In step 513, a PCB coil 105 may be manufactured on a PCB 401.
As there are many adjustable parameters in a coil design, there is a myriad of possible parameter combinations. Accordingly, a preferred embodiment circuit design tool provides a mechanism by which a circuit designer may change the parameters and efficiently realize how such changes affect the ultimate design in terms of performance parameters. The process may be iteratively performed until a desirable design has been achieved. Rapid comparisons between completed coil designs can be achieved using the embodiments.
The computerized PCB coil design tool system 600 includes a processor 601 connected to a non-transient storage unit 603, which stores software programs and data, and coupled to an input device 605 and an output device 607. The processor 601 may be a single processor or a plurality of processors. The processor can be, for example, a personal computer, a mobile device, a workstation computer, or any other computer system. The processor can be implemented using programmable commercially available devices including microprocessors, microcontrollers, digital signal processors (DSPs), mixed signal processors (MSPs). Semi-custom devices such as application specific integrated circuits (ASICs), which may include processor cores such as embedded DSPs, and may include cores such as reduced instruction set computers (RISC) cores or advanced RISC machines (ARM) cores. User configurable integrated circuit devices such as field programmable gate array (FPGA) and complex programmable logic devices (CPLDs) can be used. Personal computers, workstations, laptops, tablet computers and other computing devices configured to execute software programs can be used to perform the embodiments.
The input device 605 may include a keyboard and a pointing device, e.g., a mouse. The output device 607 may include a computer display, or a printer to produce an output.
The processor 601 may be a server computer connected to the input device 605 and output device 607 via web-browser program executing on a computer (not shown) connected to the processor 601 via a computer network, for example, the Internet.
The non-transient storage unit 603 has a user input module 609 for providing user interfaces, for example, web pages, to the processor 601 for display on the output device 607. The user input module 609 further includes instructions for the processor 601 to receive parameter values and option settings set directly or indirectly by a user operating the input device 605. These parameter values, set via the user input module 609, include the parameters set during steps 501 through 509 of
The non-transient storage unit 603 further includes a coil parameter computation module 611. The coil parameter computation module 611 contains instructions for the processor 601 to use input parameters received via user input module 609 to calculate output parameters for a PCB coil corresponding to the input parameters.
The coil parameter computation module 611 may further contain instructions to calculate one or more output parameters as a function of one or more input parameters. Such calculation of the functional relationship between input and output parameters may then be used to calculate graphs illustrating expected changes in the output parameters due to possible changes in input parameters as illustrated and discussed hereinbelow in conjunction with
The non-transient storage unit 603 further includes a coil layout computation module 613. The coil layout computation module 613 contains instructions for the processor 601 to use the input parameters input from a user using the user input module 609 and the output parameters for a PCB coil corresponding to the input parameters calculated by the computation module 611. Based on these input and output parameters, the computation module 613 calculates a PCB layout for a PCB coil corresponding to the input parameters and the calculated output parameters.
As illustrated in
The user input engine 701, i.e., the execution of the user input module 609 on the processor 601 in
The user may also make changes to the graphical illustration, at step 811, for example, the user selects another combination of parameters for which to provide graphical illustration. In response to a change in the combination of parameters for graphing, the PCB coil design solution generation engine 705 regenerates the graph, at step 805.
Finally, as the ultimate goal of the PCB coil design system 600 is to design a PCB coil such as 105 for placement on a printed circuit board such as 401, a user may indicate the desire to generate a CAD file representing the designed coil. The user input engine 701 provides the user a mechanism by which to direct, step 813, the PCB coil design solution generation engine 705 to generate a CAD file 808, at step 815.
Turning now to the user interface provided by the PCB coil design system 600,
Window 901, illustrated in
Window 903, illustrated in
Window 907, illustrated in
It should further be noted that some of the input parameters depend on other input parameters. For example, a change in the Trace width (W) has an effect on the outer diameter (Dout) and vice versa. Thus, a change in one would impact the other. Select relationships are provided hereinbelow in the section entitled “PARAMETER VALUE RELATIONSHIPS.”
Given the part number set in the menu 121 of the LDC part window 901, the coil shape selected in drop down menu 131 of window 903, and the input parameters set in the input parameter window 911, output parameters of the resulting PCB coil 105 are computed (step 803 of
Many output parameters are calculated from Mohan's equation, Equation 1:
L=[(μ0N2DAVGC1)/2][ln(C2/ρ)+C3ρ+C4ρ2] (1)
where:
L is the total inductance
μ0 is the permeability of free space, 4π×10−7
N is the number of turns of the coil
Davg is the average diameter=(Dout+Din)/2
C1, C2, C3, C4 are layout dependent factors based on the geometry of the coil (for a circle, the following values are appropriate: C1=1.0, C2=2.46, C3=0, C4=0.2. C coefficients for other shapes may be found in [Mohan])
ρ is (Dout−Din)/(Dout+Din), and represents the fill ration of the inductor− small values of ρ correspond to hollow inductors (Dout≈Din), while large values correspond to (Dout≈Din)
Equation 1 for L provided above may be derived from Mohan's Equation, as discussed in [Mohan] S. S. Mohan, M. del Mar Hersheson, S. P. Boyd, and T. H. Lee, “Simple Accurate Expressions for Planar Spiral Inductances,” IEEE Journal of Solid-state Circuits, vol. 34, no. 10, pp. 1419-1424, Oct. 1999 (the entire disclosure of which is incorporated herein by reference). It can be readily seen, from Equation 1, the equation for inductance, that a change in a parameter such as outer diameter (Dout) has a direct or indirect impact on the inductance L.
Window 905, illustrated in
A user may use the drop down menus 353 and 355 to select which values to plot against each other.
The section entitled “CALCULATIONS” hereinbelow provides calculations and example code useful for and related to the graphing of parameter values in window 905.
Window 909, illustrated in
Turning now to the calculation of a coil layout,
The following notations apply:
θ—the track subtend angle, also known as the step angle, i.e., the angle between two vectors extending from the coil center to the two track endpoints, respectively.
Rr—radius increment per turn
RT—radius increment per track
W—trace width
S—trace spacing
Din—offset radius, i.e., the distance from the coil center to the starting point of the coil
θ0—offset angle
x1, y1, x2, y2—end point coordinates of a track
T—tracks per turn
Shape—e.g., circular, square, hexagonal, octagonal
N—turns per layer
M—number of PCB layers
P(rp, θp)—is a point on the coil defined, in polar coordinates, by radius rp and angle θp
In a first step 651 in
In a step 653 in
D
in
=D
out
−N*W−(N−1)*S (2)
Next, the flow depends on whether the user selected design calls for stacked coils or for a design without stacked coils, step 655, as this impacts how windings of layers are oriented. For non-stacked coils, the layers are set in opposite direction on alternating layers, step 657. Conversely, for stacked coils, the directions of the windings are in opposite directions for the alternate layers of each coil, step 659. However, adjacent layers of two stacked coils have the same winding orientation.
Referring back to
In step 663 in
For illustrative purposes, consider a simple spiral 851 as illustrated in
Consider an anticlockwise spiral 951 with an inner offset a equal to the inner diameter of the coil as is illustrated in
r
p
=a+bθ
p (3)
and θp=0→2πN, where N is the number of turns.
Conversely, consider a clockwise spiral 953 with an inner offset equal to the inner diameter of the coil as is illustrated in
r
p
=a+bθ
p (4)
and θp=θ→−2πN, where N is the number of turns.
Equations 3 and 4 are for idealized spirals with infinitely many points. In one embodiment, the spirals are laid out as straight-line segments, referred to as tracks, each track located between adjacent vertices in a sequence of vertices.
r
p
=a+bθ
p (5)
and θp=0→2πN, in steps of
which is the step angle, θ, for an counterclockwise coil. Conversely, for a clockwise spiral coil, the angle increment is
N is the number of turns, T is the number of sides per turn of the polygon and b is the radial increment from one turn to the next turn.
Referring now to
In the outer loop 665, in a step 667, the PCB coil design solution generation engine 703 determines the winding direction, which is used to determine whether the step angle should be positive or negative. If the spiral winding direction is clockwise, the step angle (θ) is
(step 668), and if the spiral winding direction is counterclockwise, the step angle (θ) is
(step 669).
For each track (each track is processed in the inner loop 666), in a step 670, the PCB coil design solution generation engine 703 calculates the x and y coordinates for the endpoints (x1,y1) and (x2,y2) of each track and saves the track to the coil layout 806 (indicated below as a call to CreateTrack procedure), by:
FOR I=N*T→0
Having laid out the coil layers by completing the outer loop 665 and the inner loop 666, the PCB coil design solution generation engine 703 has determined a sequence of x, y coordinates corresponding to the endpoints that make up each layer of the PCB coil such as 105.
In a step 671, the PCB coil design solution generation engine 703 lays out related circuitry such as connecting vias, CSensor pad, tracks connecting the coil to the vias and CSensor.
In a step 672, the PCB coil design solution generation engine 703 writes the coil design to an XML output file.
In a step 673, the PCB coil design solution generation engine 703 generates a layout from the XML file. In step 674, the layout is formatted for the PCB design program being used to design the PCB.
A circuit design tool has been described herein that provides a mechanism to efficiently design and prototype circuit components used for sensing purposes, for example, in designing touch devices for user inputs in household appliances. Other sensor applications can be supported using the coil design tools of the embodiments.
The following section “CALCULATIONS” presents calculations and example code segments useful for performing calculations for use with the embodiments and referred to in the description hereinabove. In the CALCULATIONS section, Constants are shown in Bold and Current Values from the user interface input menu are shown in Italics.
InnerDia_Min = 0
InnerDia_Min = numVias*viaSize + (numVias-1)viaSpacing
TraceSpacing
TraceSpacing /(2*(TraceWidth+TraceSpacing) )
TraceSpacing /(2*(TraceWidth+TraceSpacing) )
TraceSpacing /(2*(TraceWidth+TraceSpacing) )
TraceWidth on xaxis
TraceSpacing on xaxis
The following section, “PARAMETER VALUE RELATIONSHIPS,” presents equations useful to perform calculations needed to graph various parameters as described hereinabove. Each parameter value relationship section begins with a descriptive header in Bold Italics Underlined. In the parameter relationship formulas, constants are shown in Bold, current values with inputs received from user interface input boxes are shown in Italics, and values for which a functional relationship is to be plotted are shown in Italics Underline. The type of plot used for each parameter relationship is indicated in the “Type” field.
In the section Parameter Value Relationships, the following symbols are used:
D
out
= (2 * N + 1) * W + Din + (2 * N − 1) * S
D
out
= (2 * N − 1) * S + Din + (2 * N + 1) * W
D
out
(2 * W + S) * N + Din + W − S
TotalInductance
∝ OuterDia
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
TotalInductance
∝ −TraceWidth
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
TotalInductance
∝ −TraceSpacing
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
TotalInductance
∝ NumTurns2
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
TotalInductance
∝ NumLayers
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
SensorFrequency
∝ OuterDia
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
SensorFrequency
v.
TraceWidth
SensorFrequency
∝ −TraceWidth
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
SensorFrequency
v.
TraceSpacing
SensorFrequency
∝ −TraceSpacing
L = [(μ0N2DAVGC1)/2][ln(C2/ρ) + C3ρ + C4ρ2]
SensorFrequency
v.
NumTurns
SensorFrequency
∝ NumTurns
SensorFrequency
v.
NumLayers
SensorFrequency
∝ NumLayers
SensorFrequency
v.
SensorCapacitance
SensorFrequency
∝ 1/{square root over (SensorCapacitance)}
L is underlined in the equation above.
Approximate
Type: y = a(1 − ebx)
ResonanceImpedence v. OuterDia
Approximate
Type: y = a(1 − ebx)
V—Voltage
Temp—Temperature
V—Voltage
T—Temperature
V—Voltage
T—Temperature
V—Voltage
T—Temperature
V—Voltage
T—Temperature
V—Voltage
Temp—Temperature
V—Voltage
Temp—Temperature
Approximate Type: y = mx
V—Voltage
Temp—Temperature
V—Voltage
T—Temperature
Approximate
Type: y = ax2
Modifications are possible in the described embodiments, and other embodiments are possible within the scope of the claims.
This application claims the benefit of priority under 35 U.S.C. §119(e) to co-owned U.S. Provisional Patent Application No. 62/325,327 filed on Apr. 20, 2016, titled “COIL DESIGNER,” and also to co-owned U.S. Provisional Patent Application No. 62/375,033 filed on Aug. 15, 2016, titled “COIL DESIGNER,” each of which is hereby incorporated by reference in its entirety herein.
Number | Date | Country | |
---|---|---|---|
62325327 | Apr 2016 | US | |
62375033 | Aug 2016 | US |