Motion sensing using hall voltage signals
10436607 ยท 2019-10-08
Assignee
Inventors
- Denis G. Chen (San Jose, CA)
- Arman Hajati (Santa Clara, CA, US)
- Manoj K. Bhattacharyya (Cupertino, CA, US)
Cpc classification
G01D5/145
PHYSICS
International classification
Abstract
An integrated circuit (IC) chip including an array of asymmetrically distributed magnetic field sensing elements. Additionally, an integrated circuit (IC) chip includes a substrate, a sensing coil supported by the substrate and enclosing a portion of substrate, and a Hall effect sensor supported by the portion of the substrate enclosed by the sensing coil.
Claims
1. An integrated circuit (IC) chip comprising: a first magnetic field sensing element disposed at a first location of the IC chip; a second magnetic field sensing element disposed at a second location of the IC chip; and a third magnetic field sensing element disposed at a third location of the IC chip, the first location, the second location and the third location being distributed along a first direction, such that the second location is between the first location and the third location, and the second location is separated from the first location by a first distance and from the third location by a second distance different from the first distance; and signal processing circuit configured to determine displacements of a mass, when the mass is in motion along a direction of motion having a first component along the first direction and a second component along a second direction normal to the IC chip, wherein the mass supports at least a portion of a magnetic field source, wherein the displacements of the mass are determined, at least in part, based on location-specific changes of a magnetic field emitted by the magnetic field source, the magnetic field changes being caused by the motion of the mass.
2. The IC chip of claim 1, wherein the location specific magnetic field changes comprise magnetic field changes sensed at the first location by the first magnetic field sensing element, magnetic field changes sensed at the second location by the second magnetic field sensing element, and magnetic field changes sensed at the third location by the third magnetic field sensing element.
3. The IC chip of claim 1, wherein the signal processing circuit is disposed in an area of the IC chip that is between the second location and third location along the first direction, and the second distance is larger than the first distance.
4. The IC chip of claim 1, wherein the determined displacements of the mass include a displacement along the first direction and a displacement along the second direction.
5. The IC chip of claim 4, wherein each of the first, second and third magnetic field sensing elements is configured to sense components of the magnetic field along each of the first direction, the second direction and a third direction orthogonal on both the first direction and the second direction, and provide to the signal processing circuit an angle of the magnetic field relative to the second direction and a magnitude of the magnetic field.
6. The IC chip of claim 5, wherein each of the first, second and third magnetic field sensing elements comprises a tri-axial Hall-effect sensor element.
7. The IC chip of claim 4, further comprising: a fourth magnetic field sensing element disposed at a fourth location of the IC chip, the fourth location being separated from the first location by a third distance along a third direction orthogonal on both the first direction and the second direction, wherein the direction of motion has a third component along the third direction, and wherein the determined displacements of the mass further include a displacement Y along the third direction.
8. The IC chip of claim 7, further comprising: a fifth magnetic field sensing element disposed at a fifth location of the IC chip, the fifth location being separated from the third location by the third distance along the third direction and from the fourth location by a sum of the first distance and second distance along the first direction.
9. The IC chip of claim 8, further comprising: a sixth magnetic field sensing element disposed at a sixth location of the IC chip, the sixth location being (i) between the fourth location and the fifth location, (ii) separated from the fourth location by the first distance along the first direction, and (iii) separated from the second location by the third distance along the third direction; a seventh magnetic field sensing element disposed at a seventh location of the IC chip, such that the third location is between the second location and the seventh location, where the seventh location is separated from the third location by the first distance along the first direction; and an eighth magnetic field sensing element disposed at an eighth location of the IC chip such that the fifth location is between the sixth location and the eighth location, where the eighth location is separated from the fifth location by the first distance along the first direction, and separated from the seventh location by the third distance along the third direction, wherein the magnetic field sensing elements provide to the signal processing circuit a gradient along the first direction of the gradient along the first direction of the magnetic field.
10. The IC chip of claim 4, wherein each of the first, second and third magnetic field sensing elements is configured to sense a component of the magnetic field along the second direction.
11. The IC chip of claim 10, wherein each of the first, second and third magnetic field sensing elements comprises a uniaxial Hall-effect sensor element.
12. The IC chip of claim 1, comprising one or more driving circuits each of which comprises: a programmable current source; two or more of the magnetic field sensing elements; and a dummy load connected to each other in series.
13. The IC chip of claim 12, further comprising: a band-gap reference circuit; sample and hold circuits; and for each of the driving circuits, a multiplexer circuit comprising input ports and an output port, wherein an output of each of the magnetic field sensing elements, the dummies and the band-gap reference circuit is coupled with a respective input port of the multiplexer through a respective sample and hold circuit; a programmable gain amplifier circuit coupled with the output port of the multiplexer circuit; and an analog to digital converter (ADC) circuit coupled between the programmable gain amplifier circuit and the signal processing circuit.
14. The IC chip of claim 13, further comprising a chopping multiplexer pair coupled between the output port of the multiplexer circuit and the input of the programmable gain amplifier circuit and between the output of the programmable gain amplifier circuit and the input of the ADC circuit.
15. The IC chip of claim 13, wherein the signal processing circuit and one or more of the dummy loads, the band-gap reference circuit, sample and hold circuits, multiplexer circuits, programmable gain amplifier circuits and ADCs are disposed in a central area of the IC chip that is between the second location and third location along the first direction, and the second distance is larger than the first distance.
16. The IC chip of claim 1, wherein the signal processing circuit to determine, when the mass is at rest, a gradient of the magnetic field along the first direction based on (i) a value of the magnetic field sensed by the first magnetic field sensing element at the first location, (ii) a value of the magnetic field sensed by the second magnetic field sensing element at the second location, and (iii) the first distance between the first location and the second location, and the displacements of the mass are determined based on a combination of the location-specific changes of the magnetic field and the gradient of the magnetic field along the first direction.
17. The IC chip of claim 1, wherein the IC chip is an application specific IC (ASIC).
18. A haptic engine comprising the mass and the IC chip recited in claim 1.
19. A computing device comprising the haptic engine of claim 18.
20. The IC chip of claim 1, wherein the signal processing circuit comprises a microcontroller unit.
21. The IC chip of claim 1, wherein the signal processing circuit comprises a Field-Programmable Gate Array.
22. The IC chip of claim 1, wherein the second distance is larger than the first distance by a predetermined factor in a range of 1.1 to 10.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19) Certain illustrative aspects of the systems, apparatuses, and methods according to the disclosed technologies are described herein in connection with the following description and the accompanying figures. These aspects are, however, indicative of but a few of the various ways in which the principles of the disclosed technologies may be employed and the disclosed technologies are intended to include all such aspects and their equivalents. Other advantages and novel features of the disclosed technologies may become apparent from the following detailed description when considered in conjunction with the figures.
DETAILED DESCRIPTION
(20)
(21)
(22) In the example illustrated in
(23) The fixed portions 156F and the mobile portions 156M of the magnetic field source are configured and arranged relative to each other, such that, when the mass 154 is at rest, the magnetic field source 156 as a whole emits a magnetic field B. Only two lines of a spatial distribution of the magnetic field B(X,Y,Z) emitted by the magnetic field source 156 is shown in
(24)
(25) In the example illustrated in
(26) The fixed portions 156F and the mobile portions 156M of the magnetic field source are configured and arranged relative to each other to emit, when the mass 154 is at rest, a magnetic field B. Additionally, the marker magnet set 157 are configured to emit a marker magnetic field B.sub.M having a known spatial period .sub.X between zero crossings thereof. Moreover, the IC chip 100 is disposed on (i.e., is fixed to) the frame 152 of the haptic engine 150 in a sensing plane 105 of the spatial distribution of the combined magnetic fields B(X,Y,Z) and B.sub.M(X,Y,Z) emitted by the magnetic field source 156 as a whole. Note that the marker magnet set 157 is spaced apart from the sensing plane 105 such that, at the sensing plane, a strength of the marker magnetic field B.sub.M emitted by the marker magnet set 157 is 10, 100 or 100 stronger than a strength of the magnetic field B emitted by the combination of permanent magnets 156F and coil 156M of the magnetic field source. In this manner, each of the magnetic field sensing elements of the array 110 can determine one or more components of the marker magnetic field B.sub.M, in the sensing plane 105, at the respective locations 102A, 102B, 102C. Note that in this configuration of the haptic engine 150, the magnets 156F and the coil 156M of the magnetic field source are used for driving the mass 154 along the x-axis, and the marker magnet set 157 is used for sensing the mass' displacement X along the x-axis, Z along the z-axis, and Y along the y-axis, as explained below.
(27) Referring again to
(28)
(29)
B.sub.XY(X,Y)={square root over (B.sub.X.sup.2(X,Y)+B.sub.Y.sup.2(X,Y))}(6).
In EQ. 6, a component B.sub.X(X,Y) along the x-axis and a component B.sub.Y(X,Y) along the y-axis of the magnetic field B are measured concurrently with the component B.sub.Z(X,Y), in the same sensing plane 105.
(30)
(31) Referring again to
(32) Referring now to
(33) Additionally, the DSP 122 of the mix-signal circuitry 120 uses the changes of the magnetic field B, measured by the magnetic field sensing elements of the array 110 at their respective asymmetrically distributed locations 102A, 102B, 102C in the sensing plane 105, to determine one or more of the displacements X, Z, and Y of the mass 154. In this manner, the displacements X, Z, and Y of the mass 154 are determined by the DSP 122 with an accuracy corresponding to the accuracy of lithography processes used to establish/form the separations d.sub.1 and d.sub.2. Note that it is the asymmetric arrangement of the magnetic field sensing elements, in which the separations between adjacent magnetic field sensing elements are different, d.sub.2d.sub.1, that enables the DSP 122 to differentiate translational motion of the mass 154 along x, y, and z-axes, as described below. For instance, for the array 110, the separation d.sub.2 between the magnetic field sensing elements 110B and 110C has to be larger than the separation d.sub.1 between the magnetic field sensing elements 110A and 110B by at least 2%, 5% or 10%, so the displacements X, Z, and Y are measurable in accordance with the techniques described herein. Typically, for the array 110, the separation d.sub.1 between the magnetic field sensing elements 110A and 110B is in a range of 10-100 m, and the separation d.sub.2 between the magnetic field sensing elements 110B and 110C is suitably 2-10 larger than d.sub.1.
(34) For example, the first magnetic field sensing element 110ZA measures the component B.sub.Z(102A) of the magnetic field at the first location 102A, and the second magnetic field sensing element 110ZB measures the component B.sub.Z(102B) of the magnetic field at the second location 102B. Here, d.sub.1 is the separation along the x-axis between the first location 102A, where the first magnetic field sensing element 110ZA is located, and the second location 102B, where the second magnetic field sensing element 110ZB is located. Because the magnetic field B decays approximately linearly along the z-axis (given a separation along the z-axis between the sensing plane 105 and the adjacent surface of the stainless steel cage that encompasses mass 154 is at least 10 smaller than a separation along the x-axis between the mobile portions 156MA, 156MB of the magnetic field source), a displacement Z along the z-axis and a displacement X along the x-axis of the mass 154 induce a change of the component B.sub.Z(102A) at the first location 102A and a change of the component B.sub.Z(102B) at the second location 102A in accordance with the following system of two linear equations:
(35)
The DSP 122 is configured to solve the above system of linear equations for the two unknown displacements Z, X and unknown parameter a in terms of the measured changes B.sub.Z(102A) and B.sub.Z(102B). Note that, in view of the above noted linear approximation, the magnetic flux gradient satisfies the following first condition:
(36)
Moreover, given that the first magnetic field sensing element 110ZA and the second magnetic field sensing element 110ZB are both calibrated in terms of a Z correction, if the second magnetic field sensing element 110ZB measures, at the second location 102B at time t, a component B.sub.Z(102B;t) equal to the component B.sub.Z(102A;t) measured, at the first location 102A at an earlier time t, by the first magnetic field sensing element 110ZA, then the DSP 122 can infer, without having to perform a calibration based on an external displacement reference, that the mass 154 has traveled, over the time , exactly the separation d.sub.1 between the first and second magnetic field sensing elements. In such cases, the following second condition is satisfied:
If B.sub.Z(102A;t)=B.sub.Z(102B;t), then X=d.sub.1(9).
Note that, because the first magnetic field sensing element 110ZA and the second magnetic field sensing element 110ZB are typically at the same temperature, the determination of the displacement X in accordance with EQ. 9 is temperature insensitive. Graph 164X* shown in
(37) As such, the DSP 122 is configured to substitute EQs. 8-9 into the system of linear equations of EQ. 7 to determine the following displacement Z along the z-axis:
(38)
Note that equations EQs. 7-10 can be generalized to account for the remaining magnetic field sensing elements of the array 110, e.g., the third magnetic field sensing element 110ZC that is separated from the second magnetic field sensing element 110ZB by separation d.sub.2.
(39) Referring now to a system of linear equations similar to the one in EQ. 7, if both the first condition given by EQ. 8 is satisfied and the mass 154 moves only along the x-axis (i.e., a displacement X0 and a displacement Z.fwdarw.0), then the displacement X of the mass causes a uniform change along the x-axis of the component B.sub.Z of the magnetic field. As such, graph 164X shown in
(40) However, if both the first condition given by EQ. 8 is satisfied and the mass 154 moves only along the z-axis (i.e., a displacement Z0 and a displacement X.fwdarw.0), then the displacement Z of the mass causes a scaled change along the x-axis of the component B.sub.Z of the magnetic field. As such, graph 164Z shown in
(41) As illustrated in
(42) The DSP 122 can perform determinations of a displacement Y of the mass 154 along the y-axis by generalizing EQ. 6-10. Referring again to
(43) Referring again to EQ. 8, note that values of the gradient B.sub.Z/X at various locations of the die 101 where the magnetic field sensing elements of the array 110 are disposed are measured as part of a calibration procedure described below. A procedure to equalize sensitivity of the magnetic field sensing elements of the array 110 is described first.
(44)
(45) At 510, while the mass 154 is at rest and no current is provided to the fixed portions 156FA, 156FB of the magnetic field source (e.g., the coils A and B), i.e., for I.sub.L=0, Hall voltages {v(102n;t.sub.1)} at respective locations {102n} are measured, at time t.sub.1, across all n Hall-effect sensing elements of the array 110.
(46) At 520, the fixed portions 156FA, 156FB of the magnetic field source (e.g., the coils A and B) of the haptic engine 150 are driven at high frequency with known coil current I.sub.L00, to avoid moving the mobile portions 156MA, 156MB of the magnetic field source (e.g., the permanent magnets A and B).
(47) While performing 520, the following operations are being performed. At 522, a respective Hall voltage v(102n;t.sub.2) at a corresponding location 102n is measured, at time t.sub.2, on each of the n Hall-effect sensing elements of the array 110. At 524, sensitivity across all n Hall-effect sensing elements of the array 110 is equalized, by adjusting their gain, so v(102n;t.sub.2)v(102n;t.sub.1) is the same for all n Hall-effect sensing elements. This ensures that each Hall-effect sensing element 110Zn will output the same value of the Hall voltage V(102n) when the Hall-effect sensing element senses the same field. At 526, a relationship between the Hall voltages v(102n;t.sub.2) and the known coil current I.sub.L0 is determined. For instance, a linear approximation can be used for this purpose, v(102n;t.sub.2)=(110Zn)I.sub.L0, where (110Zn) is referred to as the electromagnetic (EM) coupling factor for the Hall-effect sensing element 110Zn.
(48) At 528, and at subsequent operations performed by any of the circuits of the mix-signal circuitry 120, and by the controller circuitry of the haptic engine 150, if at time t a Hall-effect sensing element 110Zn measures a voltage V(102n;t) while the fixed portions 156FA, 156FB of the magnetic source are driven with a coil current I.sub.L, then the contribution V(102n;t) to the measured voltage caused by the mobile portions 156MA, 156MB of the magnetic source is determined as V(102n;t)=V(102n;t)(110Zn)I.sub.L. In other words, a contribution of the coil current-induced Hall voltage (110Zn)I.sub.L is subtracted from the sensed Hall voltage V(102n;t), and only an effective Hall voltage V(102n;t) caused by the moving permanent magnets is used for all subsequent calculations.
(49)
(50) At 535, the haptic engine 150, which is a linear resonant actuator (LRA), is driven with sinusoidal input voltage at resonance. While 535 is in progress, the following operations are performed.
(51) At 540, the gradient B.sub.Z/X at the sensing plane 105 of the haptic engine 150 is estimated for a set of values of B.sub.Z, in the range from 0 to B: B.sub.Z={0, B.sub.Z1, B.sub.Z2, . . . , B} Here, the gradient BZ/X at a location 102(n+0.5) between locations 102n and 102(n+1) that are separated by a separation d.sub.n is estimated geometrically, in accordance with
(52)
The value of B.sub.Z/X at the exact locations 102n and 102(n+1) is later obtained by interpolation between a large set of B.sub.Z(102(n+0.5))/X values measured at different values of B.sub.Z(102n). Note that while the foregoing set of large values is obtained by sweeping over X, in order to change the value of B.sub.Z(102n), the actual value of x at location 102(n+0.5) is not needed.
(53) At 545, a value of B.sub.Z as a function, X(B), over the position along the x-axis in a range from B.sub.1 to B.sub.2 is estimated by integrating over the inverse of the determined gradient 1/(B.sub.Z/X) in the following manner:
(54)
Based on the assumption that X(B) is a single-valued function of B.sub.Z, the determined function X(B) can be used to map every measured value of B.sub.Z(for instance B.sub.Z(102n) at location 102n) to a unique value of X.
(55) In this manner, a displacement of the mass 154 is referenced by a combination of geometries of the IC chip 100 and of the haptic engine 150 (e.g., separations d.sub.1, d.sub.2, etc. between magnetic field sensing element 110ZA, 110ZB, etc. of the array 110) rather than geometry of an external tester. Further note that the positions of the mass 154 estimated from LUT 546 based on measurements of the magnetic field component B.sub.Z corresponds to a macroscopic motion of the mass, e.g., over 10s or 100s of microns.
(56) Moreover, the DSP 122 can determine displacements Z and X of the moving mass 154 that correspond to its microscopic motion, e.g., at a sub-micron or micron scale, by using the gradient BZ/X that has been determined in accordance with the process 530, as described below.
(57)
(58) At 555, a displacement Z() along the z-axis is estimated using two magnetic field sensing elements of the array 120 disposed at locations spaced apart by a large separation, in accordance with EQ. 10, and using the gradient BZ/X determined based on the process 530. For example, changes B.sub.Z measured by the second magnetic field sensing element 110ZB and the third magnetic field sensing element 110ZC at the respective second location 102B and third location 102C that are separated by a separation d.sub.2 can be used for the estimation performed at 555. As another example, changes B.sub.Z measured by the first magnetic field sensing element 110ZA and the third magnetic field sensing element 110ZC at the respective first location 102A and third location 102C that are separated by a separation d.sub.1+d.sub.2 can be used for the estimation performed at 555.
(59) At 560, parameter a and a displacement X along the x-axis of the mass 154 are determined using two magnetic field sensing elements of the array 110 disposed at locations spaced apart by a small separation and the gradient BZ/X determined based on the process 530. For example, changes B.sub.Z measured by the first magnetic field sensing element 110ZA and the second magnetic field sensing element 110ZB at the respective first location 102A and second location 102B that are separated by a separation d.sub.1 can be used for the determination performed at 560. This determination is performed by inverting EQ. 7 in the following manner:
(60)
Note that EQs. 10 and 13 constitute a system of three linear equations with three unknowns , Z, X. Such system of linear equations can have a unique solution.
(61) Note that when the magnetic field sensing elements of the array 110 are tri-axial Hall-effect sensing elements 110A, 110B, 110C, etc., the motion of the mass 154 of the haptic engine 150 can be sensed based on the angle ang(B) formed by the magnetic field with the z axis, instead of based on the component B.sub.Z along the z-axis of the magnetic field. The angle ang(B) is determined by the DSP 122, based on the spatial distribution 160Z of the axial component B.sub.Z(X,Y) shown in
(62)
In EQ. 14, the transverse component B.sub.XY(X,Y) is obtained by the DSP 122 using EQ. 6. In the example shown in
(63) Note that the displacements X and Z of the mass 154, in terms of changes [ang(B)] of the magnetic field angle ang(B), can be determined by solving EQs. 7-13, where [ang(B)] is substituted for B.sub.Z. In this manner, the displacements X and Z of the mass 154 can now be encoded in angular domain, so they can be determined based on a ratio-metric measurement of the magnetic field angle ang(B), in accordance with EQ. 14. As determinations of the displacements X and Z of the mass 154 are based on a ratio-metric measurement, results of these determinations are insensitive to temperature change. Further, this approach also enables the DSP 122 to differentiate rotational motion from translational motion. Furthermore, processes 530 and 550 can be used, in a manner similar to the one described above in connection with
(64) Note that technologies described above in connection with
(65) In an embodiment alternative to the one shown in
(66) The state-observer feedback control system 570 uses the array 110 of magnetic field sensing elements to measure various magnetic field components B.sub.X(k), B.sub.Y(k), B.sub.Z(k) at a respective position 102A, 102B, etc. of each sensor 110A, 110B, etc. These measured values are used to interpolate LUT 572 to generate a measured plant output y[k]. Note that, in this example, the plant is the haptic engine 150, and x[k] is a state of the haptic engine. Here, the state x[k] of the haptic engine includes a current X position of the mass 154. As such, in this example, the plant output y[k] represents a measured X position of the mass 154 given its current position x[k] and a driving signal u[k] acting on the mass. For instance, the driving signal u[k] can be a coil current I.sub.L.
(67) The LUT 572 can be calibrated using a reference sensor. For example, a laser profiler can be used to measure the X position (y[k] state is the X position, in this case) of the engine 150's moving mass 154 while the engine is actuated. A set of B field measurements is collected by the sensor array 110 over this set of known y[k] states and the LUT 572 is generated to lookup y[k] for a given set of B field measurements.
(68) The state observer 574 receives the measured engine output y[k] (e.g., the measured X position) from LUT 572 and uses it as a first input. Moreover, the state observer 574 estimates the engine state {circumflex over (x)}[k] and an estimated engine output [k], using the following equations:
{circumflex over (x)}[k+1]=A{circumflex over (x)}[k]+Bu[k]+L(y[k][k])(15),
[k]=C{circumflex over (x)}[k]+Du[k](16).
Note that by using a parametrized model of the engine 150 in accordance with EQs. 15-16, the state observer 574 obtains an estimate of the next engine state {circumflex over (x)}[k+1] based on a current estimate of the same, a current estimate of the engine output [k], and a discrepancy between the output measurements y[k] and the output estimate [k].
(69) The estimated engine state {circumflex over (x)}[k] along with an input command are used by the controller 576 to provide a drive signal u[k]. The drive signal u[k] is returned to the state observer 574 through a feedback loop, where it is used by the state observer 574 as a second input along with the first input noted above. Additionally, the drive signal u[k] is provided to the engine 150 having an engine state x[k].
(70) Moreover, the IC chip 100 can be modified in various ways and then used in the haptic engine 150 to determine a displacement Y along the y-axis of the mass 154 concurrently with determining the displacements X and Z thereof.
(71)
(72) In some implementations, each magnetic field sensing element 610ZA, 610ZB, 610ZC, 610ZE, 610ZG is a single-axial magnetic field sensing element configured to measure, when the IC chip 600 is disposed in the sensing plane 105 of the haptic engine 150, at its respective location 602A, 602B, 602C, 602E, 602G, the B.sub.Z component of the magnetic field B. In other implementations, each magnetic field sensing element 610A, 610B, 610C, 610E, 610G is a tri-axial magnetic field sensing element configured to measure, when the IC chip 600 is disposed in the sensing plane 105 of the haptic engine 150, at its respective location 602A, 602B, 602C, 602E, 602G, all three components B.sub.Z, B.sub.X and B.sub.Y of a magnetic field B. In this case, for example, the tri-axial magnetic field sensing element 610A includes a combination of (i) a single-axial magnetic field sensing element 610ZA configured to measure, at its location 602A, a component B.sub.Z along the z-axis, (ii) a single-axial magnetic field sensing element 610XA configured to measure, at its location 602A, a component B.sub.X along the x-axis, and (iii) a single-axial magnetic field sensing element 610YA configured to measure component B.sub.Y along the y-axis.
(73) The array 610 of magnetic field sensing elements of the IC chip 600 is used to measure changes in the magnetic field, e.g., B.sub.Z or [ang(B)], at respective locations of the magnetic field sensing elements, such that determinations of both displacement X along the x-axis and displacement Y along the y-axis can be performed concurrently with determinations of displacement Z along the z-axis of the mass 154. Here, magnetic field sensing elements, at the locations 102A, 102C separated by d.sub.1+d.sub.2 on the first row, are used by the DSP 622 of the mix-signal circuitry 620 to determine displacement Z of the mass 154 using EQ. 8; magnetic field sensing elements, at the locations 102A, 102B separated by d.sub.1 on the first row, are used by the DSP 622 to determine displacement X of the mass 154 using EQs. 8 and 11; and magnetic field sensing elements, at the locations 102A, 102E separated by d.sub.3 between the first and second rows, are used by the DSP 622 to determine displacement Y of the mass 154 using equations similar to EQs. 8 and 11.
(74)
(75) In some implementations, each magnetic field sensing element 710ZA, 710ZB, 710ZC, 710ZD, 710ZE, 710ZF, 710ZG, 710ZH is a single-axial magnetic field sensing element configured to measure, when the IC chip 700 is disposed in the sensing plane 105 of the haptic engine 150, at its respective location 702A, 702B, 702C, 702D, 702E, 702F, 702G, 702H the B.sub.Z component of the magnetic field B. In other implementations, each magnetic field sensing element 710A, 710B, 710C, 710D, 710E, 710F, 710G, 710H is a tri-axial magnetic field sensing element configured to measure, when the IC chip 700 is disposed in the sensing plane 105 of the haptic engine 150, at its respective location 702A, 702B, 702C, 702D, 702E, 702F, 702G, 702H, all three components B.sub.Z, B.sub.X and B.sub.Y of a magnetic field B. In this case, for example, the tri-axial magnetic field sensing element 710A includes a combination of (i) a single-axial magnetic field sensing element 710ZA configured to measure, at its location 702A, a component B.sub.Z along the z-axis, (ii) a single-axial magnetic field sensing element 710XA configured to measure, at its location 702A, a component B.sub.X along the x-axis, and (iii) a single-axial magnetic field sensing element 710YA configured to measure component B.sub.Y along the y-axis.
(76) The array 710 of magnetic field sensing elements of the IC chip 700 is used to measure, at respective locations of the magnetic field sensing elements, changes B.sub.Z(or [ang(B)]) in the magnetic field. As such, the DSP 722 can determine curvature of the spatial distribution 160XY of the transverse component B.sub.XY(X,Y) of the magnetic field, e.g., in terms of .sup.2B.sub.Z/X.sup.2. For instance, changes B.sub.Z measured by magnetic field sensing elements disposed on the first row, at locations 702A, 702B separated by d.sub.1, on one side of the central area 704, are used by the DSP 722 to determine a first instance of B.sub.Z/X; and changes B.sub.Z measured by magnetic field sensing elements disposed on the first row, at locations 702C, 702D also separated by d.sub.1, on the opposing side of the central area 704, are used by the DSP 722 to determine a second instance of B.sub.Z/X. However, a difference of the first and second instances of B.sub.Z/Xover the separation (d1+d2) between the magnetic field sensing elements disposed on the first row, at locations 702A, 702Cis .sup.2B.sub.Z/X.sup.2.
(77) Note that the foregoing capability of the IC chip 700 can be used when a displacement X extends outside of the linear region II into region I or region III, or both, as shown in
(78) Note that, for either of the implementations of the IC chip 100, 600 and 700, by placing the magnetic field sensing elements of their respective arrays 110, 610, 710 on both sides of respective mixed-signal circuitry 120, 620, 720 makes efficient use of the silicon real-estate while producing a large value of the separation d.sub.n between at least some of the magnetic field sensing elements. In addition, the magnetic field sensing elements that are asymmetrically disposed in the X or Y directions are beneficially used for measuring changes in the magnetic field, e.g., B.sub.Z or [ang(B)], so the measured changes in the magnetic field can then be used for accurately determining the displacement Z.
(79)
(80) In the example shown in
(81) In the example shown in
(82) In the example shown in
(83) In the example shown in
(84) The PGA circuit 836P (or 836R, etc.) is coupled with the output port of the analog multiplexer circuit 832P (or 832R, etc.) Note that the S/H circuitry 834 also level shifts the Hall voltage output by each of the Hall-effect sensing elements to input common-mode (CM) level of the PGA circuit 836P (or 836R, etc.)
(85) Offset and low-frequency noise of the PGA circuit 836P (or 836R, etc.) can be removed by chopping. As such, in some implementations, the mix-signal circuitry 820 further includes a pair of multiplexers 838P (or 838R, etc.), also referred to as a chopping multiplexer pair, that includes a first multiplexer coupled between the output port of the analog multiplexer circuit 832P (or 832R, etc.) and the input port of PGA circuit 836P (or 836R, etc.) and a second multiplexer coupled between the output port of the PGA circuit 836P (or 836R, etc.) and the input port of ADC circuit 840P (or 840R, etc.). When the pair of multiplexers 838P (or 838R, etc.) is switched simultaneously, the polarity of the input and output signals of the PGA circuit 836P (or 836R, etc.) is inverted. This action has no impact on the analog output of the multiplexer 832, but it inverts the sign of any offset or low-frequency noise from the PGA circuit 836P (or 836R, etc.) which can be canceled out later by addition or averaging.
(86) Further, the ADC circuit 840P (or 840R, etc.) is coupled between the PGA circuit 836P (or 836R, etc.) and the DSP 822. Note that the multiple PGA circuit 836P (or 836R, etc.) and ADC circuit 840P (or 840R, etc.) channels are being parallelized to increase sampling speed and relax analog design requirement.
(87) The mix-signal circuitry 820 includes a DSP 822 coupled with the ADC circuits 840P, 840R, etc. Here, the DSP 822 can be implemented as a FPGA, or MCU, or any digital state-machine, for instance, and configured to perform any one of the techniques described above (e.g., processes 530, 550) for determining displacements Z, X and Y of the mass 154 based on changes of a magnetic field measured by the Hall-effect sensing elements included in the ASIC. The determined displacements Z, X and Y can be output to an off-chip computing system 842 for further processing, storing, etc.
(88) Note that another advantage of the technologies described above is that only digital information is communicated between the DSP 822 and the off-chip computing system 842. This interface between the DSP 822 and the off-chip computing system 842 can be implemented using the pads 666 shown in
(89) Note that the architecture of the mix-signal circuitry 820 relies on B sensing which inherently cancels out a Hall voltage offset output by the Hall-effect sensing elements of the ASIC shown in
(90) In summary, processes 530 and 550 can be used to encode one or more displacements X, Y, and Z of a mass 154 of a haptic engine 150 in magnetic field intensity along one axis, e.g., B.sub.Z(or alternatively B.sub.X or B.sub.Y), and measuring it via uniaxial Hall-effect sensing elements (or other uniaxial magnetic field sensing elements.) Self-calibration of mass 154's displacement can be performed by determining a gradient B.sub.Z/X based on the known distance, dn, between uniaxial Hall-effect sensing elements. Discriminating the displacements X, Y, and Z during runtime can be performed by using (i) changes B.sub.Z measured by different combinations of uniaxial Hall-effect sensing elements with different separation distances, dn, and (ii) self-calibration data relating to the gradient B.sub.Z/X to solve for each motion component separately. Same processes can be used based on gradient B.sub.X/X or gradient B.sub.Y/X.
(91) Moreover, processes 530 and 550 can be used to encode one or more displacements X, Y, and Z of a mass 154 of a haptic engine 150 in magnetic field angle ang(B), and measuring it via tri-axial Hall-effect sensing elements (or other tri-axial magnetic field sensing elements.) Self-calibration of mass 154's displacement can be performed by determining a gradient [ang(B)]/X based on the known distance, dn, between tri-axial Hall-effect sensing elements. Discriminating the displacements X, Y, and Z motion during runtime can be performed by using (i) changes [ang(B)] measured by different combinations of tri-axial Hall-effect sensing elements with different separation distances, dn, and (ii) self-calibration data relating to the gradient [ang(B)]/X to solve for each motion component separately.
(92) Referring again to
(93) Additionally, in some embodiments, the magnetic field sensing elements of the array 110 of IC chip 100 can also function as temperature sensors. For example, when the magnetic field sensing elements of the array 110 are implemented as Hall sensors, a change in resistance () of each Hall sensor is a function of mostly a change in temperature , and a change in Hall voltage V(B;) output by the Hall sensor is a function of both a change in magnetic field intensity B and also a change in temperature . In this manner, a measurement of the change in resistance () of a Hall sensor can be used to determine the change in temperature of the Hall sensor, and a measurement of the change in Hall voltage V(B;) output by the Hall sensor can be used to determine the change magnetic field intensity B at the location of the Hall sensor for the determined change in temperature . As such, the temperature change determined in this manner can be useful for improving the accuracy of Z displacement and X displacement measurements performed using the IC chip 100 when various temperature coefficients of the IC chip 100 are modeled and compensated for.
(94)
(95) In the example illustrated in
(96) The driving coil 910 and the magnet 920 are configured and arranged relative to each other, such that, when the mass 930 is at rest, a combination of the driving coil and the magnet emits a magnetic field B. Only two lines of a spatial distribution of the magnetic field B(X,Y,Z) emitted by the combination of driving coil and magnet is shown in
(97)
(98) The sensing coil 1010 of the analog front-end circuitry 1005 is arranged and configured to sense flux change B/t, at the location of the sensing coil, as induced bEMF across the sensing coil. For example, when the hybrid sensor 1000 is disposed inside HE 900 at sensing point P, as shown in
(99)
where I/t is a change in the driving current through the driving coil 910, M (measured in Henrys) is a mutual coupling between the driving coil 910 and the sensing coil 1010, and K.sub.M (measured in N/A) is a motor constant.
(100) Additionally, the HES 1020 of the hybrid sensor 1000 is arranged and configured to sense absolute field intensity B, at the location of the HES, as a Hall voltage V.sub.H output by the HES. For example, when the hybrid sensor 1000 is disposed inside HE 900 at sensing point P, as shown in
(101) Note that in the example illustrated in
(102) Lateral size of each of the sensing coil 1010 and the HES 1020 is of order tens to hundreds of microns. As the HES 1020 is disposed inside the sensing coil 1010, the lateral size of the former can be 90%, 80%, 50%, 20% or 10% smaller than the lateral size of the latter. In some implementations, the HES 1020 can be disposed, in regard to the (x,y) plane, at the center of the sensing coil 1010. Moreover, note that in implementations in which at least some portions of the hybrid sensor 1000 are formed using CMOS technologies, components and routing of the analog front-end circuitry 1005 can be built vertically, e.g., along the z-axis, by using a planer multi-level fabrication process. In some such implementations, the HES 1020 can be formed in the same layer as the sensing coil 1010, i.e., in the same (x,y) plane. In other such implementations, the HES 1020 can be formed in a first layer parallel to the (x,y) plane and the sensing coil 1010 can be formed in a second layer parallel to the (x,y) plane that is higher along the z-axis in the stack-up than the first layer. In some cases, the second layer in which the sensing coil 1010 has been formed can be deposited prior to the first layer in which the HES 1020 has been formed, so the second layer is lower along the z-axis in the stack-up.
(103) In the example illustrated in
(104) The pre-amplifier circuits 1032A, 1032B are arranged and configured to receive, filter and amplify the analog bEMF signal E(t) across the sensing coil 1010 and the analog Hall voltage signal V.sub.H(t) across the HES 1020. The ADC 1036 is configured to digitize the analog bEMF signal E(t) and the analog Hall voltage signal V.sub.H(t) received through the MUX 1034, and to provide digitized bEMF signal e (t) and the digitized Hall voltage signal v.sub.H(t) to the processing module 1038.
(105) When the hybrid sensor 1000 is used in HE 900, the processing module 1038 is configured to determine the velocity X/t and displacement X of the magnet-carrying mass 930 relative the frame 905 from the digitized bEMF voltage signal e(t) and the Hall voltage signal v.sub.H(t). Note that in some implementations, the processing module 1038 is part of a digital signal processor (DSP) that is remote from the hybrid sensor 1000. In such cases, the digitized bEMF signal e(t) and the digitized Hall voltage signal v.sub.H(t) are transmitted from the hybrid sensor 1000 to the DSP through communication channels.
(106) For example, the processing module 1038 is configured to determine the speed X/t of the magnet-carrying mass 930 relative the frame 905 of HE 900 based on values of the simultaneously measured bEMF signal e(t) and Hall voltage signal v.sub.H(t) in accordance with
(107)
The sensing matrix G from EQ. (18) is expressed as
(108)
where matrix element K.sub.M and matrix element M are provided in terms of EQ. (17), and matrix element is provided in terms of EQ. (3). Additionally, matrix element
(109)
represents a field sensitivity obtained from the LUT referenced in EQ. (3). This matrix element, also referred to as the LUT element, is expressed in units of Hall counts per micrometer. The factor
(110)
describes a gradient of field intensity B(X) along the x-axis, and encompasses all the nonlinearities of the field intensity. The factor S.sub.H is the Hall sensitivity, expressed in units of mT/count. The LUT element can be obtained in simulation or calibrated by bEMF model fitting. In fact, values of all the elements of sensing matrix G can be are obtained during an initial calibration of the hybrid sensor 1000, e.g., in the factory. For example, the motor constant K.sub.M can be calibrated by measuring the bEMF around RE's resonance frequency for a known mass of HE. The EM coupling factor can be calibrated by measuring Hall voltage of HES 1020 when driving high-frequency currents (e.g. 2 kHz) through the driving coil 910. Similarly, the mutual coupling M can be determined at the same time when driving high-frequency currents (e.g. 2 kHz) through the driving coil 910 and measuring the induced voltage across the sensing coil 1010. The foregoing measured values are the t=0 values of the elements of the sensing matrix G.
(111) Moreover, the displacement X of the magnet-carrying mass 930 relative the frame 905 can be calculated from its velocity X/t determined from EQs. (18)-(19). For instance, the determined velocity X/t can be integrated to obtain the displacement X.
(112) Note that, by solving EQ. 18 based on the concurrently measured signals e(t) and v.sub.H(t), the processing module 1038 determines not only the velocity X/t of the magnet-carrying mass 930 relative the frame 905 of HE 900, but also a rate I/t of the driving current through the driving coil 910 of HE 900. As such, while actuating HE 900, i.e., as the magnet-carrying mass 930 is vibrated relative to the hybrid sensor 1000 that is affixed to the frame 905, in the vicinity of a resonant frequency, I/t exhibits a resonant current-rate value, and X/t exhibits a resonant velocity value; whereas, away from the resonant frequency, I/t exhibits a non-resonant current-rate value larger than the resonant current-rate value, while X/t exhibits a non-resonant velocity value smaller than the resonant velocity value. As the elements of the sensing matrix G are considered to be parameters that have constant values in time, for bEMF measurements performed in accordance with EQ. (17), the first term will carry a larger weight than the second term near a resonant frequency, and the second term will carry a larger weight that the first term away from the resonant frequency.
(113) During operation of HE 900, the driving current I through the driving coil 910 can also be measured, as I.sub.M(t), in addition to the bEMF E(t) signal and the Hall voltage V.sub.H(t) signal. In this manner, EQs. (18)-(19) are used first by the processing module 1038 to determine the rate I/t of the driving current through the driving coil 910 based on the concurrently measured the bEMF E(t) signal and the Hall voltage V.sub.H(t) signal. Moreover, I/t determined from EQs. (18)-(19) can be compared with I.sub.M/t determined by differentiating the measured driving current I.sub.M. If the determined I/t is different from the measured I.sub.M/t by more than a threshold value, it is assumed that one or more of the values of the elements of the sensing matrix G (e.g., most likely, M, or
(114)
have changed. As the values of the elements of the sensing matrix G can, and typically do slowly, vary in time, a filter can be applied to the sensing matrix G to implement a running average of the matrix element values.
(115)
(116) At 310, the magnet-carrying mass 930 is vibrated relative the driving coil 910 in response to driving a current I through the driving coil.
(117) At 320, a bEMF signal E(t) and a Hall voltage signal V.sub.H(t) are concurrently measured using, respectively, the sensing coil 1010 of the hybrid sensor 1000 and the HES 1020 of the hybrid sensor. As shown in
(118) At 330, a velocity X/t of the vibrating magnet-carrying mass 930 and a rate I/t of the driving current through the driving coil 910 are determined by the processing module 1038. This determination is performed using EQs. (18)-(19) based on the concurrently measured bEMF signal E(t) and Hall voltage signal V.sub.H(t).
(119) In some implementations, at 340A, the processing module 1038 can verify whether the rate I/t of the driving current, as determined at 330, exceeds a threshold.
(120) In some implementations, at 335, the driving current I through the driving coil 910 can be measured directly and concurrently with the measuring of the bEMF signal E(t) and Hall voltage signal V.sub.H(t). Here, the measured driving current I.sub.M is differentiated to determine a rate I.sub.M/t of the measured driving current. At 340B, the processing module 1038 can verify whether the rate I/t of the driving current, as determined at 330, is different from the rate I.sub.M/t of the measured driving current, as determined at 335. For instance, I/t is deemed to be different from I.sub.M/t if
(121)
is larger than a threshold.
(122) If the verification performed at either 340A or 340B is false, then the process 300 can be reiterated. However, if the verification performed at either 340A or 340B is true, then, at 350, the processing module 1038 can adjust one or more elements of the sensing matrix G, given by EQ. (19), prior to potentially reiterating the process 300. For instance, adjustment of the EM coupling factor can cause improvement in the sensing of the velocity X/t of the vibrating magnet-carrying mass 930, as illustrated in the simulation results presented in
(123) Referring again to
(124) Moreover, HES 1020's resistance can be used as a temperature sensor for thermal compensation of the sensing coil 1010's resistance value and Hall voltage's value V.sub.H measured over the HES. For instance, in the example shown in
(125) Note that the analog bEMF signal E(t) across the sensing coil 1010 and the analog Hall voltage signal V.sub.H(t) across the HES 1020 are out of phase by 90 (the former signal being proportional to the velocity X/t of mass 930 and the latter being proportional to the displacement X of the mass). In this manner, a finite (non-zero) signal is always output by the analog front-end circuitry 1005 to the data conversion circuitry 1030, and, hence, an rms of a combination of the digitized bEMF signal e(t) and the digitized Hall voltage signal v.sub.H(t) is always non-zero. As such, in some implementations, a pair of hybrid sensors 1000 can be used in HE 900, so the pair of hybrid sensors sandwiches, along the Z-axis, the moving magnet-carrying mass 930. In this manner, a displacement Z along the Z-axis of the magnet-carrying mass 930 can be determined as
(126)
where the rms of the digital outputs of the hybrid sensors disposed respectively above and below the magnet-carrying mass 930 are
V.sub.rms.sub.
V.sub.rms.sub.
Because both terms in the denominator of EQ. (20) are non-zero, in accordance with EQs. (21)-(22), the displacement Z along the Z-axis can be accurately determined.
(127) In other implementations, a plurality of hybrid sensors 1000 can be arranged inside HE 900 to form a 1D-array, e.g., to form a row of hybrid sensors. In yet other implementations, a plurality of hybrid sensors 1000 can be arranged inside HE 900 to form 2D-array, e.g., a rectangular array of hybrid sensors 1000 arranged in rows and columns. This arrangement of the plurality of hybrid sensors 1000 can be referred to as a magnetic camera. In either of these implementations, each of the plurality of hybrid sensors 1000 of the array is operated independently from each other to sense the absolute field intensity B and its rate of change B/t, at its associated node P(i,j) of the array, where i is a row index and j is a column index.
(128) A few embodiments have been described in detail above, and various modifications are possible. The disclosed subject matter, including the functional operations described in this specification, can be implemented in electronic circuitry, computer hardware, firmware, software, or in combinations of them, such as the structural means disclosed in this specification and structural equivalents thereof, including system on chip (SoC) implementations, which can include one or more controllers and embedded code.
(129) While this specification contains many specifics, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
(130) Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments.
(131) Other embodiments fall within the scope of the following claims.