Заметил на одном устройстве, что когда оно лежит неподвижно, наблюдаемая ось в горизонтальном положении, акселерометр показывает не околонулевое значение (как должно быть) а намного ниже (-10) при чувствительности 2ж. Очевидно сбилась калибровка, возможно при пайке.
Так вот, вопрос состоит в том как проверить программным путем акселерометр?
В документации сказано про два бита в регистре конфигурации (STP, STM) но очень смутно (в сноске) строка как этим пользоваться.
Цитата
FS bit set to 0
STP bit used

X axis: (-16 .. -3 ) LSb
Y axis: (+3 .. +16) LSb
Z axis: (+3 .. +16) LSb

--сноска--
Self Test output changes with the power supply. Self test “output change” is defined as OUTPUT[LSb](Self-test bit on ctrl_reg1=1) -OUTPUT[LSb](Self-test bit on ctrl_reg1=0).
1LSb=4.6g/256 at 8bit representation, ±2.3g Full-Scale

Я правильно понял что нужно получить значение с включеным битом, потом с выключеным, отнять, и получить ошибку в неких единицах LSb ???

далее по документации
Цитата
2.4.3 Self Test
...
If the output signals change within the amplitude specified inside Table 2, than the sensor is
working properly and the parameters of the interface chip are within the defined
specification.


Может кто разъяснит ?
А то очень часто, при включеном STP у меня значения по некоторым осям не попадают в диапазон (а по некоторым попадают)
Зачем нужен STM ?

Как этим практичски пользоваться ?