6-осевые инерциальные датчики QMI8658A для систем управления, стабилизации, навигации и отслеживания движения
2 июля
Михаил Варакин (г. Ишим)
Модули QMI8658A производства китайской компании QST отличаются малым энергопотреблением, компактностью и благодаря встроенному функционалу отлично подходят для применений, в которых требуется отслеживание движения. Они схожи по параметрам и являются хорошей заменой продукции европейских брендов.
Инерциальный датчик представляет собой устройство, позволяющее определить перемещения объекта в пространстве путем измерения изменений его ускорения и/или угловой скорости. За время развития науки и техники были разработаны и реализованы различные технологии инерциальных измерений. Сегодня массово применяются устройства следующих базовых типов:
- датчики линейных ускорений (ДЛУ), или акселерометры;
- датчики угловой скорости (ДУС), они же гироскопы;
- инерциальные блоки (модули), в корпусах которых совмещены в разных сочетаниях акселерометры, гироскопы, магнитометры, барометры для измерения высоты и даже термодатчик для компенсации температурной зависимости.
Инерциальные навигационные системы (ИНС) – это отдельная категория навигационных систем, характеризующаяся малым уровнем шумовой составляющей измерений c высоким темпом выдачи данных, которая, однако, обладает существенной накапливающейся ошибкой, то есть растущей со временем погрешностью измерений положения. Инерциальные датчики и блоки являются важной составляющей ИНС для движущихся механизмов и позволяют автономно, без сигналов спутниковой навигации, определять текущие параметры движения.
Для понимания работы блока представим себе декартову систему координат с осями X, Y и Z, как показано на рисунке 1, с датчиками, способными измерять линейное движение в направлении каждой оси, а также вращательное движение вокруг каждой из них. Это фундаментальный принцип для всех инерциальных модулей, и на нем строятся все инерциальные навигационные системы.

Рис. 1. Расположение осей системы координат инерциального модуля
DOF – это количество степеней свободы, измеряемое модулем. Например:
- модуль с тремя акселерометрами и тремя гироскопами измеряет 6 степеней свободы;
- модуль с тремя акселерометрами, тремя гироскопами и тремя магнитометрами измеряет 9 степеней свободы и так далее.
С развитием MEMS—технологий, позволивших изготавливать микромеханические компоненты и электронные схемы на одной кремниевой пластине, появились компактные инерциальные модули и датчики с малым энергопотреблением. Они получили широкое распространение в производстве портативных устройств с аккумуляторным питанием.
Датчики и блоки на основе MEMS нацелены на удовлетворение потребностей таких сегментов рынка, как:
- потребительская электроника (гаджеты, игрушки, бытовая техника), требующая низкой стоимости устройств параллельно с массовым объемом их производства;
- растущий рынок средств персональной мобильности (электросамокатов, электроскейтбордов, гироскутеров, сигвеев, моноколес);
- автомобильная электроника (датчики начала движения в системах охраны и слежения, стабилизации и подруливания, датчики ускорения для подушек безопасности и подобные приборы);
- промышленный (роботы, дроны, системы контроля устойчивости зданий и сооружений);
- рынок специального назначения, относящийся к области High End
Со склада КОМПЭЛ доступны к заказу микросхемы инерциальных датчиков QMI8658A производства китайской компании QST Corporation Ltd. (рисунок 2), представляющих собой полный 6D MEMS инерциальный измерительный блок (IMU). Он включает в себя 3-осевой гироскоп с возможностью выбора диапазона ±16…±2048 град/с, 3-осевой акселерометр с диапазонами измерения ±2…±16 g и температурный датчик. Основные особенности:
- встроенный датчик температуры для компенсации погрешностей;
- возможность настроить скорость передачи данных, фильтрацию шумов, диапазоны измерений, измеряемые параметры и выбрать режимы энергосбережения;
- сопроцессор обработки слежения за движением, позволяющий распознать различные режимы движения;
- функции калибровки и самотестирования.

Рис. 2. Внешний вид датчика QMI8658А
На рисунке 3 показана типовая схема подключения датчика QMI8658 к управляющему микроконтроллеру (HOST) через 4-проводной интерфейс SPI, а основные параметры модуля QMI8658A представлены в таблице 1.

