2016-06-16 04:24 AM
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 #calibration2016-06-30 08:50 AM
Hello,
How to check if self test passed. According to AN4602 page 19 (see: Figure 6):Self-test enable
bit and wait 60 ms.ZYXDA
bit in STATUS_REG
and then read all axes - do it once and discard it.ZYXDA
bit in STATUS_REG
and then read all axes - do it 5 times and calculate average value for each axis.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)
2016-07-03 09:55 AM
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?