Abstract:
A MEMS type sensor is used for measuring a particular parameter on an IC chip within an electronic device, such as music player, a smart cellular telephone, etc. The parameter may be a scalar parameter, such as a directional orientation indicative a current compass point, or a multidimensional vector parameter, such as a three-dimensional acceleration. The sensor output is recalibrated using stored coefficients when ambient conditions vary. The stored coefficients may be modified during calibration.

Description:
FIELD 
     This application pertains to a method and apparatus for compensating the outputs of MEMS sensors for thermal variations. More specifically, in response to a temperature change, the outputs of MEMS sensors are recalibrated using coefficients related to a temperature or temperature change. 
     BACKGROUND 
     In the present application the term MEMS sensor is used generically to cover a microelectronic and microelectromechanical system having mechanical elements (usually on a single chip) with minute physical dimensions in the micro- as well as nano-meter range. As such, the term is also meant to cover nanosensors and other similar devices. 
     MEMS sensors are made in various configurations for sensing certain physical instantaneous parameters such as acceleration, magnetic field direction and intensity, etc. MEMS sensors have wide range uses including such diverse systems as accelerometers triggering air bags in automotive applications, electronic compasses, GPS navigational subsystems in mobile devices, etc. Typically, these sensors generate measurements that are either scalars or multidimensional vectors. For example, both acceleration and magnetic fields are expressed as three-dimensional vectors, and hence, the respective sensors generate multidimensional outputs. 
     It is well known that MEMS outputs are generally nonlinear responses to inputs and must be calibrated for these non-linear effects using appropriate coefficients. Moreover, the MEMS response is not stable over time but changes frequently in response to environmental variations, and these changes produce environmental artifacts in the MEMS outputs that must be eliminated by recalibrating the outputs. In other words, the outputs of MEMS are not reliable unless they are frequently checked and recalibrated to eliminate environmental artifacts to match or compensate for environmental and ambient changes. 
     The processes necessary to recomputed the calibration coefficients can be fairly complicated, especially for multi-dimensional sensors, requiring complex matrix operations. Therefore each recalibration slows down and even suspends the process of obtaining the requirement measurements from the sensor. Moreover, when the MEMS are incorporated into mobile or portable devices, such recalibrations use up valuable resources within the portable device, including microprocessor time, and power. This last consideration is especially important in battery operated devices. One environmental effect that consistently requires the recalibration of the outputs of MEMS is temperature variation. 
     Accordingly there is a need to provide a simpler, faster and less energy consuming way of recalibrating the outputs of MEMS sensors, especially to compensate for temperature variations. 
     SUMMARY 
     The present application pertains to an apparatus for calibrating measurements obtained from a MEMS type sensor. The apparatus includes a calibration circuit that receives the measurements from a MEMS sensor as an input signal. This measurement may be a scalar quantity. For example, for an electronic compass, the measurement is a magnetic direction. Other MEMS sensors, for example, accelerometers, may generate a measurement that is a multidimensional vector. The calibration circuit then operates on the input signal using one or more calibration coefficients to compensate for various known artifacts to generate an output signal (that, again, could be scalar or multidimensional) suitable for manipulation by a microprocessor. 
     In the present application, a temperature sensor measures a temperature related to the MEMS sensor. If this temperature has remained substantially unchanged, the present calibration parameters remain to be effective. If there is a drastic change in the temperature, or in the rate of change of temperature, then a microprocessor obtains at least one new calibration coefficient corresponding to the new temperature (if available). This new calibration coefficient is then used in the calibration circuit for the current or latest measurement. 
     A memory is used to store a set of calibration coefficients for each of several temperatures. The memory can be prepopulated with the coefficients. If no calibration coefficient(s) is found for a particular temperature, then the microprocessor calculates the new coefficient, performing a known recalibration process, and the new calibration coefficient thus obtained is then not only used for the next calibration but is stored in the memory to be used when necessary. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  shows a block diagram of a prior art subassembly for a MEMS sensor; 
         FIG. 2  shows a block diagram of a subassembly incorporating a MEMS sensor; and 
         FIG. 3  shows a flow chart for the operation of the subassembly of  FIG. 2 . 
     
    
    
     DETAILED DESCRIPTION 
     As previously discussed, various systems may have one or more MEMS sensors.  FIG. 1  shows a conventional system with two MEMS sensors  10 ,  12 . The two sensors  10 ,  12  measure some ambient conditions and produce respective raw sensor signals S 1  and S 2 , respectively, indicative of these conditions. Respective calibration circuits  14 ,  16  transform these signals S 1  and S 2  into transformed sensor signals S 1 *, S 2 * suitable for a microprocessor  18 . For the purposes of this discussion, the term calibration can include various manipulations, including scaling, offsetting, etc. Moreover, if the sensor signals are multidimensional vectors, the calibrations may include more complex manipulations, including angular rotations of the vectors and matrix operations. These operations require respective calibration coefficients K 1 , K 2 . Depending on the sensor, each of the calibration coefficients K 1 , K 2  may have a single or a set of scalar or vector values. The values of calibration coefficients K 1 , K 2  must be recalibrated frequently to compensate for various ambient conditions. In some instances, the recalibration may have to be repeated. The calibration circuits and/or the means to perform the recalibrations can be implemented by software in the microprocessor  18 ; however, the calibration circuits  14 ,  16  are shown as separate elements for the sake of clarity. 
     The recalibrations are time consuming and use up power and computational resources. 
       FIG. 2  shows an example of a system constructed in accordance with this disclosure; its operation is show in  FIG. 3 . The system  100  includes MEMS sensors  110 ,  112 , calibration circuits  114 ,  116  and a microprocessor  118 . The system further includes a memory  120  and a local temperature sensor  122 . In one embodiment, the components shown in  FIG. 2  are disposed on a single chip. 
     As previously discussed, the responses of MEMS sensors  110 ,  112  are unstable over time to variations in environmental conditions, e.g., temperature. Some of these variations may be predictable, others may not. For example, the elements shown in  FIG. 2  may be disposed on an IC that contains many other heat generating components of a device such as a mobile cell phone. Additionally, the microprocessor  118  may be performing operations related to other functions of the cell phone. Predictable events that result in ambient temperature changes include drastic changes in the work load on the IC components, normal seasonal temperature changes, or temperature differentials between day and night. Unpredictable events that result in significant temperature variations include a user carrying a cell phone in and out of buildings, placing the cell phone into or removing the cell phone from his pocket or other closed environment. 
     Memory  120  is used to hold a plurality of calibration coefficients K(T). For example, K 1 ( 0 ) may be the set of coefficients for MEMS  110  at 0° C., K 2 ( 20 ) may be the set of coefficients for MEMS  112  at 20° C., and so on. 
     The system  100  compensates for temperature variations as follows. In step  162  ( FIG. 3 ) the microprocessor  118  checks a temperature, as indicated, for example, by a local temperature sensor  122 . This temperature may be the temperature of the IC of the device incorporating the system  100 , and/or an ambient temperature. The ambient temperature may also be obtained from a remote sensor  124 . This remote sensor  124  may be provided in the vicinity of the outer surface of the device. 
     In step  164  the microprocessor  118  checks the current temperature. 
     If there has been a temperature change that exceeds a predetermined value, if the temperature measured by sensor  122  reaches a certain value or if some other temperature-related criteria are met, indicating that the calibration coefficients must be recalibrated, then an automatic recalibration is implemented as described below. 
     In step  170  the memory  120  is checked to see if there are calibration coefficients K available for the new temperature. These coefficients K may be determined by the manufacturer during the design stage of the subject device or system  100  and stored in the memory. In some cases, that may be too time consuming, especially since the manufacturer may not know the exact temperatures at which the system  100  will be operating. Moreover, some MEMS are so sensitive that two identical MEMS having the same specifications, and resulting from the same batch, may exhibit different response characteristics and therefore the coefficients may vary even for the same device. 
     Thus, if no coefficients are found in memory  120 , then in step  172  a new set of calibration coefficients are calculated, using a known recalibration process. In step  174 , these coefficients are stored in memory  120  and set as the active coefficients for the calibration circuits  114 ,  116 . 
     If in step  170  a set of coefficients are found in memory  120  then they are retrieved and in step  176  set as the active coefficients to the calibration circuits  114 ,  116 . 
     If in step  164  it is determined that the temperature has not changed significantly since the previous temperature measurements, then the microprocessor  118  in step  180  sends control signals C 1 , C 2  to the calibration circuits  114 ,  116 , and obtains the measurements or signals S 1 (T)*, S 2 (T)*from calibration circuits  114 ,  116 . (Alternatively, if the calibration coefficients have just been recalibrated, as described above, then the signals S 1 (T)*, S 2 (T)* are calculated using the new calibration coefficients obtained by the calibration circuits  114 ,  116  in step  176 .) 
     These signals can be used as they are or the system may be programmed to check them first. For this latter scenario, in step  182 , the signals S 1 (T)*, S 2 (T)* are tested to make sure that they are acceptable. This step may include checking whether the signals are within a range, whether they are changing too fast or too slow, etc. If the parameters being monitored by the sensors  10 ,  12  are related to each other, then the signals may be checked against each other. As mentioned above, this step is needed because MEMS are known to be unstable and their operation may be affected by various ambient or other conditions. 
     In step  184 , if the tests indicate that the signals are acceptable, then the microprocessor  118  continues its normal operation. If the signals S 1 (T)*, S 2  (T)* are found unacceptable, then the microprocessor sends control signals C 1 , C 2  requesting the calibration circuits to perform a respective recalibration process. As part of recalibration, for example, in step  186  a new set of calibration coefficients are determined and set as coefficients K 1 , K 2  in step  188 . Then, in step  180  new values for signals S 1 (T)*, S 2 (T)* are obtained using the latest coefficients and the whole process is then repeated. In some instances (for instance, when there is a drastic change in ambient conditions), the recalibration may have to be performed several times before the values of S 1 * and S 2 * are found acceptable. 
     In addition, calibration coefficients may be saved and used for other special occasions as well. For example, sets of calibration coefficients may be Recalibration may be performed under other conditions as well. For example, one of coefficients may be used when a low battery condition is detected. 
     In another embodiment, the decision making process is expanded to take in consideration other factors, that may indicate that performing a recalibration may not be advisable. In such instances, it may be more advantageous to use either the last set of calibration coefficients, or to use a set of coefficients selected specifically for some predetermined conditions. For example, if the demand (or load) on microprocessor  118  is very heavy it may not be desirable to further increase the load on the microprocessor  118  by requiring it to perform a recalculation process. Instead, the last set of calibration coefficients is used. 
     Similarly, if the power level for the battery power the device is low, no recalibration is performed, but, instead either the latest set of calibration coefficients is used, or a special set of calibration coefficients is retrieved from the memory  120  to be used for the sensor calibrations. Other special conditions may be identified for which the calibration coefficients are not recalibrated but instead either the last set or a special set of calibration coefficients is used. These special sets are stored in memory  120  or another suitable storage. 
     Numerous modifications may be made and stay within the scope as defined in the appended claims.