Рис. 3. Схема подключения датчика QMI8658 к управляющему микроконтроллеру
Таблица 1. Основные параметры модуля QMI8658A
Характеристика | Инерциальный блок: 3-осевой акселерометр, 3-осевой гироскоп, температурный датчик |
---|---|
Количество осей | 6 |
Возможность подключения магнитометра | Да |
Диапазон измеряемых ускорений, g | От ±2/±4/±8/±16 |
Диапазон измеряемых угловых скоростей, dps | ±16/±32/±64/±128/±256/±512/±1024/±2048 |
Интерфейс | MIPI, I2C, I3C, SPI, QSPI |
Напряжение питания, В | 1,71…3,6 |
Разрядность, бит | 16 |
Датчик температуры
Модуль QMI8658A оснащен внутренним 16-битным встроенным датчиком температуры, который по умолчанию автоматически включается при работе акселерометра или гироскопа и используется для коррекции температурной зависимости их параметров калибровки. В диапазоне -40…85°C датчик имеет разрешение 0,0625°C (1/16°C) или обратное значение 16 LSB/°C.
Блок выводит внутреннюю температуру чипа, которую может считать HOST-контроллер. Выходной сигнал представлен в виде 16-битного значения с разрешением 1/256°C на LSB. Чтобы прочитать температуру, HOST необходимо получить доступ к регистру TEMP (TEMP_L и TEMP_H регистра вывода данных в таблице 1). Расчет выполняется по формуле 1:
T=TEMP_H+(TEMP_L256)(1)
Обзор карты регистров
Микросхема QMI8658А оснащена различными регистрами, которые позволяют настраивать режимы работы и извлекать результаты. Карта регистров может быть классифицирована по следующим категориям:
- регистр общего назначения;
- регистры настройки и управления различными аспектами модуля;
- управляемые хостом калибровочные регистры, которые управляют и настраивают различные аспекты модуля через командный интерфейс CTRL9;
- сдвиговые регистры FIFO, используемые для настройки FIFO и обнаружения доступности данных и их переполнения;
- регистры состояния;
- регистры отметок времени;
- регистры данных датчиков;
- регистр сброса.
Доступ к ним можно получить по протоколу I²C или SPI. Подробное описание ключевых регистров, включая настройки для рабочих режимов QMI8658А, представлено в таблице 2.
Таблица 2. Ключевые регистры микросхемы QMI8658А
Название | Тип | Адрес регистра | По умолчанию | Описание | ||
---|---|---|---|---|---|---|
Десятичный | Шестнадцатиричный | Двоичный | ||||
Регистр общего назначения | ||||||
WHO_AM_I | r | 0 | 00 | 00000000 | 00000101 | Идентификатор |
REVISION_ID | r | 1 | 01 | 00000001 | 01101000 | Идентификатор версии |
Регистры настройки и управления | ||||||
CTRL1 | rw | 2 | 02 | 00000010 | 00100000 | Включение интерфейса и датчика |
CTRL2 | rw | 3 | 03 | 00000011 | 00000000 | Акселерометр: скорость выходных данных, полная шкала, самотестирование |
CTRL3 | rw | 4 | 04 | 00000100 | 00000000 | Гироскоп: скорость выходных данных, полная шкала, самотестирование |
Зарезервировано | rw | 5 | 05 | 00000101 | 00000000 | Зарезервировано |
CTRL5 | rw | 6 | 06 | 00000110 | 00000000 | Настройки фильтра нижних частот |
Зарезервировано | rw | 7 | 07 | 00000111 | 00000000 | Зарезервировано |
CTRL7 | rw | 8 | 08 | 00001000 | 00000000 | Включение датчика |
CTRL8 | rw | 9 | 09 | 00001001 | 00000000 | Детектирование движения |
CTRL9 | rw | 10 | 0A | 00001010 | 00000000 | Команда из HOST |
Калибровочные регистры (см. CTRL9: использование не обязательно) | ||||||
CAL1_L | rw | 11 | 0B | 00001011 | 00000000 | Младшие 8 бит |
CAL1_H | rw | 12 | 0C | 00001100 | 00000000 | Старшие 8 бит |
CAL2_L | rw | 13 | 0D | 00001101 | 00000000 | Младшие 8 бит |
CAL2_H | rw | 14 | 0E | 00001110 | 00000000 | Старшие 8 бит |
CAL3_L | rw | 15 | 0F | 00001111 | 00000000 | Младшие 8 бит |
CAL3_H | rw | 16 | 10 | 00010000 | 00000000 | Старшие 8 бит |
CAL4_L | rw | 17 | 11 | 00010001 | 00000000 | Младшие 8 бит |
CAL4_H | rw | 18 | 12 | 00010010 | 00000000 | Cтаршие 8 бит |
Регистры FIFO | ||||||
FIFO_WTM_TH | rw | 19 | 13 | 00010011 | 00000000 | Переполнение |
FIFO_CONTR | r | 20 | 14 | 00010100 | 00000000 | Настройка |
FIFO_RMPL_CNT | r | 21 | 15 | 00010101 | 00000000 | Количество |
FIFO_STATUS | r | 22 | 16 | 00010110 | 00000000 | Состояние |
FIFO_DATA | r | 23 | 17 | 00010111 | 00000000 | Данные |
Регистры состояния | ||||||
STATUSINT | r | 45 | 2D | 00101101 | 00000000 | Доступность данных |
STATUS0 | r | 46 | 2E | 00101110 | 00000000 | Вывод данных |
STATUS1 | r | 47 | 2F | 00101111 | 00000000 | Состояния движения |
Регистры времени | ||||||
TIMESTAMP_LOW | r | 48 | 30 | 00110000 | 00000000 | Временная отметка выборки Младшие 8 бит |
TIMESTAMP_MID | к | 49 | 31 | 00110001 | 00000000 | Средние 8 бит |
TIMESTAMP_HIGH | r | 50 | 32 | 00110010 | 00000000 | Старшие 8 бит |
Регистры данных | ||||||
TEMP_L | r | 51 | 33 | 00110011 | 00000000 | Температура Младшие 8 бит |
TEMP_H | r | 52 | 34 | 00110100 | 00000000 | Старшие 8 бит |
AX_L | r | 53 | 35 | 0011010 1 | 00000000 | Ось Х, акселерометр Младшие 8 бит |
AX_H | r | 54 | 36 | 00110110 | 00000000 | Старшие 8 бит |
AY_L | r | 55 | 37 | 00110111 | 00000000 | Ось Y, акселерометр Младшие 8 бит |
AY_H | r | 56 | 38 | 00111000 | 00000000 | Старшие 8 бит |
AZ_L | r | 57 | 39 | 00111001 | 00000000 | Ось Z, акселерометр Младшие 8 бит |
AZ_H | r | 58 | 3A | 00111010 | 00000000 | Старшие 8 бит |
GX_L | r | 59 | 3B | 00111011 | 00000000 | Ось X, угловая скорость Младшие 8 бит |
GX_H | r | 60 | 3C | 00111100 | 00000000 | Старшие 8 бит |
GY_L | r | 61 | 3D | 00111101 | 00000000 | Ось Y, угловая скорость Младшие 8 бит |
GY_H | r | 62 | 3E | 00111110 | 00000000 | Старшие 8 бит |
GZ_L | r | 63 | 3F | 00111111 | 00000000 | Ось Z, угловая скорость Младшие 8 бит |
GZ_H | r | 64 | 40 | 01000000 | 00000000 | Старшие 8 бит |
Регистр обнаружения активности | ||||||
TAP_STATUS | r | 89 | 59 | 01011001 | 00000000 | Ось, обнаружение, количество касаний |
STEP_CNT_LOW | r | 90 | 5A | 01011010 | 00000000 | Младший байт подсчета шагов |
STEP_CNT_MIDL | r | 91 | 5B | 01011011 | 00000000 | Средний байт подсчета шагов |
STEP_CNT_HIGH | r | 92 | 5C | 01011100 | 00000000 | Старший байт подсчета шагов |
Сброс | ||||||
RESET | w | 96 | 60 | 01100000 | 00000000 | Мягкий сброс |
При программировании управляющего HOST-микроконтроллера нужно учитывать, что микросхема QMI8658A имеет несколько режимов работы: обычный и заблокированный, поэтому необходимо выбирать для применения программную библиотеку, которая может работать с обоими. В обычном режиме работы мы можем пинговать каждый выходной регистр датчика в удобное для нас время, но регистры не обязательно будут синхронизированы друг с другом, то есть вы можете получить ускорение по оси X из последнего показания, а ускорение по оси Y – из текущего, в зависимости от того, когда считывается каждый регистр. Или, что еще хуже, вы можете считать младший байт одного показания и старший байт следующего. Чтобы решить эту проблему, QMI8658A имеет механизм блокировки, при котором считываются показания датчиков, а данные синхронизируются и блокируются в регистрах до тех пор, пока хост не завершит их считывание. Блокировка осуществляется использованием библиотек в ходе написания программы.
В отрытом доступе можно найти несколько библиотек для работы с микросхемой QMI8658A (QMI8658C) для:
К примеру, для платформы xTM32duino с контроллером xTM32F103C8 следует выбрать библиотеку QMI8658.h. Чтобы получить доступ к режиму блокировки в этой библиотеке, нужно использовать команду qmi.setState(sensor_locking) после begin(): использование функции считывания продолжится в обычном режиме, но теперь быстрые последовательные считывания в течение 2 мс будут гарантированно выполняться из одной и той же выборки.>
Примечание: порог для получения новых данных можно изменить, установив QMI8658_REFRESH_DELAY на новое значение в микросекундах. |
Этот режим работы рекомендован для таких чувствительных приложений, как AR/VR (виртуальная и дополненная реальность) или SLAM-навигация, где требуется высокая точность.
Примечание: на платформе xTM32duino xTM32F103C8 с частотой 400 кГц при передаче I²C один вызов getRawReadings() занимает около 600 мкс. |
В таблице 3 представлены основные характеристики двух инерциальных датчиков-блоков:
- QMI8658А, выпускаемого компанией QST и находящегося на складе КОМПЭЛ;
- LSх6DS3 производства известного европейского бренда.
Таблица 3. Сравнение основных характеристик инерциальных датчиков азиатского и европейского производства
Наименование | QMI8658А | LSх6DS3 | |
---|---|---|---|
Состав | 6D MEMS: 3-осевой акселерометр, 3-осевой гироскоп, температурный датчик | 6D MEMS: 3-осевой акселерометр, 3-осевой гироскоп, температурный датчик | |
Количество осей | 6 | 6 | |
Возможность подключения магнитометра | Да | Да | |
Корпус | 14-pin LGA | 14-pin LGA | |
Диапазон измеряемых ускорений, g | От ±2/±4/±8/±16 | От ±2/±4/±8/±16 | |
Диапазон измеряемых угловых скоростей, dps | ±16/±32/±64/±128/±256/±512/±1024/±2048 | ±125/±250/±500/±1000/±2000 | |
Плотность шума | Акселерометры, mg/√Hz | 150 | 90 |
Гироскопы, mdps/√ Гц | 15 | 6 | |
Чувствительность акселерометра, LSB/g | 16,4 | 16,4 | |
Чувствительность гироскопа, LSB/dps | 2048 | 228 | |
Температурный коэффициент чувствительности, %/°C | акселерометра | ±0,04 | ±0,04 |
гироскопа | ±0,05 | ±0,06 | |
Диапазон рабочих температур, °C | -40…85 | -40…85 | |
Интерфейс | MIPI, I2C, I3C, SPI, QSPI | SPI, I2C | |
Напряжение питания, В | 1,71…3,6 | 1,71…3,6 | |
Потребляемый ток (акселерометр + гироскоп), мкА | 1031 | 1250 | |
Габариты, ДхШхВ, мм | 2,5×3,0×0,86 | 2,5×3,0×0,83 | |
Схема контактов (распиновка) | ![]() |
![]() |
Если сравнить вышеперечисленные характеристики, можно сделать вывод, что параметры блоков QMI8658А, выпускаемых компанией QST, уступают только по чувствительности гироскопа, по остальным параметрам находятся на уровне, а по некоторым — даже превосходят модули западного бренда. Отсюда следует, что производство данных модулей нацелено на удовлетворение потребностей массового сегмента рынка и даже занимает промежуточное значение между им и рынком специального назначения.
Микросхемы QMI8658А от QST Co. Ltd. могут найти применение в таких устройствах и гаджетах, как:
- смартфоны;
- игровые контроллеры, пульты дистанционного управления и указывающие устройства;
- роботы;
- беспилотные устройства;
- электронные велосипеды и скутеры;
- гарнитуры Bluetooth;
- автомобильные системы безопасности;
- игрушки;
- системы виртуальной и дополненной реальности;
- портативная электроника с функцией управления отображением в портретном и альбомном режимах.
Благодаря встроенному функционалу, малому энергопотреблению и компактному корпусу (рисунок 4) инерциальные модули QMI8658А являются идеальным решением для применений, в которых требуется отслеживание движения, и хорошей заменой инерциальным модулям европейского производства.

Рис. 4. Миниатюрный корпус QMI8658А
Наши информационные каналы