Integrated motion processing unit (MPU) with MEMS inertial sensing and embedded digital electronics

Abstract
A module operable to be mounted onto a surface of a board. The module includes a linear accelerometer to provide a first measurement output corresponding to a measurement of linear acceleration in at least one axis, and a first rotation sensor operable to provide a second measurement output corresponding to a measurement of rotation about at least one axis. The accelerometer and the first rotation sensor are formed on a first substrate. The module further includes an application specific integrated circuit (ASIC) to receive both the first measurement output from the linear accelerometer and the second measurement output from the first rotation sensor. The ASIC includes an analog-to-digital converter and is implemented on a second substrate. The first substrate is vertically bonded to the second substrate.
Description
FIELD OF THE INVENTION

The present invention relates to microelectromechanical systems (MEMS) devices.


BACKGROUND OF THE INVENTION

Microelectromechanical systems (MEMS) technology has been under steady development for some time, and as a result various MEMS devices (e.g., accelerometers for measuring linear acceleration and gyroscopes for measuring angular velocity) have been implemented within several applications. For example, individual accelerometer and gyroscope sensors are currently being used in vehicle air bag controls, gaming consoles, digital cameras, video cameras, and mobile phones.


MEMS devices typically generate one or more analog output signals that correspond to a given measurement and, therefore, an analog-to-digital converter (ADC) is usually required to convert the analog output signals into corresponding digital signals for digital signal processing. Conventional applications that include a MEMS device and an analog-to-digital converter (ADC), typically implement multi-chip board level technology to couple the MEMS device to the analog-to-digital converter (ADC), and/or implement the MEMS device and the analog-to-digital converter (ADC) on separate chips, printed circuit boards (PCBs), or modules. Such usage of board level assembly technology to couple a MEMS device to an analog-to-digital converter (ADC), and implementation of a MEMS device on a separate chip or printed circuit board, however, requires lots of space, more power, and higher cost, which generally limits the number of applications into which MEMS devices can be utilized.


BRIEF SUMMARY OF THE INVENTION

In general, in one aspect, this specification describes a module operable to be mounted onto a surface of a board. The module includes a linear accelerometer to provide a first measurement output corresponding to a measurement of linear acceleration in at least one axis, and a first rotation sensor operable to provide a second measurement output corresponding to a measurement of rotation about at least one axis. The accelerometer and the first rotation sensor are formed on a first substrate. The module further includes an application specific integrated circuit (ASIC) to receive both the first measurement output from the linear accelerometer and the second measurement output from the first rotation sensor. The application specific integrated circuit (ASIC) includes an analog-to-digital converter (ADC) and is implemented on a second substrate. The first substrate is vertically bonded to the second substrate.


Implementations can provide one or more of the following advantages. A surface mountable module is provided that includes a gyroscope (or other device as described below) and an analog-to-digital converter (ADC). In one implementation, the gyroscope (which is implemented on a MEMS substrate) is bonded to a CMOS integrated circuit substrate (including the analog-to-digital converter (ADC)) through wafer bonding. Such an implementation provides valuable savings in terms of area, performance, and cost. Such a module can be implemented in applications such as cellular phones, personal digital assistants (PDAs), digital cameras, or other hand-held devices to provide, e.g., image stabilization. The module provides a system level solution with the ability to integrate additional functions onto a chip. In one implementation, a motion processing unit is disclosed that provides six axes of sensing (e.g., 3 axes acceleration and 3 axes angular velocity). The motion processing unit includes embedded processing and all the related features that can enable motion sensing application in multitude of consumer and non-consumer applications. In addition, the specification discloses a motion processing unit that integrates sensors (that provide for, e.g., 6-axes of sensing) along with associated smart electronics packaged at a wafer level. Such a motion processing unit provides a low cost, small package, and high performance solution for the consumer applications.


The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of a module including a gyroscope and an analog-to-digital converter (ADC) according to one implementation.



FIG. 2 illustrates a method for implementing and utilizing a gyroscope and an analog-to-digital converter (ADC) according to one implementation.



FIG. 3 is a block diagram of a module including a gyroscope, an analog-to-digital converter (ADC), and a microcontroller according to one implementation.



FIG. 4 is a block diagram of a module including a 3-axis accelerometer, an analog-to-digital converter (ADC), and a microcontroller according to one implementation.



FIG. 5 is a block diagram of a module including a gyroscope, an analog-to-digital converter (ADC), and a microcontroller that can be utilized within an image stabilization application.



FIG. 6 illustrates two footprints of the module of FIG. 5 in accordance with two different implementations.



FIG. 7 illustrates a motion processing unit (MPU) according to one implementation.



FIG. 8 illustrates a MEMS sensor wafer and an electronics wafer according to one implementation.



FIG. 9 illustrates a motion processing unit (MPU) according to one implementation.



FIG. 10 illustrates a motion processing unit (MPU) according to one implementation.



FIG. 11 illustrates a motion processing unit (MPU) according to one implementation.



FIG. 12 shows an example die area of the module 1102 in the motion processing unit (MPU) of FIG. 11.



FIGS. 13A-13E illustrate various implementations of a motion processing unit (MPU).





Like reference symbols in the various drawings indicate like elements.


DETAILED DESCRIPTION OF THE INVENTION

The present invention relates generally to microelectromechanical systems (MEMS) devices. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. The present invention is not intended to be limited to the implementations shown but is to be accorded the widest scope consistent with the principles and features described herein.



