Самотест датчика (self-test)
Как понять, что акселерометр на плате жив, если он лежит на столе и показывает ровно 1 g? Многие MEMS-датчики умеют проверять себя: по команде их электроника сдвигает чувствительный элемент, и выход должен измениться на известную величину. Разбираем на примере MPU-6050.
Обновлено Редакция GAW
Самотест датчика (self-test) — встроенная проверка исправности, при которой электроника датчика сама воздействует на чувствительный элемент, а программа проверяет, что выход изменился на ожидаемую величину. Так проверяют и механику, и электронику без внешнего эталона: не нужно вращать плату на поворотном столе или наклонять её на точно известный угол.
Как работает у MEMS-датчика
У MEMS-акселерометра и гироскопа чувствительный элемент — подвижная инерционная масса. При самотесте электроника прикладывает к ней силу: у MPU-6050 масса гироскопа смещается на расстояние, равное действию заданной кориолисовой силы (RM-MPU-6000A-00, разд. 4.1). Выход меняется, и это изменение называют откликом самотеста (PS-MPU-6000A-00, разд. 7.12):
Отклик сравнивают с заводским значением FT, записанным в регистры 13–16 при производстве.
Пределы MPU-6050
| Узел | Шкала при самотесте | Допуск относительно заводского отклика |
|---|---|---|
| Гироскоп | ±250 °/с | от −14 до +14 % |
| Акселерометр | ±8 g | от −14 до +14 % |
Шкалы — из RM-MPU-6000A-00, разд. 4.1, допуски — из PS-MPU-6000A-00, разд. 6.1 и 6.2. InvenSense оговаривает, что эти пределы относятся к кристаллам ревизии D с кодом даты 1147 и позже (PS, разд. 2). Если отклик выходит за пределы, датчик считается неисправным.
Где это полезно
- Входной контроль и проверка после пайки — самотест проверяет механическую и электрическую части датчика (PS, разд. 7.12) без поворотного стола.
- Диагностика при включении — устройство проверяет IMU перед тем, как доверять её данным в слиянии датчиков.
- Разбор жалоб — если показания странные, самотест отделяет неисправный датчик от ошибки в программе.
Самотест не заменяет калибровку: допуск ±14 % говорит об исправности, а не о точности. Смещение нуля, например смещение нуля гироскопа, всё равно определяют отдельно.
Частые вопросы
Как выполнить самотест MPU-6050?
Установить шкалу ±250 °/с для гироскопа или ±8 g для акселерометра, снять показания, включить биты самотеста осей в регистрах 27 и 28 и снять показания снова. Разность — отклик самотеста. Затем из регистров 13–16 прочитать заводские значения и пересчитать их по формулам из RM-MPU-6000A-00 (разд. 4.1). Относительное отличие отклика от заводского должно быть в пределах ±14 % (PS, разд. 6.1 и 6.2).
Заменяет ли самотест калибровку?
Нет. Самотест отвечает на вопрос, исправна ли механика и электроника, и допускает отличие отклика от заводского до ±14 %. Калибровка — это определение смещения нуля и масштаба конкретного экземпляра для точных измерений. Исправный по самотесту датчик всё равно нужно калибровать, если важна точность.
Можно ли запускать самотест во время работы?
Только когда датчик не используется для измерений: во время самотеста к реальному сигналу добавляется искусственный отклик, и показания неверны. Обычно его выполняют при включении устройства или по команде диагностики, а датчик при этом должен лежать неподвижно — иначе движение смешается с откликом (наша рекомендация).
Источники
- TDK InvenSense. MPU-6000 and MPU-6050 Product Specification (PS-MPU-6000A-00, Revision 3.4, 19 августа 2013) — разд. 6.1, примечание 1: самотест гироскопа — относительное изменение отклика от заводского значения от −14 до +14 %; разд. 6.2, примечание 2: то же для акселерометра; разд. 7.12: самотест проверяет механическую и электрическую части, включается регистрами 13–16; при включении электроника приводит датчики в движение и они выдают сигнал; отклик = выход с самотестом − выход без самотеста; в пределах допусков — датчик исправен; разд. 2: пределы самотеста относятся к кристаллам ревизии D с кодом даты 1147 и позже
- TDK InvenSense. MPU-6000 and MPU-6050 Register Map and Descriptions (RM-MPU-6000A-00, Revision 4.2, 19 августа 2013) — разд. 4.1, регистры 13–16 SELF_TEST_X/Y/Z/A: поля XG_TEST…ZG_TEST (5 бит) и XA_TEST…ZA_TEST (5 бит, из двух регистров) — заводские значения FT; электроника смещает инерционные массы гироскопа на расстояние, эквивалентное заданной кориолисовой силе; отклик STR сравнивают с FT, изменение должно укладываться в пределы спецификации; при самотесте гироскопа шкала ±250 °/с, акселерометра ±8 g; разд. 4.4–4.5: биты самотеста по осям в регистрах 27 и 28
Нашли ошибку?
Смотрите также
- MPU-60506 осей по I²C: выводы, адрес, регистры, пересчёт кодов, код Arduino
- Акселерометры и гироскопыBMI160, BMI270, BMI323, BNO055: параметры, дрейф гироскопа, слияние, подключение
- Калибровка средства измеренийСверка с эталоном и поправка; не то же, что подстройка
- Смещение нуля гироскопаПоказание гироскопа в покое: значения, дрейф угла, компенсация
- Слияние данных датчиковОбъединение акселерометра, гироскопа и магнитометра в оценку ориентации