I am using the MAG3110 magnetometer in a data logging compass application. The MAG3110 is reflowed to our custom board and calibrated for hard-iron and soft iron errors. That all works fine and the readings are generally stable for weeks to months. But sometimes, hours to months after the initial calibration, we have found sensors with significant shifts in the hard iron errors. It is possible that some of the MAG3110 sensors have been subjected to strong magnetic fields, but in many cases we are sure that they have not. In an effort to understand what might be going wrong, I am hoping that someone can help with explain how the Automatic Magnetic Sensor Reset works in the MAG3110 (AUTO_MRST_EN, bit 7 in CTRL_REG2 (0x11)).
The data sheet says that auto reset is "Similar to Mag_RST, however, the resets occur automatically before EACH data acquisition."
For the Mag_RST, the datasheet states: "When asserted, initiates a magnetic sensor reset cycle that will restore correct operation after exposure to an excessive magnetic field which exceeds the Full Scale Range (see Table 3) but is less than the Maximum Applied Magnetic Field (see Table 4)." FYI: The value in Table 3 is 1000 uT and the value in Table 4 is 100,000 uT.
The MAG3110 FAQ states that "When exposed to strong magnetic fields, the sensing element may get magnetically contaminated. MAG3110 has a reset mechanism to get rid of the effects of this exposure. It is recommended that CTRL_REG2 bit 7 (AUTO_MRST_EN) be set in the initialization routines of your application before starting to acquire any measurements."
I have several questions and sub-questions:
1). When AUTO_MRST_EN is enabled, does the sensor really reset with EACH measurement? or is it only done when "magnetic contamination" is detected? If the latter, how does it determine that it has been "magnetically contaminated"? What is the threshold? 1000 uT or 2000 uT (1000 uT of field strength plus 1000uT Offset)? Are there any other criteria that trigger an auto-reset?
2) My testing indicates that, when the MAG3110 has deliberately contaminated with a strong magnet, and a manual reset is applied, the raw values do not return to the same values that they had before the strong magnet was applied. I see changes of up to 50%. Is there any guidance for how much the pre and post "reset" values will change? Are all three channels reset? or only the sensors that were determined to be contaminated?
3) Assuming that the AUTO_RESET is only triggered due to a significant event, such as a strong magnet contaminating the sensor, is there any indication that the sensor has been reset? This would be helpful so that the micro will know that the original calibration (pre-reset) is no longer valid.
I know that this part has gone EOL (that is another issue). But I would really appreciate some guidance on this one.
Thank you,
Nick
Hello Nick,
1) The AUTO_MRST_EN will reset automatically before each data acquisition when enable.
The Mag_RST (one-shot) will be triggered by exceeding the Full Scale Range (which is typically ±1000 µT) but should be less than 100,000 µT which is the maximum applied magnetic field supported by the sensor before getting damaged.
2) After 5 acquisitions once the AUTO_MRST_EN is set, it will initiate a magnetic sensor reset cycle and the offset should come back to where it was before the overexposure. Or it is possible to also trigger manual resets 5 times explicitly via the CTRL_REG2 bit 4 (Mag_RST).
Ideally, if you have a robust compensation/calibration algorithm, it will be possible to quickly
compensate for the offset changes due to:
i) Overexposure (provided that the part is not permanently damaged)
ii) Reset mechanism. Both may be detected as magnetic jamming.
Assuming the overexposure is completely cleared after N m-cell reset events and the customer is not
triggering any manual m-cell resets the time required should be approximately (N+1)/ODR. With N=5 this becomes 6/ODR.
3) If the AUTO_MRST_EN is enabled (CTRL_REG2 bit 7 set to “1”), it will perform the reset automatically before each data acquisition. This a WRITE ONLY bit and always reads back as 0.
You may find helpful the MAG3110 Bare Metal Example Project shown here https://community.nxp.com/docs/DOC-330484
I hope this information can be helpful.
Have a great day,
Paulina
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Lisette,
Thank you for your response. I have a follow-up question:
4) The zero-flux offset accuracy is listed in the data sheet (Table 3) as +/- 100 uT (typical). Suppose a specific sensor is calibrated and the actual zero-flux offset for this specific device is determined to be +50 uT. If the sensor is then exposed to a strong magnetic field of more than 1000 uT (but less than 100,000uT), the strong field is removed and then a reset is performed, will the offset return to +50 uT? or will the offset be back to +/- 100 uT (typical)?
Thank you,
Nick
Hello Nick,
The offset will be back to +/- 100 uT (typical).
Have a great day,
Paulina
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------