FIG. 1 illustrates a module 100 including MEMS sensing device (e.g., a gyroscope 102) and an analog-to-digital converter (ADC) 104 in accordance with one implementation. In one implementation, the module 100 is a single chip (or package) that can be mounted onto a surface of a printed circuit board (PCB). In one implementation, the analog-to-digital converter (ADC) 104 is a component of an application specific integrated circuit (ASIC) 108. As shown in FIG. 1, the gyroscope 102 provides two analog output signals corresponding to a measured angular velocity in the X-axis and the Y-axis. More generally, the gyroscope 102 is at least a two-axis microelectromechanical systems (MEMs) gyroscope. In one implementation, the gyroscope 102 is a gyroscope as described in commonly owned U.S. Pat. No. 6,892,575—entitled “X-Y Axis Dual-Mass Tuning Fork Gyroscope With Vertically Integrated Electronics and Wafer-Scale Hermetic Packaging”, which is incorporated herein by reference. Accordingly, in one implementation, the gyroscope 102 is implemented on a MEMS substrate, which MEMS substrate is bonded to a CMOS integrated circuit substrate (including the ASIC 108 and analog-to-digital converter (ADC) 104) through wafer bonding. In one implementation, the MEMS substrate is bonded to the CMOS integrated circuit substrate through wafer bonding techniques that use vertical fabrication processes as described in commonly owned U.S. Pat. No. 7,104,129—“Vertically Integrated MEMS Structure with Electronics in a Hermetically Sealed Cavity”, which is incorporated herein by reference. Although the module 100 is shown as including a gyroscope, the module 100 can instead include a multiple-axis (linear) accelerometer (e.g., a 3-axis accelerometer) as described in commonly owned U.S. patent application Ser. No. 11/285,493, entitled—“Multiple Axis Accelerometer”, which is incorporated herein by reference. More generally, the module can further include other types of MEMS sensing devices—e.g., a second rotation sensor, such as a rate sensor (or gyroscope) and/or a rotational acceleration sensor.


In operation, the analog-to-digital converter (ADC) 104 converts the analog output signals of the gyroscope 102 into corresponding digital signals that can be output from the analog-to-digital converter (ADC) 104 through output 106. In one implementation, the module 100 includes a multiplexer (not shown) for selectively providing one of the analog output signals of the gyroscope 102 to the analog-to-digital converter (ADC) 104. The multiplexer can be a component of the application specific circuit (ASIC) 108.



FIG. 2 illustrates a method 200 for implementing and utilizing a gyroscope and an analog-to-digital converter (ADC) according to one implementation. A gyroscope (e.g., gyroscope 102) and an analog-to-digital converter (ADC) (e.g., analog-to-digital converter (ADC) 104) are implemented onto a surface mountable chip (e.g., module 100) (step 202). In one implementation, the gyroscope is fabricated onto the chip including the analog-to-digital converter (ADC) using vertical fabrication processes. At least two analog output signals are generated by the gyroscope, in which the two analog output signals correspond to angular velocity measurement of at least two different axes (step 204). In operation, the analog-to-digital converter (ADC) converts the analog output signals of the gyroscope into corresponding digital signals (step 206).



FIG. 3 is a block diagram of a module 300 in accordance with one implementation. The module 300 includes a gyroscope 302, an analog-to-digital converter (ADC) 304, a microcontroller 306, and an interface 308. In one implementation, the module 300 is a single chip that can be mounted onto a surface of a printed circuit board (PCB). In one implementation, the gyroscope 302 is bonded to the chip using vertical fabrication processes. Accordingly, in this implementation, the gyroscope 302, the analog-to-digital converter (ADC) 304, the microcontroller 306, and the interface 308 can be implemented onto a same substrate—e.g., a CMOS substrate. In one implementation, the module 300 further includes a multiplexer (not shown) for selectively providing one of the analog output signals of the gyroscope 302 to the analog-to-digital converter (ADC) 304. In one implementation, the analog-to-digital converter (ADC) 304, the microcontroller 306, the interface 308, and the multiplexer are components of an application specific circuit (ASIC).


In one implementation, the gyroscope 302 generates two analog output signals respectively corresponding to a measured angular velocity in the X-axis and the Y-axis. The analog output signals are converted into corresponding digital signals by the analog-to-digital converter (ADC) 304. The microcontroller 306 processes the digital signals. The interface 308 provides an interface to the microcontroller 306. The interface 308 can be a serial peripheral interface (SPI), an inter integrated circuit (I2C) interface, or other suitable interface. In the implementation shown in FIG. 3, the interface 308 is an SPI interface having two control lines (SCLK and CS), and two data lines (DIN and DOUT). In general, the module 300 can include other types of MEMS sensors other than a gyroscope. For example, FIG. 4 illustrates a module 400 including a 3-axis accelerometer that sends an analog output to an analog-to-digital converter (ADC) 404. The analog-to-digital converter (ADC) 404 converts the analog output signal into a corresponding digital signal for processing by a microcontroller 406. Similar to the module 300, the module 400 further includes an interface 408 (e.g., a serial peripheral interface (SPI)) that is coupled to the microcontroller 406.



FIG. 5 illustrates a block diagram of a module 500 in accordance with one implementation. In one implementation, the module 500 includes a gyroscope 502, a multiplexer (MUX) 504, a (e.g., 16 bit) analog-to-digital converter (ADC) 506, a microcontroller 508, an interface 510, and pulse width modulator drivers 512, 514. In one implementation, the module 500 is a single chip that can be mounted onto a surface of a printed circuit board (PCB). In one implementation, the gyroscope 502 is bonded to the chip using vertical fabrication processes. Accordingly, in this implementation, the gyroscope 502, the multiplexer (MUX) 504, the analog-to-digital converter (ADC) 506, the microcontroller 508, the interface 510, and the pulse width modulator drivers 512, 514 are fabricated onto a same substrate. In another implementation, the gyroscope 502 is implemented on a chip that is separate from the module 500. In this implementation, the gyroscope 502 and the module 500 can be fabricated onto a board that can be mounted onto a surface of a printed circuit board (PCB). The module 500 provides a system level solution for the integration of multiple functions onto a chip, including controller functions. The module 500 provides an efficient partitioning between analog functions and digital functions. In one implementation, the module 500 further includes a memory (not shown) that is in communication with the microcontroller 508. The memory can store program instructions and/or data related to functions (e.g., image stabilization calculations, as discussed below) that can be performed by the microcontroller 508.


