Abstract:
A high dynamic range magnetometer architecture and method are disclosed. In an embodiment, a magnetometer sensor comprises: a variable magnetic gain stage including a plurality of selectable signal gain paths, each signal gain path including a magnetic sensor and a magnetic flux concentrator, and for each signal gain path the magnetic flux concentrator being positioned a different distance from the magnetic flux concentrator to provide a different magnetic gain for the signal gain path; a variable magnetic sensing stage coupled to the variable magnetic gain stage, the variable magnetic sensing stage operable to provide variable magnetic sensing to each signal gain path; and a gain control stage coupled to the variable magnetic sensing stage, the gain control stage operable to select one of the signal gain paths and to provide signal conditioning to the selected signal gain path.

Description:
TECHNICAL FIELD 
       [0001]    This disclosure relates generally to magnetometer sensors. 
       BACKGROUND 
       [0002]    Magnetometer sensors can be used to measure the Earth&#39;s magnetic field. Conventional magnetometer sensors used in mobile devices suffer from limited dynamic range and can be easily saturated in an ambient environment. 
       SUMMARY 
       [0003]    A high dynamic range magnetometer architecture and method are disclosed. In an embodiment, a magnetometer sensor comprises: a variable magnetic gain stage including a plurality of selectable signal gain paths, each signal gain path including a magnetic sensor and a magnetic flux concentrator, and for each signal gain path the magnetic flux concentrator being positioned a different distance from the magnetic flux concentrator to provide a different magnetic gain for the signal gain path; a variable magnetic sensing stage coupled to the variable magnetic gain stage, the variable magnetic sensing stage operable to provide variable magnetic sensing to each signal gain path; and a gain control stage coupled to the variable magnetic sensing stage, the gain control stage operable to select one of the signal gain paths and to provide signal conditioning to the selected signal gain path. 
         [0004]    In another embodiment, a method comprises: obtaining, by a magnetometer sensor of an electronic device, an input magnetic field; processing, by the magnetometer, the input magnetic field on a first signal gain path through the magnetometer sensor, the first signal gain path including a first magnetic sensor and a first magnetic flux concentrator, the first magnetic flux concentrator being positioned a first distance from the first magnetic flux concentrator to provide a first magnetic gain for the first signal gain path; obtaining, by the magnetometer, an output signal representing a measurement of the magnetic field based on the input signal; and responsive to the measurement, processing the input magnetic field on a second signal gain path, the second signal gain path including a second magnetic sensor and a second magnetic flux concentrator, the second magnetic flux concentrator being positioned a second distance from the second magnetic flux concentrator to provide a second magnetic gain for the second signal gain path that is different than the first magnetic gain, where the second distance is greater than or less than the first distance. 
         [0005]    In another embodiment, a method comprises: receiving a reference input magnetic field; selecting, by the magnetometer sensor, a signal gain path to receive the reference input magnetic field; calculating a total magnetic gain for the signal gain path; and calculating a calibration coefficient for the signal gain path based on the total magnetic gain for the signal gain path, a magnetic gain of a magnetic sensor in the signal gain path and a sensitivity associated with the magnetic sensor. 
         [0006]    In another embodiment, a computing device comprises: a magnetometer sensor comprising: a variable magnetic gain stage including a plurality of selectable signal gain paths, each signal gain path including a magnetic sensor and a magnetic flux concentrator, and for each signal gain path the magnetic flux concentrator being positioned a different distance from the magnetic flux concentrator to provide a different magnetic gain for the signal gain path; a variable magnetic sensing stage coupled to the variable magnetic gain stage, the variable magnetic sensing stage operable to provide variable magnetic sensing to each signal gain path; a gain control stage coupled to the variable magnetic sensing stage, the gain control stage operable to select one of the signal gain paths and to provide signal conditioning to the selected signal gain path; one or more processors; memory storing one or more instructions, which, when executed by the one or more processors, causes the one or more processors to perform operations comprising: obtaining, from the magnetometer sensor, an output signal; and determining from the output signal compass direction data. 
         [0007]    Particular embodiments disclosed herein provide one or more of the following advantages. The dynamic range of a magnetometer sensor can be increased to provide improved performance in ambient environments. A novel sensing cell design is disclosed that displaces magnetic flux concentrators in signal gain paths at various distances away from magnetic sensors (e.g., giant magneto-resistance (GMR) sensors). An array of such sensing cells can be integrated on a single silicon substrate and a gain control stage multiplexes each individual sensing cell to signal conditioning circuits depending on the magnitude of the incoming magnetic field. The signals read from the sensing cells with various magnetic sensing gain can be post-processed in the magnetometer sensor itself or outside the sensor by another circuit to result in high dynamic range output. 
         [0008]    The details of the disclosed embodiments are set forth in the accompanying drawings and the description below. Other features, objects and advantages are apparent from the description, drawings and claims. 
     
    
     
       DESCRIPTION OF DRAWINGS 
         [0009]      FIG. 1  is a conceptual diagram of an example high dynamic range magnetometer architecture, according to an embodiment. 
           [0010]      FIGS. 2A and 2B  are conceptual diagrams illustrating a design to achieve variable magnetic gain, according to an embodiment. 
           [0011]      FIG. 3  is a flow diagram of an example calibration process, according to an embodiment. 
           [0012]      FIG. 4  is a flow diagram of an example process for adapting the high dynamic range magnetometer architecture in response to changing magnetic fields, according to an embodiment. 
           [0013]      FIG. 5  is a block diagram of example device architecture for implementing the features and processes described in reference to  FIGS. 1-4 . 
       
    
    
       [0014]    The same reference symbol used in various drawings indicates like elements. 
       DETAILED DESCRIPTION 
     Example System 
       [0015]      FIG. 1  is a conceptual diagram of an example high dynamic range magnetometer architecture  100 , according to an embodiment. Architecture  100  can be conceptually divided into three stages: variable magnetic gain stage  101 , variable magnetic sensing stage  102  and gain control stage  103 . 
         [0016]    Architecture  100  includes sensing cells  104 - 1  . . .  104 - i , analog front-end (AFE)  105 , analog-to-digital converter (ADC)  106  and high-pass filter  107 . Each sensing cell  104 - 1  . . .  104 - i  includes a signal amplification component  108 - 1  . . .  108 - i  and a magnetic field sensing component  109 - 1  . . .  109 - i . In  FIG. 1 , A i  represents the signal amplification gain of a magnetic flux concentrator and S i  represents the sensitivity of a magnetic sensor (e.g., a GMR sensor). Sensing cells  104 - 1  . . .  104 - i  can be coupled to AFE  105  by switches  110 - 1  . . .  110 - i , respectively, to provide selectable signal gain paths. In an embodiment, switches  110 - 1  . . .  110 - i  can be implemented by a i:1 multiplexer. AFE  105  includes offset compensation  112  and analog signal amplification  113  (A v ). ADC  106  together with digital low pass filter  114  generate digital output D out  representing a measurement of the input magnet field B IN . One or more control signals (not shown) coupled to switches  110 - 1  . . .  110 - i  activate one of switches  110 - 1  . . .  110 - i  to couple one of sensing cells  104 - 1  . . .  104 - i  to AFE  106 . 
         [0017]      FIGS. 2A and 2B  are conceptual diagrams illustrating a design to achieve variable magnetic gain, according to an embodiment.  FIG. 2A  illustrates a first sensing cell (sensing cell  104 - 1 ) and  FIG. 2B  illustrates an ith sensing cell (sensing cell  104 - i ). Each sensing cell includes magnetic flux concentrator  200 ,  201  and GMR sensor  202 ,  203 . Magnetic flux concentrators  200 ,  201  form magnetic paths to channel magnetic flux generated by GMR sensors  202 ,  203 , respectively, in a desired direction. In sensing cell  104 - 1 , GMR sensor  202  is displaced a distance d 1  from magnetic flux concentrator  200 . In sensing cell  104 - i , GMR sensor  203  is displaced a distance d i  from magnetic flux concentrator  201 , where distance d 1  is different than distance d i . Accordingly, each sensing cell  104 - 1  . . .  104 - i  has a GMR sensor and a magnetic flux concentrator and the distance between the GMR sensor and magnetic flux concentrator is different for each sensing cell  104 - 1  . . .  104 - i . At the GMR sensor location, the magnetic gain A mag  provided by the magnetic flux concentrator is inversely proportional to the distance d. The magnetic gains A mag   _   1  and A mag   _   i  can be represented by Equations [1] and [2]: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       A 
                       
                         
                           mag 
                            
                           _ 
                         
                          
                         1 
                       
                     
                     = 
                     
                       
                         A 
                         o 
                       
                       
                         d 
                         1 
                         α 
                       
                     
                   
                   , 
                 
               
               
                 
                   [ 
                   1 
                   ] 
                 
               
             
             
               
                 
                   
                     
                       A 
                       
                         mag 
                          
                         _ 
                          
                         i 
                       
                     
                     = 
                     
                       
                         A 
                         0 
                       
                       
                         d 
                         i 
                         α 
                       
                     
                   
                   , 
                 
               
               
                 
                   [ 
                   2 
                   ] 
                 
               
             
           
         
       
     
         [0000]    where α represents a gain coefficient constant that is determined by design and validated by sensor characterization and A o  is the analog signal amplification gain of the magnetic flux concentrator at the distance d 0 . A o  is a reference signal gain and can be set arbitrarily based on the actual design. 
         [0018]    By placing the magnetic flux concentrators  200 ,  201  at various distances d i  away from the GMR sensors  202 ,  203 , variable magnetic gain can be achieved. The level of programmability for gain adjustment can be expanded by increasing the number of sensing cells  104 - 1  . . .  104 - i.    
       Example Processes 
       [0019]      FIG. 3  is a flow diagram of an example calibration process  300 , according to an embodiment. The signal amplification gain of the magnetic flux concentrators A 0  . . . A n  in sensing cells can be calibrated for precision magnetic sensing, where n is an index that indicates the nth signal amplification gain of the nth magnetic flux concentrator. 
         [0020]    In some embodiments, process  300  can begin by applying a reference magnetic field B ref  to each sensing cell in an iterative process. Each sensing cell is selected for calibration ( 301 ). For example, one or more control signals (e.g., provided by a state machine, processor or controller) can command a multiplexer to select a particular one of a number of sensing cells as described in reference to  FIG. 1 . After a sensing cell is selected for calibration, the total magnetic gain A n  for the sensing cell is calculated ( 302 ). For example, A n  can be calculated using, for example, Equation [3]: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       A 
                       n 
                     
                     = 
                     
                       
                         D 
                         
                           out 
                            
                           _ 
                            
                           n 
                         
                       
                       
                         B 
                         ref 
                       
                     
                   
                   , 
                 
               
               
                 
                   [ 
                   3 
                   ] 
                 
               
             
           
         
       
     
         [0000]    where D out   _   n  is the output of the magnetometer. The ratio in equation [3] can be calculated in the digital domain after analog-to-digital conversion. 
         [0021]    Process  300  can continue by calculating a calibration coefficient C n  from the total magnetic gain A n  ( 303 ) using, for example, Equation [4]: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       C 
                       n 
                     
                     = 
                     
                       
                         
                           A 
                           
                             
                               mag 
                                
                               _ 
                                
                               n 
                             
                             * 
                           
                         
                          
                         
                           S 
                           n 
                         
                       
                       
                         A 
                         n 
                       
                     
                   
                   , 
                 
               
               
                 
                   [ 
                   4 
                   ] 
                 
               
             
           
         
       
     
         [0000]    where S n  is the sensitivity of the magnetic sensor. 
         [0022]    Process  300  can continue by storing the calibration coefficient C n  ( 304 ) in, for example, memory, and then selecting the next sensing cell for calibration. The calibration continues until a calibration coefficient C n  is calculated and stored for each of n sensing cells. The calibration coefficients C n  can be retrieved from memory and used to calibrate the corresponding sensing cell output for precision magnetic sensing. 
         [0023]      FIG. 4  is a flow diagram of an example process  400  for adapting the high dynamic range magnetometer architecture, according to an embodiment. In an embodiment, a magnetometer sensor including architecture  100  can be adapted to a changing magnetic field while deployed in a device (e.g., deployed in a mobile device) to improve dynamic gain. 
         [0024]    In some embodiments, process  400  can begin by enabling a first signal gain path ( 401 ). For example, a control signal can select the ith signal gain path, where “i” is an index that is initialized as i=n/2, and where n is the total number of sensing cells (total number of signal gain paths). The magnetometer sensor output D out   _   i  is measured and compared against a maximum sensor output D out   _   max  ( 402 ), which can be pre-calculated and stored by the sensor. If D out   _   i  is equal to D out   _   max , the index is decremented by one ( 403 ) and the comparison is made again ( 404 ). If D out   _   i  does not equal D out   _   max , the ith sensing cell is enabled ( 405 ). Otherwise, the index “i” is decremented by one again ( 403 ) and so on until D out   _   i  does not equal D out   _   max . 
         [0025]    If D out   _   i  is equal to D out   _   max , the index “i” is incremented by one ( 406 ) and the comparison is made again ( 407 ). If D out   _   i  equals D out   _   max , the ith sensing cell is enabled ( 405 ). Otherwise, the index is incremented by one again ( 406 ) and so on until D out   _   i  does not equal D out   _   max . 
       Example Device Architecture 
       [0026]      FIG. 5  is a block diagram of example device architecture  500  for implementing the features and processes described in reference to  FIGS. 1-4 . Architecture  500  may be implemented in any mobile device for generating the features and processes described in reference to  FIGS. 1-4 , including but not limited to smart phones and wearable computers (e.g., smart watches, fitness bands). Architecture  500  may include memory interface  502 , data processor(s), image processor(s) or central processing unit(s)  504 , and peripherals interface  506 . Memory interface  502 , processor(s)  504  or peripherals interface  506  may be separate components or may be integrated in one or more integrated circuits. One or more communication buses or signal lines may couple the various components. 
         [0027]    Sensors, devices, and subsystems may be coupled to peripherals interface  506  to facilitate multiple functionalities. For example, motion sensor  510 , light sensor  512 , and proximity sensor  514  may be coupled to peripherals interface  506  to facilitate orientation, lighting, and proximity functions of the device. For example, in some implementations, light sensor  512  may be utilized to facilitate adjusting the brightness of touch surface  546 . In some implementations, motion sensor  510  (e.g., an accelerometer, rate gyroscope) may be utilized to detect movement and orientation of the device. Accordingly, display objects or media may be presented according to a detected orientation (e.g., portrait or landscape). 
         [0028]    Other sensors may also be connected to peripherals interface  506 , such as a temperature sensor, a barometer  517 , a biometric sensor, or other sensing device, to facilitate related functionalities. For example, a biometric sensor can detect fingerprints and monitor heart rate and other fitness parameters. 
         [0029]    Location processor  515  (e.g., GNSS receiver chip) may be connected to peripherals interface  506  to provide geo-referencing. Magnetometer sensor  516  (e.g., an integrated circuit chip) is connected to peripherals interface  506  to provide compass direction data that may be used by one or more applications to determine the direction of magnetic North. Magnetometer sensor includes the architecture described in reference to  FIGS. 1-4 . 
         [0030]    Camera subsystem  520  and an optical sensor  522 , e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, may be utilized to facilitate camera functions, such as recording photographs and video clips. 
         [0031]    Communication functions may be facilitated through one or more communication subsystems  524 . Communication subsystem(s)  524  may include one or more wireless communication subsystems. Wireless communication sub systems  524  may include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. Wired communication systems may include a port device, e.g., a Universal Serial Bus (USB) port or some other wired port connection that may be used to establish a wired connection to other computing devices, such as other communication devices, network access devices, a personal computer, a printer, a display screen, or other processing devices capable of receiving or transmitting data. 
         [0032]    The specific design and implementation of the communication subsystem  524  may depend on the communication network(s) or medium(s) over which the device is intended to operate. For example, a device may include wireless communication subsystems designed to operate over a global system for mobile communications (GSM) network, a GPRS network, an enhanced data GSM environment (EDGE) network, IEEE802.xx communication networks (e.g., Wi-Fi, Wi-Max, ZigBee™), 3G, 4G, 4G LTE, code division multiple access (CDMA) networks, near field communication (NFC), Wi-Fi Direct and a Bluetooth™ network. Wireless communication subsystems  524  may include hosting protocols such that the device may be configured as a base station for other wireless devices. As another example, the communication subsystems may allow the device to synchronize with a host device using one or more protocols or communication technologies, such as, for example, TCP/IP protocol, HTTP protocol, UDP protocol, ICMP protocol, POP protocol, FTP protocol, IMAP protocol, DCOM protocol, DDE protocol, SOAP protocol, HTTP Live Streaming, MPEG Dash and any other known communication protocol or technology. 
         [0033]    Audio subsystem  526  may be coupled to a speaker  528  and one or more microphones  530  to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions. 
         [0034]    I/O subsystem  540  may include touch controller  542  and/or other input controller(s)  544 . Touch controller  542  may be coupled to a touch surface  546 . Touch surface  546  and touch controller  542  may, for example, detect contact and movement or break thereof using any of a number of touch sensitivity technologies, including but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch surface  546 . In one implementation, touch surface  546  may display virtual or soft buttons and a virtual keyboard, which may be used as an input/output device by the user. 
         [0035]    Other input controller(s)  544  may be coupled to other input/control devices  548 , such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) may include an up/down button for volume control of speaker  528  and/or microphone  530 . 
         [0036]    In some implementations, device  500  may present recorded audio and/or video files, such as MP3, AAC, and MPEG video files. In some implementations, device  500  may include the functionality of an MP3 player and may include a pin connector for tethering to other devices. Other input/output and control devices may be used. 
         [0037]    Memory interface  502  may be coupled to memory  550 . Memory  550  may include high-speed random access memory or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, or flash memory (e.g., NAND, NOR). Memory  550  may store operating system  552 , such as Darwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWS, or an embedded operating system such as VxWorks. Operating system  552  may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system  552  may include a kernel (e.g., UNIX kernel). 
         [0038]    Memory  550  may also store communication instructions  554  to facilitate communicating with one or more additional devices, one or more computers or servers, including peer-to-peer communications. Communication instructions  554  may also be used to select an operational mode or communication medium for use by the device, based on a geographic location (obtained by the GPS/Navigation instructions  568 ) of the device. 
         [0039]    Memory  550  may include graphical user interface instructions  556  to facilitate graphic user interface processing, including a touch model for interpreting touch inputs and gestures; sensor processing instructions  558  to facilitate sensor-related processing and functions; phone instructions  560  to facilitate phone-related processes and functions; electronic messaging instructions  562  to facilitate electronic-messaging related processes and functions; web browsing instructions  564  to facilitate web browsing-related processes and functions; media processing instructions  566  to facilitate media processing-related processes and functions; GPS/Navigation instructions  568  to facilitate GPS and navigation-related processes; camera instructions  570  to facilitate camera-related processes and functions; and other instructions  572  for performing some or all of the features and processes, as described in reference to  FIGS. 1-4 . 
         [0040]    Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory  550  may include additional instructions or fewer instructions. Furthermore, various functions of the device may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits (ASICs). 
         [0041]    A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. Elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. In yet another example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.