LIS3MDL selftest and calibration
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2016-06-16 4:24 AM
Posted on June 16, 2016 at 13:24
Hi,
the self test procedure described in AN4602 starts automatically by setting bit 0 to '1' in CTRL_REG1 register, but it is not well explained how to check if the self test passes or fails.If the self test passes, the device performs the calibration by itself? #lis3mdl #selftest #lis3mdl #self-test #lis3mdl-temperature-calibration #calibration
Labels:
- Labels:
-
E-Compasses
-
Functional Safety
This discussion is locked. Please start a new topic to ask your question.
2 REPLIES 2
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2016-06-30 8:50 AM
Posted on June 30, 2016 at 17:50
Hello,
How to check if self test passed. According to AN4602 page 19 (see: Figure 6):- ... (Follow the Figure 6 from the beginning down-to the bottom of left column.)
- Set
bit and wait 60 ms.Self-test enable
- Check
bit inZYXDA
and then read all axes - do it once and discard it.STATUS_REG
- Check
bit inZYXDA
and then read all axes - do it 5 times and calculate average value for each axis.STATUS_REG
- Check if calculated average values (converted to absolute value) for each axis is within limits (see: Table 17), i.e.:
ST_min(X-axis) <= abs( OUT_X_AVERAGE ) <= ST_max(X-axis)
ST_min(Y-axis) <= abs( OUT_Y_AVERAGE ) <= ST_max(Y-axis)
ST_min(Z-axis) <= abs( OUT_Z_AVERAGE ) <= ST_max(Z-axis)
- If averaged values (converted to absolute value) for all axes fit into limits, then self test passed.
- ... (Finish the Figure 6 flow)
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2016-07-03 9:55 AM
Posted on July 03, 2016 at 18:55
Hi Martin,
thanks for your reply. I've successfully performed the self test feature by following the procedure described in the AN4602 as you wrote in your post. I'm testing the device but I noticed a remarkable drift of the magnetic values respect to temperature. According to the AN4602 and the device datasheet, the magnetometer should have a built-in digital compensation block to avoid the magnetic drift in temperature...isn't it? It seems do not work properly... I think to calibrate the device with an external algorithm, perhaps by using the self test feature to obtain known values of the magnetic data...any ideas to help me?