In one implementation, the module 500 is implemented within an image stabilization application. For example, the module 500 can be implemented within, e.g., binoculars, telephoto lenses, or digital cameras, to achieve optical image stabilization for these devices. In such an implementation, the gyroscope 502 detects movement of, e.g., a lens, and generates corresponding analog output signals corresponding to the movement of the lens. The MUX 504 is operable to selectively provide an (analog) measurement output signal from the gyroscope 502 (or one or more (analog) measurement outputs from one or more corresponding second measurement devices (not shown)) to the analog-to-digital converter 506. The microcontroller 508 performs one or more optical image stabilization calculations based on a digital signal received from the analog-to-digital converter (ADC) 506, and generates control signals that are sent to pulse width modulator drivers 512, 514 for driving one or more actuators (not shown) to counteract the movement of the lens and maintain a stable picture. Types of measurement devices that can be coupled to the MUX 404 (in addition to the gyroscope 502) include a second (MEMs) gyroscope, an accelerometer, a position sensor, a pressure sensor, a temperature sensor, or other sensor or device.



FIG. 6 illustrates a footprint 600 of a gyroscope and a microcontroller implemented on separate chips and a footprint 602 of a gyroscope and a microcontroller implemented on the same chip. As shown in FIG. 6, the footprint 600 (of a gyroscope and a microcontroller implemented on separate chips) has a size of substantially 6 mm×8 mm, and the footprint 602 (of a gyroscope and a microcontroller implemented on the same chip) has a size of substantially 5 mm×5 mm. Such small footprints enables the system level solution (e.g., integration of gyroscope and controller) provided by the modules discussed above to be implemented in applications (such as in hand held device applications) in which size and power consumption of components are a critical factor.



FIG. 7 illustrates one implementation of components 700 that can be implemented on a module to form, e.g., a motion processing unit (MPU™), available from Invensense, Inc. of Santa Clara, Calif. In one implementation, a motion processing unit (MPU) is a device that can measure at least two axes of rotation and at least one axis of acceleration, in which components of the device are integrated in a single package, e.g., through wafer-scale integration. Wafer-scale integration includes building very-large integrated circuit networks that use an entire silicon wafer to produce a single “super-chip”—and in the context of this specification, (in one implementation) a single chip is provided that includes a motion processing unit (MPU) operable to measure both rotation and acceleration. In one implementation, the chip occupies a smaller area of silicon relative to conventional devices that may provide similar measurements.


Referring to FIG. 7, in one implementation, the components 700 include a 3-axis accelerometer 702, a 3-axis gyroscope 704, and electronics 706 (e.g., CMOS electronics). The 3-axis accelerometer 702 and the 3-axis gyroscope 704 provide six axes of sensing (e.g., 3 axes acceleration and 3 axes angular velocity). In one implementation, the components 700 are respectively integrated onto a MEMS sensor wafer 800 and an electronics wafer 802, as shown in FIG. 8. More specifically, in one implementation, the 3-axis accelerometer 702 and the 3-axis gyroscope 704 are integrated onto the MEMS sensor wafer 800, and the electronics 706 is integrated onto the electronics wafer 802. In one implementation, the MEMS sensor wafer 800 is bonded to the electronics wafer 802. Any suitable bonding techniques can be used to bond the MEMS sensor wafer 800 to the electronics wafer 802, such as the bonding techniques described in commonly owned pending U.S. patent application Ser. No. 11/084,296, entitled “Method of Fabrication of AL/GE Bonding in a Wafer Packaging Environment and a Product Produced Therefrom”, which is incorporated by reference herein. In one implementation, components integrated onto the MEMS sensor wafer 800 are electrically connected to components (e.g., CMOS electronics) associated with the electronics wafer 802 through electrical interconnects 806.


In one implementation, a cover wafer 804 (or cap wafer) is used to seal the MEMS sensor wafer 800 within a hermetic enclosure (in between the cover wafer 804 and the electronics wafer 802. In one implementation, (e.g., in order to meet some performance specifications of different markets for the motion processing unit), a reduced pressure (e.g., about 1 mTorr, which is substantially less than atmospheric pressure) can be provided within the hermetic enclosure.



FIG. 9 illustrates a motion processing unit 900 in accordance with one implementation. In the implementation of FIG. 9, the motion processing unit 900 comprises a package formed by a MEMS sensor wafer 902 bonded to an electronics wafer 904. In one implementation, the MEMS sensor wafer 902 includes an X-axis gyroscope 906, a Y-axis gyroscope 908, a Z-axis gyroscope 910, and an XYZ-axis accelerometer 912, and the electronics wafer 904 includes CMOS electronics 914 and bond pads 916. In general, the motion processing unit 900 can include other types of sensors, e.g., a temperature sensor (as discussed in greater detail below), or other type of sensor. The bond pads 916 can be used for integrating the package (comprising the motion processing unit 900) onto a printed circuit board (not shown) or other device. In one implementation, the MEMS sensor wafer 902 is bonded to the electronics wafer 904 with a hermetic seal ring 918.



FIG. 10 illustrates a block diagram of a motion processing unit 1000 in accordance with one implementation. The motion processing unit 1000 includes an XYZ gyroscope 1002, a 3-axis accelerometer 1004, a temperature sensor 1006, a microcontroller 1008, a memory 1010 (e.g., a random access memory (RAM)), and a power management circuit 1012. The components of the motion processing unit 1000 can be coupled together through a data bus 1014 and a control bus 1016. In one implementation, the power management circuit 1012 includes a voltage regulator and charge pump to power the microcontroller 1008. In one implementation, the power management circuit 1012 is capable of turning off any of the six sensors individually, or running each of the sensors at low power if higher noise is tolerable. The power management circuit 1012 may also respond to the sensors themselves, turning off the sensors (and the microcontroller 1008), for example, if no movement is detected for a pre-determined period. The motion processing unit 1000 further includes one or more analog-to-digital converters (ADCs) (not shown) for converting analog outputs of the XYZ gyroscope 1002, the 3-axis accelerometer 1004, and the temperature sensor 1006 into corresponding digital signals, which digital signals are then processed by the microcontroller 1008. In one implementation, the analog-to-digital converters provide 10 bits of resolution (or higher) ADC to permit a serialized data interface with an application processor.


As shown in FIG. 10, (in one implementation) the temperature sensor 1006 is coupled to one or more analog input/output (I/O) lines and the microcontroller 1008 is coupled to one or more digital I/O lines. In one implementation, the microcontroller 1008 can perform computations on the digital signals received from one or more of the XYZ gyroscope 1002, the 3-axis accelerometer 1004, or the temperature sensor 1006 as required by application requirements. In addition to containing the MEMS and temperature sensors, the motion processing unit 1000 may contain a programmable digital sampling system that combines an ADC and flexible filtering for meeting the various bandwidth, resolution, and power requirements for different applications. Further, the motion processing unit 1000 can include one or more user programmable registers (not shown) through which a user can set operating conditions including, for example, measuring limits, for each of the sensors and/or the microcontroller within the motion processing unit 1000.



FIG. 11 illustrates a block diagram of a motion processing unit 1100 in accordance with one implementation. The motion processing unit 1100 includes two modules—modules 1102, 1104—that each can be separably coupled to the motion processing unit 1100. In an implementation, in which both modules 1102, 1104 are coupled to the motion processing unit 1100, the motion processing unit 1100 can provide up to 6 axes of sensing. In particular, (in one implementation) the module 1102 provides a 4-axis measurement capability enabled by one Z-gyroscope 1106 and a 3-axis (XYZ) accelerometer 1108, and the module 1104 provides a 2-axis measurement capability through an X-gyroscope 1110 and a Y-gyroscope 1112. The Z-gyroscope 1106 detects the rotation about the Z-axis, and the 3-axis accelerometer 1108 detects linear acceleration along the X, Y and Z axes.


In one implementation, proof masses associated with the Z-gyroscope 1106 are electrostatically oscillated at resonance. An internal automatic gain control circuit (not shown) can precisely control the oscillation of the proof masses. When the Z-gyroscope 1106 is rotated about the Z-axis, the Coriolis causes a vibration that is detected by a capacitive pickoff. The resulting signal is amplified, demodulated, and filtered to produce an analog voltage that is proportional to the angular velocity. In one implementation, the 3-axis accelerometer 1108 consists of three independent linear accelerometers with separate proof masses. This minimizes any cross-axis coupling and reduces fabrication dependencies. A built in internal oscillator (not shown) can be used to capacitively read out any acceleration motion. In operation, acceleration induces displacement on a given proof mass. In one implementation, electrostatic sensors detect displacement of each proof mass differentially. This reduces the susceptibility to the fabrication variations as well as thermal drift.


In one implementation, the modules 1102, 1104 are implemented (e.g., vertically bonded) onto a same CMOS substrate—e.g., the MEMS wafers and CMOS electronic wafers can be bonded together using wafer-scale bonding processes as described in commonly owned U.S. Pat. No. 7,104,129 (incorporated by reference above) that simultaneously provides electrical connections and hermetically seals the MEMS devices. This unique and novel fabrication technique is the key enabling technology that allows for the design and manufacture of high performance, multi-axis, inertial sensors in a very small and economical package. Integration at the wafer-level minimizes parasitic capacitances, allowing for improved signal-to-noise relative to a discrete solution. Such integration at the wafer-level also enables the incorporation of a rich feature set which minimizes the need for external amplification.


As shown in FIG. 11, in one implementation, the motion processing unit 1100 interfaces with a microprocessor (or application processor 1114) through an SPI or I2C bus 1116. The motion processing unit 1100 can also be coupled to a memory (e.g., application memory 1118) through the SPI or I2C bus 1116. The I2C or SPI bus 1116 can be used to access internal registers (e.g., internal registers 1120) and sensor outputs. In one implementation, the module 1102 controls all the communication between sensor components. In one implementation, the module 1102 includes an internal memory (not shown) for registers to control the functions and to store trim values for the sensors. If additional memory is desired, it is possible to add an I2C compatible memory to a system bus 1122 within the module 1102.


In one implementation, the module 1102 has 7 analog inputs (that are received by a multiplexer (MUX) 1124) for interfacing auxiliary sensors. As shown in FIG. 11, three of the 7 analog inputs are used for interfacing with the module 1104 and the remaining analog inputs are used to interface with other sensors—e.g., a geomagnetic sensor 1126 (or compass) and a barometer 1128 (e.g., for altitude readings) through a signal conditioning circuit 1130. In one implementation, the voltage range for the analog inputs is +/−0.5V centered on 0.7V. The signal conditioning circuit 1130 adjusts the output voltage range of the geomagnetic sensor 1126 to voltage levels that can be handled by the multiplexer 1124.


In one implementation, each sensor (e.g., Z-gyroscope 1106 and XYZ accelerometer 1108) has a dedicated sigma-delta analog-to-digital converter (ADC) with 14-bit accuracy. In addition, there is also an additional analog-to-digital converter (ADC) coupled to the multiplexer 1124 for converting the auxiliary analog inputs and also an analog output from a temperature sensor 1132. In one implementation, the temperature sensor 1132 measures the temperature of the module 1102. The module 1104 can also include a temperature sensor (e.g., temperature sensor 1134) that measures a temperature of the module 1104. The temperature readings can be made available to a user through a SPI/I2C interface 1136. In one implementation, the range of voltage levels for the auxiliary inputs is 0.7+/−0.5V (or 0.2V to 1.2V). The ADC (coupled to the multiplexer 1124) can sample the selected analog input or the output of the temperature sensor 1132 depending on the configuration of the multiplexer 1124. The result can be stored in an appropriate register that is accessible via the SPI/I2C interface 1136. In one implementation, an internal clock is used to trigger ADC conversion. The clock rate or the output data rate can be selectable by a configuration register.


The module 1102 can further include a power management circuit 1138 that can control power to each of the sensors, and a calibration circuit 1140 for calibrating each of the sensors. In one implementation, the module 1102 also includes interrupt logic 1142 for generating interrupts. For example, an interrupt can be generated when a “zero-g” is detected on all axes of the XYZ accelerometer 1108. An interrupt can also be generated if a user programmable event occurs. User programmable events may include or combine specific acceleration values from the XYZ accelerometer 1108 or specific rate values from the Z-gyroscope 1106. The source of the interrupt can be determined via the SPI/I2C interface 1136.



FIG. 12 illustrates a die layout 1200 of the motion processing unit 1102 of FIG. 11 according to one implementation. In one implementation, the die layout 1200 has a size of approximately 1.4 mm by 2.7 mm. Specifically, the die layout 1200 show a layout of a Z-gyroscope 1202, and an XYZ accelerometer including an X-accelerometer 1204, a Y-accelerometer 1206, and a Z-accelerometer 1208.



FIGS. 13A-13E illustrate different implementation of a motion processing unit. Other implementations and configurations other than those shown in FIGS. 13A-13E can also be implemented based on application requirements. In particular, FIG. 13A illustrates one implementation of module 1102 including a microprocessor. FIG. 13B illustrates one implementation of module 1102 including a microprocessor and application RAM. FIG. 13C illustrates one implementation of module 1102 including all the sensors of module 1104 (FIG. 11). In the implementation of FIG. 13C, all the sensors are formed onto a same substrate. FIG. 13D illustrates one implementation of module 1102 further including auxiliary sensors—e.g., a geomagnetic sensor, a barometer, and a temperature sensor. FIG. 13D illustrates one implementation of module 1102 including a wireless communication port operable to send and receive wireless communication.


Various applications for a motion processing unit and other implementations of modules described above, will now be described.


Optical Image Stabilization


In one implementation, a dual-axis or tri-axis gyroscope may be combined with a computation unit (e.g., a microcontroller), and an ADC to form an optical image stabilization system. The computation unit can output a position compensation value determined by high-pass filtering, integrating, and scaling an output from the gyroscope. The position compensation value can be used to determine the position of, e.g., a lens or image sensor of a camera system, and permit hand jitter to be compensated for during still image or video capture. In one implementation, the computation unit can be loaded with a scale factor corresponding to the number of pixels per degree. The scale factor can change depending on the zoom of the camera system. In addition, the optical image stabilization system can further include a driver for driving an actuator that compensates for the hand jitter that occurs during image capture. In one implementation, the optical image stabilization system receives inputs from position sensors that determine the current location of the actuator. The position sensors can comprise Hall effect sensors or infrared sensors. In this case, the computation unit would also provide a control system for controlling the position of the actuator in real-time, using feedback from the position sensors. The inputs for the position sensors may include amplifiers, differential amplifiers, analog offset compensation for the amplifiers, and an ADC.


Electronic Image Stabilization


In one implementation, a computation unit can be designed for calculating information applicable for electronic image stabilization of video. In such an implementation, the computation unit can be loaded with a scale factor corresponding to the number of pixels per degree. The scale factor can change depending on the zoom of the camera system.


In one implementation, the computation unit can be used for calculating information applicable to still image stabilization—e.g., using a synchronization pin tied to a mechanical shutter or a frame valid line, the computation unit can determine the start and end times of exposure times. During exposure times, the computation unit would integrate the gyroscope data, generating a point spread function that determines the blur characteristics of the image.


Temperature Compensation


In one implementation, the computation unit may be used to provide temperature compensation for the motion sensors. This can be done by reading the temperature of a temperature sensor associated with the motion sensors, and adjusting bias or scale factors accordingly using, e.g., factory calibrated relationships. These relationships may be linear, or polynomial, and can be derived from look-up tables. In one implementation, when factory calibration is too costly, or when the temperature relationships are known to change over time, the computation unit may adjust the relationships between temperature and motion sensor parameters by updating the relationships when the motion sensor is known to be motionless. This may be especially effective when the motion sensor is in a device containing a battery that is being charged, as the sensor will be exposed to a series of different temperatures, allowing the temperature relationships to be updated.


Motion Sensing


In one implementation, the sensors maybe coupled with built-in logic (e.g., a computation unit) that determines when a given sensor is not moving. This can be done by measuring the magnitude of the signal over a period of a few seconds. If the sensor is not moving, the magnitude of the signal will correspond to the measurement noise of the sensor. In the case of gyroscopes, the bias of a gyroscope may be set to zero at this point. In one implementation, if motion is detected, the computation unit (including the entire module) may be powered down in the case that the module is battery powered. In addition, the threshold may be inverted and used to determine when the sensor has been picked up. For a module with both gyroscopes and accelerometers, it may be desirable to power down the gyroscopes when the sensors determine that no motion is present. In such an implementation, the accelerometers can remain powered on, and used to determine when motion is again present, at which point the gyroscopes may be turned on again. In one implementation, a programmable dead-zone may be used to lessen the effects of drift when the module (or device including the module) is not moving very much. In general, the built-in logic is configured to analyze data from sensors and perform pre-determined calculations—e.g., determine an orientation of the module.


In one implementation, the computation unit may integrate the gyroscope data to provide a calculation of angular position. The integration can include a reset function and a bias correction as an input. In one implementation, a sensitivity adjust function may be used, in which the computation unit operates on the sensitivity of the gyroscope with a pre-determined function using a linear or polynomial transform, or a look-up table. This allows the device to treat slow movement and fast movement differently. In one implementation, peak detection may be used to determine the time and magnitude of spikes in the sensor signals. This may be used to form a pedometer, by measuring time between spikes. It may also be used to provide input triggers, by separating spikes on different sensor axes and mapping them to various triggers. In one implementation, when gyroscopes are combined with accelerometers, a computation unit may be used to determine when the device has been dropped. For example, in one application, a hard drive head may be disengaged to prevent damage to the data on the hard drive upon detection that a laptop computer or hard drive has been dropped. The accelerometers may be analyzed to determine when freefall has occurred. Since freefall may be difficult to determine when a significant centripetal acceleration is present, the gyroscope data may be used to compensate for such centripetal acceleration.


In one implementation, the computation unit may include a gesture recognition engine in which look-up tables are filled with information relevant to particular gestures, and the motion sensor signals are analyzed to determine when and which gestures have occurred. In one implementation, in which gyroscopes and accelerometers are used, the gyroscope and accelerometer data may be fused to provide a better orientation sensor. The accelerometer data may be used as a tilt sensor by measuring the acceleration due to gravity. Such acceleration data may be used to update the gyroscope biases, to reduce the gyroscope drift. In one implementation, the gyroscope and accelerometer data may be fused to provide a 3 degree-of-freedom orientation sensor using, e.g., a Kalman filter or a complementary filter. The computation unit would output orientation and angular velocity using, e.g., Euler angles, rotation matrices, or quaternions. In one implementation, the combination of the gyroscope and accelerometer data may be used to provide a more accurate estimate of the direction of gravity. This data may be subtracted from the accelerometer data to provide linear and centripetal accelerations, which may be integrated to provide position. In one implementation, the computation unit may take magnetic field as an input. The magnetic field sensor data may be fused with the other motion sensor data to provide an advanced compass system or other direction-based system.


In one implementation the device can be used in conjunction with a GPS module for aiding in navigation. In mobile devices with location based services, GPS is used for tracking location, but is unreliable in urban settings. Gyroscopes can be used to track heading, and accelerometers can be used to determine the direction of gravity, and the linear acceleration of the navigation device. For pedestrian navigation systems, accelerometer data can be used to estimate steps and step length.


In one implementation, an external magnetic compass can be sampled in conjunction with the internal inertial sensors. In this case, accelerometers and gyroscopes can be used to measure pitch and roll for more accurate compassing. For high accuracy in timing measurements, an external pin may sample a clock signal put out by a GPS signal, allowing for accurate synchronization in complex systems that do not have tightly controlled timing.


Various implementations of a module including a gyroscope and an analog-to-digital converter (ADC) have been described. Nevertheless, various modifications may be made to the implementations. For example, the modules discussed above can be utilized within applications other than image stabilization applications (e.g., within binoculars, telephoto lenses, digital cameras, and the like). The analog-to-digital converters discussed above can provide a bit resolution other than 16 bits of resolution. In addition, with respect to the motion processing unit 900 of FIG. 9, the x-axis gyroscope 906 and the y-axis gyroscope 908 can be combined into one cell by incorporating dual axis measurement gyroscope, and replacing the freed block with another type of sensor element, such as, pressure sensor, or magnetic sensor, or yet a resonator and or microphone. Global positioning system (GPS) receivers, antenna, and amplifier can be integrated into a package to create a fully integrated AGPS (Assisted GPS) with dead-reckoning. Accordingly, many modifications may be made without departing from the scope of the present invention.

Claims
  • 1. An inertial measurement unit (IMU) operable to be mounted onto a surface of a board, the IMU comprising: three linear accelerometers, each one of the three accelerometers operable to provide a first measurement output corresponding to a measurement of linear acceleration in one axis, wherein a sensitive axis of each accelerometer is orthogonal to the sensitive axes of the other accelerometers, wherein the three accelerometers being formed on a first silicon substrate;three rotation sensors, each one of the three rotation sensors is a vibratory gyroscope with electrostatic actuation and electrostatic sensing operable to provide a second measurement output corresponding to a measurement of rotation about one axis, wherein a sensitive axis of each vibratory gyroscope is orthogonal to the sensitive axis of the other vibratory gyroscopes, wherein the three of vibratory gyroscopes-being formed on the first silicon substrate; andan application specific integrated circuit (ASIC) to receive both the first measurement outputs from the three linear accelerometers and the second measurement outputs from the three vibratory gyroscopes, wherein the ASIC includes a computation unit and a memory coupled to the computation unit, wherein the computation unit receives and processes data from the three accelerometers and the three vibratory gyroscopes to track motion in space, the ASIC being implemented on a second silicon substrate,wherein the first silicon substrate is vertically stacked and attached to the second silicon substrate and is substantially parallel to the second silicon substrate, the first silicon substrate being electrically connected to the second silicon substrate to form a single semiconductor chip.
  • 2. The IMU of claim 1, wherein the IMU includes built-in logic for analyzing data from the three accelerometers and the three vibratory gyroscopes.
  • 3. The IMU of claim 2, wherein the built-in logic is configured to determine an orientation of the IMU.
  • 4. The IMU of claim 2, wherein the built-in logic is configured to detect rotational motion or linear motion, and determine an axis of the rotational motion or the linear motion.
  • 5. The IMU of claim 2, wherein the built-in logic includes a system of programmable interrupts, the system of interrupts permitting a user to determine which types of motion should provide interrupts.
  • 6. The IMU of claim 5, wherein the built-in logic is modifiable by the user to detect linear motion or rotational motion responsive to the linear motion or the rotational motion exceeding a pre-determined threshold for a pre-determined time period, wherein both the pre-determined threshold and the pre-determined time period is programmable by the user.
  • 7. The IMU of claim 2, wherein the built-in logic is further configured to detect when motion of the IMU is below a pre-determined threshold, and reset biases of the three vibratory gyroscopes responsive to the motion of the IMU being below the pre-determined threshold.
  • 8. The IMU of claim 1, further comprising a third silicon substrate that is vertically bonded to the first silicon substrate to seal the first silicon substrate within a hermetic enclosure in between the third silicon substrate and the second silicon substrate.
  • 9. The IMU of claim 8, further comprising bond pads for bonding the IMU onto a printed circuit board.
  • 10. The IMU of claim 1, wherein the ASIC comprises an analog to digital converter (ADC).
  • 11. The IMU of claim 10, wherein the analog-to-digital converter is operable to convert both the first measurement output and the second measurement output from an analog signal to a corresponding digital signal.
  • 12. The IMU of claim 11, wherein the application specific integrated circuit (ASIC) further comprises a microcontroller operable to receive the digital signal from the analog-to-digital converter and process the digital signal.
  • 13. The IMU of claim 12, wherein the microcontroller is operable to process the digital signal including performing an optical image stabilization calculation based on the digital signal or the computation unit.
  • 14. The IMU of claim 1, wherein the application specific integrated circuit (ASIC) further comprises a pulse width modulator (PWM) in communication with a microcontroller, the pulse width modulator operable to drive an actuator.
  • 15. The IMU of claim 14, wherein the application specific integrated circuit (ASIC) further comprises a communication interface in communication with the microcontroller.
  • 16. The IMU of claim 15, wherein the communication interface comprises a serial peripheral interface (SPI) or an integrated circuit (I2C) interface.
  • 17. The IMU of claim 16, wherein a footprint of the module is substantially 6×8 mm or less.
  • 18. The IMU of claim 1, further comprising a pin that is useable to synchronize motion data to an external signal, the external signal being one of a mechanical shutter signal, a frame valid signal, a GPS clock signal, or external timing input signal.
  • 19. The IMU of claim 1, wherein the application specific integrated circuit (ASIC) further comprises a multiplexer operable to selectively provide at least one of the first measurement outputs from the three accelerometers or one or more measurement outputs from one or more corresponding measurement devices coupled to the analog-to-digital converter.
  • 20. The IMU of claim 19, wherein the one or more measurement devices includes one or more of a rotation sensor, an accelerometer, a position sensor, a barometer, a geomagnetic sensor, or a temperature sensor.
  • 21. The IMU of claim 1, wherein the first and second silicon substrates comprise silicon wafers.
  • 22. The IMU of claim 1 wherein the first substrate is mechanically and hermetically bonded to the second substrate.
US Referenced Citations (204)
Number Name Date Kind
4510802 Peters Apr 1985 A
4601206 Watson Jul 1986 A
4736629 Cole Apr 1988 A
4783742 Peters Nov 1988 A
4841773 Stewart Jun 1989 A
5251484 Mastache Oct 1993 A
5349858 Yagi et al. Sep 1994 A
5359893 Dunn Nov 1994 A
5367631 Levy Nov 1994 A
5415040 Nottmeyer May 1995 A
5433110 Gertz et al. Jul 1995 A
5440326 Quinn Aug 1995 A
5444639 White Aug 1995 A
5511419 Dunn Apr 1996 A
5541860 Takei et al. Jul 1996 A
5574221 Park et al. Nov 1996 A
5629988 Burt et al. May 1997 A
5635638 Geen Jun 1997 A
5635639 Greiff et al. Jun 1997 A
5698784 Hotelling Dec 1997 A
5703293 Zabler et al. Dec 1997 A
5703623 Hall et al. Dec 1997 A
5734373 Rosenberg et al. Mar 1998 A
5780740 Lee et al. Jul 1998 A
5825350 Case, Jr. Oct 1998 A
5895850 Buestgens Apr 1999 A
5898421 Quinn Apr 1999 A
5955668 Hsu et al. Sep 1999 A
5992233 Clark Nov 1999 A
5996409 Funk et al. Dec 1999 A
6067858 Clark et al. May 2000 A
6122961 Geen et al. Sep 2000 A
6134961 Touge et al. Oct 2000 A
6158280 Nonomura Dec 2000 A
6168965 Malinovich et al. Jan 2001 B1
6189381 Huang et al. Feb 2001 B1
6230564 Matsunaga et al. May 2001 B1
6250156 Seshia et al. Jun 2001 B1
6250157 Touge Jun 2001 B1
6269254 Mathis Jul 2001 B1
6279043 Hayward et al. Aug 2001 B1
6292170 Chang et al. Sep 2001 B1
6343349 Braun et al. Jan 2002 B1
6370937 Hsu Apr 2002 B2
6374255 Peurach et al. Apr 2002 B1
6386033 Negoro May 2002 B1
6391673 Ha et al. May 2002 B1
6393914 Zarabadi et al. May 2002 B1
6424356 Chang et al. Jul 2002 B2
6429895 Onuki Aug 2002 B1
6430998 Kawai et al. Aug 2002 B2
6480320 Nasiri Nov 2002 B2
6481283 Cardarelli Nov 2002 B1
6481284 Geen et al. Nov 2002 B2
6481285 Shkel et al. Nov 2002 B1
6487369 Sato Nov 2002 B1
6487908 Geen et al. Dec 2002 B2
6494096 Sakai et al. Dec 2002 B2
6508122 McCall et al. Jan 2003 B1
6508125 Otani Jan 2003 B2
6513380 Reeds, III et al. Feb 2003 B2
6520017 Schoefthaler et al. Feb 2003 B1
6533947 Nasiri et al. Mar 2003 B2
6573883 Bartlett Jun 2003 B1
6636521 Guillianelli Oct 2003 B1
6646289 Badehi Nov 2003 B1
6668614 Itakura Dec 2003 B2
6720994 Grottodden et al. Apr 2004 B1
6725719 Cardarelli Apr 2004 B2
6758093 Tang et al. Jul 2004 B2
6794272 Turner et al. Sep 2004 B2
6796178 Jeong et al. Sep 2004 B2
6823733 Ichinose Nov 2004 B2
6834249 Orchard Dec 2004 B2
6845669 Acar et al. Jan 2005 B2
6848304 Geen Feb 2005 B2
6859751 Cardarelli Feb 2005 B2
6860150 Cho Mar 2005 B2
6892575 Nasiri et al. May 2005 B2
6915693 Kim et al. Jul 2005 B2
6918297 MacGugan Jul 2005 B2
6918298 Park Jul 2005 B2
6938484 Najafi et al. Sep 2005 B2
6939473 Nasiri et al. Sep 2005 B2
6952965 Kang et al. Oct 2005 B2
6955086 Yoshikawa et al. Oct 2005 B2
6963345 Boyd et al. Nov 2005 B2
6972480 Zilber et al. Dec 2005 B2
6981416 Chen et al. Jan 2006 B2
7004025 Tamura Feb 2006 B2
7028546 Hoshal Apr 2006 B2
7028547 Shiratori et al. Apr 2006 B2
7036372 Chojnacki et al. May 2006 B2
7040163 Shcheglov et al. May 2006 B2
7040922 Harney et al. May 2006 B2
7057645 Hara et al. Jun 2006 B1
7077007 Rich et al. Jul 2006 B2
7104129 Nasiri et al. Sep 2006 B2
7121141 McNeil Oct 2006 B2
7154477 Hotelling et al. Dec 2006 B1
7155975 Mitani et al. Jan 2007 B2
7158118 Liberty Jan 2007 B2
7159442 Jean Jan 2007 B1
7168317 Chen Jan 2007 B2
7180500 Marvit et al. Feb 2007 B2
7196404 Schirmer et al. Mar 2007 B2
7210351 Lo et al. May 2007 B2
7222533 Mao et al. May 2007 B2
7236156 Liberty et al. Jun 2007 B2
7237437 Fedora Jul 2007 B1
7239301 Liberty et al. Jul 2007 B2
7240552 Acar et al. Jul 2007 B2
7243561 Ishigami et al. Jul 2007 B2
7247246 Nasiri et al. Jul 2007 B2
7250112 Nasiri et al. Jul 2007 B2
7258008 Durante et al. Aug 2007 B2
7258011 Nasiri et al. Aug 2007 B2
7260789 Hunleth et al. Aug 2007 B2
7262760 Liberty Aug 2007 B2
7284430 Acar et al. Oct 2007 B2
7289898 Hong et al. Oct 2007 B2
7290435 Seeger et al. Nov 2007 B2
7299695 Tanaka et al. Nov 2007 B2
7325454 Saito et al. Feb 2008 B2
7331212 Manlove et al. Feb 2008 B2
7333087 Soh et al. Feb 2008 B2
7352567 Hotelling et al. Apr 2008 B2
7377167 Acar et al. May 2008 B2
7386806 Wroblewski Jun 2008 B2
7395181 Foxlin Jul 2008 B2
7414611 Liberty Aug 2008 B2
7424213 Imada Sep 2008 B2
7437931 Dwyer et al. Oct 2008 B2
7442570 Nasiri et al. Oct 2008 B2
7454971 Blomqvist Nov 2008 B2
7458263 Nasiri et al. Dec 2008 B2
7508384 Zhang et al. Mar 2009 B2
7522947 Tsuda Apr 2009 B2
7533569 Sheynblat May 2009 B2
7549335 Inoue et al. Jun 2009 B2
7552636 Datskos Jun 2009 B2
7617728 Cardarelli Nov 2009 B2
7621183 Seeger et al. Nov 2009 B2
7677099 Nasiri et al. Mar 2010 B2
7677100 Konaka Mar 2010 B2
7688306 Wehrenberg et al. Mar 2010 B2
7765869 Sung et al. Aug 2010 B2
7779689 Li et al. Aug 2010 B2
7783392 Oikawa Aug 2010 B2
7784344 Pavelescu et al. Aug 2010 B2
7814791 Andersson et al. Oct 2010 B2
7907838 Nasiri et al. Mar 2011 B2
7970586 Kahn et al. Jun 2011 B1
8018435 Orchard et al. Sep 2011 B2
20020027296 Badehi Mar 2002 A1
20020189351 Reeds et al. Dec 2002 A1
20030159511 Zarabadi et al. Aug 2003 A1
20030209789 Hanson et al. Nov 2003 A1
20040016995 Kuo et al. Jan 2004 A1
20040066981 Li et al. Apr 2004 A1
20040160525 Kingetsu et al. Aug 2004 A1
20040179108 Sorek et al. Sep 2004 A1
20040200279 Mitani et al. Oct 2004 A1
20050066728 Chojnacki Mar 2005 A1
20050110778 Ben Ayed May 2005 A1
20050170656 Nasiri et al. Aug 2005 A1
20050212751 Marvit et al. Sep 2005 A1
20050239399 Marvit et al. Oct 2005 A1
20060017837 Sorek et al. Jan 2006 A1
20060032308 Acar et al. Feb 2006 A1
20060033823 Okamura Feb 2006 A1
20060061545 Hughes et al. Mar 2006 A1
20060115297 Nakamaru Jun 2006 A1
20060119710 Ben-Ezra et al. Jun 2006 A1
20060139327 Dawson et al. Jun 2006 A1
20060164382 Kulas et al. Jul 2006 A1
20060164385 Smith et al. Jul 2006 A1
20060185502 Nishitani et al. Aug 2006 A1
20060187308 Lim et al. Aug 2006 A1
20060208326 Nasiri et al. Sep 2006 A1
20060251410 Trutna, Jr. Nov 2006 A1
20060256074 Krum et al. Nov 2006 A1
20070035630 Lindenstruth et al. Feb 2007 A1
20070063985 Yamazaki et al. Mar 2007 A1
20070113207 Gritton May 2007 A1
20070123282 Levinson May 2007 A1
20070146325 Poston et al. Jun 2007 A1
20070167199 Kang Jul 2007 A1
20070176898 Suh Aug 2007 A1
20070239399 Sheynblat et al. Oct 2007 A1
20070277112 Rossler et al. Nov 2007 A1
20080009348 Zaleweski et al. Jan 2008 A1
20080088602 Hotelling Apr 2008 A1
20080098315 Chou et al. Apr 2008 A1
20080134784 Jeng et al. Jun 2008 A1
20080158154 Liberty et al. Jul 2008 A1
20080204566 Yamazaki et al. Aug 2008 A1
20080314147 Nasiri et al. Dec 2008 A1
20090005975 Forstall et al. Jan 2009 A1
20090005986 Soehren Jan 2009 A1
20090043504 Bandyopadhyay et al. Feb 2009 A1
20090088204 Culbert et al. Apr 2009 A1
20090326851 Tanenhaus Dec 2009 A1
20100013814 Jarczyk Jan 2010 A1
Foreign Referenced Citations (4)
Number Date Country
0429391 Aug 1995 EP
2428802 Feb 2007 GB
WO 2006043890 Apr 2006 WO
2009016607 Feb 2009 WO
Related Publications (1)
Number Date Country
20090007661 A1 Jan 2009 US