№2 / 2019 / статья 3

Новый инерционный модуль с рекордно малым потреблением в активном режиме

Вячеслав Гавриков (г. Смоленск)

Компания STMicroelectronics постоянно расширяет номенклатуру многоосевых инерционных модулей iNemo. Новый шестиосевой модуль LSM6DSO объединяет трехосевой гироскоп, трехосевой акселерометр, автомат состояний, множество специальных IP-блоков, FIFO-буфер. Кроме того, LSM6DSO обеспечивает рекордно малое потребление в активном режиме.

Популярность многоосевых инерционных модулей, объединяющих в одном корпусе несколько МЭМС-датчиков, постоянно увеличивается. Это приводит к возникновению жесткой конкуренции между производителями в данном сегменте рынка. В результате номенклатура многоосевых инерционных модулей расширяется, а их характеристики совершенствуются.

STMicroelectronics занимает одно из ведущих положений в области производства МЭМС. Компания выпускает различные типы датчиков: цифровые и аналоговые инерционные сенсоры (акселерометры, гироскопы, магнитометры), инерционные многоосевые модули iNemo, датчики параметров окружающей среды (давления, влажности, температуры), МЭМС-микрофоны с аналоговыми и цифровыми выходами и так далее.

Инерционные модули iNemo объединяют в одном корпусе несколько типов сенсоров (рисунок 1). В частности, модули LSM6DS включают трехосевой гироскоп и трехосевой акселерометр, а девятиосевые модули LSM9DS, кроме того, имеют на борту и трехосевой магнитометр.

Рис. 1. Многоосевые модули iNemo производства компании STMicroelectronics

Рис. 1. Многоосевые модули iNemo производства компании STMicroelectronics

Новый модуль LSM6DSO имеет в своем составе трехосевой гироскоп, трехосевой акселерометр, автомат состояний, множество специальных IP-блоков, FIFO-буфер. Однако главной отличительной чертой LSM6DSO становится рекордно малое потребление в активном режиме. Например, типовое потребление в высокопроизводительном комбинированном режиме (гироскоп + акселерометр) при максимальной частоте выборки 6664 Гц составляет всего 0,55 мА.

LSM6DSO: сравнение с предшественниками

LSM6DSO является наглядным примером эволюции и развития инерционных модулей производства STMicroelectronics. Чтобы продемонстрировать все преимущества нового модуля, следует выполнить качественное сравнение его характеристик с характеристиками предшественников. Для этого были выбраны шестиосевые модули LSM6DS3H, LSM6DSM, LSM6DSL (таблица 1). С первого взгляда может показаться, что все перечисленные модули имеют практически идентичные характеристики: одинаковый набор датчиков (трехосевой акселерометр, трехосевой гироскоп, датчик температуры), аналогичные диапазоны измерений и чувствительность, одно и то же корпусное исполнение LGA-14L 2,5х3,0х0,83 мм (таблица 3). Вместе с тем есть несколько важных изменений, касающихся потребления и уровня шумов.

Таблица 1. Сравнение шестиосевых инерционных модулей iNemo

Наименование LSM6DS3H LSM6DSO LSM6DSM LSM6DSL
Тип Акселерометр + гироскоп Акселерометр + гироскоп Акселерометр + гироскоп Акселерометр + гироскоп
Диапазон, g ±2/±4/±8/±16 ±2/±4/±8/±16 ±2/±4/±8/±16 ±2/±4/±8/±16
Диапазон, dps ±125/±250/±500/ ±1000/±2000 ±125/±250/±500/ ±1000/±2000 ±125/±250/±500/ ±1000/±2000 ±125/±250/±500/ ±1000/±2000
Чувствительность, тип., мg/LSB 0,061 0,061 0,061 0,061
Чувствительность, тип., mdps/LSB 4,375 4,375 4,375 4,375
ODR для акселерометра, Гц 1…6664 1…6664 1,6…6664 1,6…6664
ODR для гироскопа, Гц 12,5…3332 12,5…6664 12,5…6664 12,5…6664
Плотность шума
(High-performance mode, 2g),
мкg/√Гц
90 70 75 80
Плотность шума в режиме High-performance mode, 2g, mdps/√Гц 6 3,8 3,8 4
Потребление в режиме High-performance mode, мА 1,1 0,55 0,65 0,65
Потребление в режиме Low-power mode, мА 0,4 0,26 0,29 0,29
Размер FIFO, кбайт 9 9 4 4
OIS/EIS Есть/есть Есть/есть Есть/есть Нет/есть
Uпит, В 1,71…3,6 1,71…3,6 1,71…3,6 1,71…3,6
Траб, °С -40…85 -40…85 -40…85 -40…85
Корпус LGA-14L
2,5х3,0х0,83 мм
LGA-14L
2,5х3,0х0,83 мм
LGA-14L
2,5х3,0х0,83 мм
LGA-14L
2,5х3,0х0,83 мм

Уровень потребления является ключевым параметром для всех устройств с батарейным или аккумуляторным питанием. Среди представленных модулей самым «старым» является LSM6DS3H. Он и демонстрирует самое высокое потребление: 1,1 мА в высокопроизводительном режиме (High-performance mode) и 0,4 мА в режиме экономии энергии (Low-power mode). Потребление остальных модулей оказывается значительно меньше, а лидером по эффективности становится новый LSM6DSO. Он «съедает» в два раза меньше, чем LSM6DS3H – около 0,55 мА в высокопроизводительном режиме и 0,26 мА в режиме экономии энергии.

При создании систем с оптической или электронной стабилизацией изображения (OIS и EIS) важным показателем становится уровень шума. Здесь также лидирует LSM6DSO. Для него в высокопроизводительном режиме плотность шума акселерометра составляет 70 мкg/√Гц, а гироскопа — 3,8 mdps/√Гц. Для сравнения: в LSM6DSM плотность шума для акселерометра оказывается несколько выше – около 75 мкg/√Гц.

Большим плюсом LSM6DSO является наличие встроенного буфера FIFO объемом 3 кбайт. Кроме того, с помощью встроенной функции сжатия эффективный объем FIFO увеличивается до 9 кбайт. Аналогичным размером буфера обладает LSM6DS3H, а вот у LSM6DSM и LSM6DSL объем буфера составляет 4 кбайт.

В итоге оказывается, что LSM6DSO собрал все лучшие качества от предшественников и, кроме того, превосходит их по нескольким показателям.

Структура и основные особенности LSM6DSO

LSM6DSO является законченной измерительной системой, включающей не только МЭМС-датчики, но аналоговые цепи усиления и нормирования сигналов AFE, два АЦП, развитую систему фильтров, буфер FIFO, источники опорных напряжений и токов, систему тактирования, систему питания, менеджер прерываний, дополнительные IP-блоки (автомат состояний, шагомер, детектор поворота, детектор значительных перемещений), блок коммуникационных интерфейсов (I²C/I³C/SPI), блок вспомогательного интерфейса AUX SPI (рисунок 2).

Рис. 2. Структурная схема LSM6DSO (XL – акелерометр, UI – пользовательский интерфейс)

Рис. 2. Структурная схема LSM6DSO (XL – акелерометр, UI – пользовательский интерфейс)

Таким образом, в процессе работы LSM6DSO самостоятельно питает МЭМС-датчики, усиливает полученные сигналы, оцифровывает их, выполняет фильтрацию и помещает данные во внутренние регистры или FIFO. Для связи с управляющим контроллером предлагается использовать один из трех интерфейсов: I²C/I³C/SPI.

Интерфейс MIPI I³C является дальнейшим развитием I²C. Главной целью создания I³C было стремление увеличить скорость обмена данными до уровня, обеспечиваемого SPI. Для передачи данных I³C использует ту же двухпроводную шину (SCL и SDA) и при выполнении ряда условий оказывается обратно совместимым с I²C. Еще одной особенностью I³C является использование стандартной системы команд (CCC).

Модуль позволяет настраивать и генерировать различные прерывания (свободное падение, одиночное или двойное касание и так далее). Сигналы прерываний могут транслироваться на выводы INT1 и INT2.

LSM6DSO может как работать в одиночку, так и выступать в качестве концентратора для дополнительных сенсоров. Всего модуль позволяет реализовывать четыре варианта построения системы (рисунок 3):

  • Mode 1: одиночная работа. Для связи с управляющим контроллером используется один из доступных интерфейсов: I²C/MIPII³CSM/SPI;
  • Mode 2: работа с несколькими датчиками. Для связи с управляющим контроллером используется один из доступных интерфейсов: I²C/MIPII³CSM/SPI. Для связи с внешними датчиками общим количеством до четырех используется I²C;
  • Mode 3: работа с внешними устройствами. Для связи с управляющим контроллером используется один из доступных интерфейсов: I²C/MIPII³CSM/SPI. Дополнительный интерфейс AUXSPIдоступен для подключения внешних устройств и передачи данных от гироскопа;
  • Mode 4: работа с внешними устройствами. Для связи с управляющим контроллером используется один из доступных интерфейсов: I²C/MIPII³CSM/SPI. Дополнительный интерфейс AUXSPIдоступен для подключения внешних устройств и передачи данных как от гироскопа, так и от акселерометра.
Рис. 3. Варианты включения LSM6DSO

Рис. 3. Варианты включения LSM6DSO

Два последних режима работы необходимы в первую очередь для построения систем оптической и электронной стабилизации изображения (OIS и EIS).

Обзор дополнительных блоков и функций LSM6DSO

Как было сказано выше, в составе LSM6DSO есть несколько встроенных аппаратных блоков, существенно расширяющих функционал данного инерционного модуля.

Шагомер (Pedometer) выполняет две функции: распознавание и подсчет шагов. Для работы блок использует только данные от акселерометра, работающего с частотой выборки ODR = 26 Гц.

Активация шагомера выполняется после установки бита PEDO_EN регистра EMB_FUNC_EN_A. Для повторной инициализации блока необходимо записать «1» в бит STEP_DET_INIT регистра EMB_FUNC_INIT_A.

Количество шагов может быть напрямую считано из регистров STEP_COUNTER_H и STEP_COUNTER_L. Стоит отметить, что счетчик шагов не сбрасывается после выключения или переинициализации шагомера, а также после перехода LSM6DSO в режим ожидания. Вместо этого для обновления регистров необходимо самостоятельно установить «1» в бит PEDO_RST_STEP регистра EMB_FUNC_SRC.

Каждый раз при обнаружении шага шагомер генерирует прерывание. Для защиты от случайных шумов используется программируемая задержка по числу шагов. Значение задержки в шагах записывается пользователем в регистр EB_STEP[7:0].

В составе шагомера есть два дополнительных блока: False-Positive Rejection block и Advanced Detection block. Первый блок используется для отслеживания активности пользователя и отключения шагомера при длительном отсутствии движения. Второй блок позволяет шагомеру подстраивать свою чувствительность с учетом текущих особенностей. Например, если шаги «мягкие» или пользователь несет устройство в руке, то чувствительность увеличивается.

Прерывание от шагомера (IS_STEP_DET) может подаваться на внешние выводы INT1/INT2. Для этого необходимо установить биты INT1_STEP_DETECTOR/INT2_STEP_DETECTOR в регистрах EMB_FUNC_INT1/EMB_FUNC_INT2. В свою очередь, для разрешения использования INT1/INT2 для генерации прерываний от внутренних функций необходимо установить биты INT1_EMB_FUNC/INT2_EMB_FUNC в регистре MD1_CFG/MD2_CFG.

Пример последовательности действий при настройке шагомера представлен ниже:

  1. записать 80hв FUNC_CFG_ACCESSдля разрешения доступа к регистрам встроенных функций;
  2. записать 40h в PAGE_RW для разрешения записи;
  3. записать 11h в PAGE_SEL для выбора страницы;
  4. записать 83h в PAGE_ADDR для выбора регистр используемой функции (PEDO_CMD_REG);
  5. записать 04h вPAGE_VALUE дляактивизацииблокаfalse positive rejection block (FP_REJECTION_EN = 1);
  6. записать 00h в PAGE_RW для запрета записи;
  7. записать 08h в EMB_FUNC_EN_A для активизации педометра;
  8. записать 08h в EMB_FUNC_INT1 для разрешения использования вывода INT1 для прерываний;
  9. записать 00h в FUNC_CFG_ACCESS для запрета доступа к регистрам встроенных функций;
  10. записать 02h в MD1_CFG для разрешения прерывания от встроенных функций;
  11. записать 28h в CTRL1_XL для включения акселерометра ODR_XL = 26 Гц, FS_XL = ±4g.

В то же время для генерации кода инициализации можно воспользоваться бесплатной утилитой Unico GUI.

Блок обнаружения значительного перемещения (Significant Motion Detection, SMD) помогает распознавать существенное перемещение датчика. Как и в предыдущем случае, функция SMD реализуется с помощью акселерометра, работающего с частотой ODR = 26 Гц. Стоит отметить, что SMD автоматически активизирует шагомер. Генерация прерывания от SMD возникает, если показания шагомера увеличились более чем на 10 шагов.

Для активации функции необходимо записать «1» в бит SIGN_MOTION_EN регистра EMB_FUNC_EN_A. Для повторной инициализации блока необходимо записать «1» в бит SIG_MOT_INIT регистра EMB_FUNC_INIT_A.

Для формирования прерывания от SMD на выводах INT1/INT2 необходимо установить биты INT1_SIG_MOT/INT2_SIG_MOT в регистрах EMB_FUNC_INT1/EMB_FUNC_INT2. В свою очередь, для разрешения использования INT1/INT2 для генерации прерываний от внутренних функций необходимо установить биты INT1_EMB_FUNC/INT2_EMB_FUNC в регистре MD1_CFG/MD2_CFG.

Пример последовательности действий при настройке SMD представлен ниже:

  1. записать 80h в FUNC_CFG_ACCESS для разрешения доступа к регистрам встроенных функций;
  2. записать 20htoEMB_FUNC_EN_Aдля активизации SMD;
  3. записать 20h в EMB_FUNC_INT1 для разрешения использования вывода INT1 для прерываний;
  4. записать 00h в FUNC_CFG_ACCESSдля запрета доступа к регистрам встроенных функций;
  5. записать 02h в MD1_CFGдля разрешения прерывания от встроенных функций;
  6. записать 20h в CTRL1_XLдля включения акселерометра ODR_XL = 26 Гц, FS_XL = ±2g.

Для генерации кода инициализации можно воспользоваться бесплатной утилитой Unico GUI.

Блок контроля положения (Tilt detection) позволяет распознавать моменты, когда наклон датчика существенно изменяется. Для реализации этой функции используется акселерометр, работающий с частотой ODR = 26 Гц.

Если функция активирована, то прерывание будет генерироваться всякий раз, когда наклон датчика изменяется более чем на 35°. В качестве начального выбирается положение, при котором происходит активация блока или его переинициализация после предыдущего прерывания. Пояснение алгоритма работы представлено на рисунке 4. В этом примере при первой инициализации датчика в качестве начального положения выбрано положение #0. После поворота датчика более чем на 35° генерируется прерывание, а конечное положение становится новой стартовой точкой #1.

Рис. 4. Генерация прерывания при обнаружении поворота

Рис. 4. Генерация прерывания при обнаружении поворота

Для активации функции необходимо записать «1» в бит TILT_EN регистра EMB_FUNC_EN_A. Для повторной инициализации блока необходимо записать «1» в бит TILT_INIT регистра EMB_FUNC_INIT_A. Стоит отметить, что после инициализации или повторной инициализации функции требуется около 2 секунд для выхода на режим и начала работы.

Для формирования прерывания от данной функции на выводах INT1/INT2 необходимо установить биты INT1_TILT/INT2_ TILT в регистрах EMB_FUNC_INT1/EMB_FUNC_INT2. В свою очередь для разрешения использования INT1/INT2 с целью генерации прерываний от внутренних функций необходимо установить биты INT1_EMB_FUNC/INT2_EMB_FUNC в регистре MD1_CFG/MD2_CFG.

Пример последовательности действий при настройке SMD представлен ниже:

  1. записать 80h в FUNC_CFG_ACCESS для разрешения доступа к регистрам встроенных функций;
  2. записать 10h в EMB_FUNC_EN_A для активизации функции;
  3. записать 10h в EMB_FUNC_INT1 для разрешения использования вывода INT1 для прерываний;
  4. записать 80h в PAGE_RW для разрешения режима защелки;
  5. записать 00h в FUNC_CFG_ACCESS для запрета доступа к регистрам встроенных функций;
  6. записать 02h в MD1_CFG для разрешения прерывания от встроенных функций;
  7. записать 20h в CTRL1_XL для включения акселерометра ODR_XL = 26 Гц, FS_XL = ±2g.

Для генерации кода инициализации можно воспользоваться бесплатной утилитой Unico GUI.

Проставление временных меток (Timestamp). LSM6DSO позволяет измерять временные интервалы с разрешением 25 мкс. При отсутствии временных меток управляющий контроллер не имеет точной информации о моменте, кода был получен тот или иной отсчет. При использовании FIFO-буфера ситуация становится еще более расплывчатой. Однако для некоторых приложений, например, связанных с навигацией или с выполнением частотного анализа вибраций, это недопустимо. Проставление временных меток решает эту проблему.

По умолчанию измерение временных интервалов производится с разрешением 25 мкс, однако при необходимости можно выполнить подстройку с помощью поля FREQ_FINE[7:0] регистра INTERNAL_FREQ_FINE.

Работа внутреннего 32-битного счетчика начинается с записи «1» в бит TIMESTAMP_EN регистра CTRL10_C. Содержимое счетчика хранится в регистрах TIMESTAMP3 – TIMESTAMP2 – TIMESTAMP1 – TIMESTAMP0. После того как счетчик достигает максимального значения 0xffffffff (около 30 часов), счет начинается заново с 0.

Конечный автомат состояний (Finite State Machine). В LSM6DSO есть встроенный конечный автомат, который позволяет запрограммировать 16 состояний. Условия перехода между состояниями задаются разработчиком независимо. При этом в качестве параметров могут использоваться не только данные от встроенных датчиков (акселерометра или гироскопа), но и от внешних сенсоров, например, магнитометра, если LSM6DSO работает в режиме Mode2 (рисунок 5).

Рис. 5. Автомат состояний в LSM6DSO позволяет учитывать данные от внешних датчиков

Рис. 5. Автомат состояний в LSM6DSO позволяет учитывать данные от внешних датчиков

Настройка и программирование автомата состояний вручную является достаточно сложной задачей. В данном случае самым простым альтернативным подходом будет использование бесплатной утилиты Unico от STMicroelectronics (рисунок 6). Эта утилита входит в состав программного пакета STSW-MKI109W для материнской платы датчиков STEVAL MKI109V3.

Рис. 6. Unico позволяет настроить автомат состояний

Рис. 6. Unico позволяет настроить автомат состояний

Встроенный буфер FIFO. При работе с LSM6DSO не обязательно постоянно вычитывать данные. Вместо этого отсчеты могут накапливаться во встроенном буфере. При этом управляющий контроллер переводится в спящее состояние для экономии потребления, а после пробуждения вычитывает блок данных из буфера.

Буфер может использоваться для хранения различных данных: показаний гироскопа, акселерометра, датчика температуры, временных меток, данных от внешних сенсоров, показаний шагомера. Объем FIFO составляет 3 кбайта или до 9 кбайт при активации функции сжатия.

FIFO-буфер может работать в одном из пяти различных режимов: Bypass mode, FIFO mode, Continuous mode, Continuous-to-FIFO mode, Bypass-to-Continuous и Bypass-to-FIFO mode. Это гарантирует высокий уровень гибкости.

Для индикации заполнения, частичного заполнения и переполнения буфера используются прерывания, формируемые на выводах INT1 или INT2.

Производительность и потребление LSM6DSO

Эффективность и уровень потребления являются важными характеристиками для любого устройства с батарейным питанием. В этом смысле у LSM6DSO есть несколько важных преимуществ. Во-первых, модуль имеет широкий диапазон питающих напряжений 1,71…3,6 В. Во-вторых, потреблением LSM6DSO можно управлять за счет отключения неиспользуемых датчиков (акселерометра и гироскопа) или за счет изменения частоты измерений.

Акселерометр в LSM6DSO имеет шесть режимов работы: Power-Down, Ultra-Low-Power, Low-Power, Normal и High-Performance. По умолчанию акселерометр работает в режиме High-Performance. Для отключения режима High-Performance используется бит XL_HM_MODE регистра CTRL6_C. Для активации режима Ultra-Low-Power используется бит ULP_EN регистра CTRL1_XL. В таблице 2 представлены варианты настройки частоты измерений и рабочих режимов акселерометра.

Таблица 2. Выбор частоты измерений и режима работы для акселерометра

ODR_XL [3:0] ODR, Гц, XL_ULP_EN = 1
и XL_HM_MODE = 0
(гироскоп должен находиться в режиме Power-Down)
ODR, Гц, XL_ULP_EN = 0
и XL_HM_MODE = 1
ODR, Гц, XL_ULP_EN = 0
и XL_HM_MODE = 0
0 Power-Down Power-Down Power-Down
1011 1,6 Гц (Ultra-Low-Power) 1,6 Гц (Low-Power) 12,5 Гц (High-Performance)
1 12,5 Гц (Ultra-Low-Power) 12,5 Гц (Low-Power) 12,5 Гц (High-Performance)
10 26 Гц (Ultra-Low-Power) 26 Гц (Low-Power) 26 Гц (High-Performance)
11 52 Гц (Ultra-Low-Power) 52 Гц (Low-Power) 52 Гц (High Performance)
100 104 Гц (Ultra-Low-Power) 104 Гц (Normal mode) 104 Гц (High-Performance)
101 208 Гц (Ultra-Low-Power) 208 Гц (Normal mode) 208 Гц (High-Performance)
110 Недоступно 417 Гц (High-Performance) 417 Гц (High-Performance)
111 Недоступно 833 Гц (High-Performance) 833 Гц (High-Performance)
1000 Недоступно 1,66 кГц (High-Performance) 1,66 кГц (High-Performance)
1001 Недоступно 3,33 кГц (High-Performance) 3,33 кГц (High-Performance)
1010 Недоступно 6,66 кГц (High-Performance) 6,66 кГц (High-Performance)

Гироскоп в LSM6DSO использует пять рабочих режимов: Power-Down, Ultra-Low-Power, Low-Power, Normal и High-Performance mode. Для отключения режима High-Performance используется бит G_HM_MODE из регистра CTRL7_G. В таблице 3 представлены варианты настройки частоты измерений и рабочих режимов гироскопа.

Таблица 3. Выбор частоты измерений и режима работы для гироскопа

ODR_G [3:0] ODR, Гц, G_HM_MODE = 1 ODR, Гц, G_HM_MODE = 0
0 Power-Down Power-Down
1 12,5 Гц (Low-Power) 12,5 Гц (High-Performance)
10 26 Гц (Low-Power) 26 Гц (High-Performance)
11 52 Гц (Low-Power) 52 Гц (High-Performance)
100 104 Гц (Normal mode) 104 Гц (High-Performance)
101 208 Гц (Normal mode) 208 Гц (High-Performance)
110 417 Гц (High-Performance) 417 Гц (High-Performance)
111 833 Гц (High-Performance) 833 Гц (High-Performance)
1000 1,66 кГц (High-Performance) 1,66 кГц (High-Performance)
1001 3,33 кГц (High-Performance) 3,33 кГц (High-Performance)
1010 6,66 кГц (High-Performance) 6,66 кГц (High-Performance)

В таблице 4 представлены типовые значения потребления модуля LSM6DSO в различных режимах работы. Как видно из таблицы, управляя частотой опроса и режимом работы, можно изменять ток потребления в широких пределах от 4,4 мкА (работает только акселерометр) до 550 мкА (оба датчика активны).

Таблица 4. Потребление LSM6DSO в различных режимах

ODR, Гц Только акселерометр
при Vdd = 1,8 В, мкА
Только гироскоп
при Vdd = 1,8 В, мкА
Акселерометр + гироскоп
при Vdd = 1,8 В, мкА
Power-Down 3
Sleep 245
1,6 Гц (Ultra-Low-Power) 4,4
12,5 Гц (Ultra-Low-Power) 5,5
26 Гц (Ultra-Low-Power) 7
52 Гц (Ultra-Low-Power) 9,5
104 Гц (Ultra-Low-Power) 14,5
208 Гц (Ultra-Low-Power) 24,5
1,6 Гц (Low-Power) 4,5
12,5 Гц (Low-Power) 9 255 265
26 Гц (Low-Power) 15 265 280
52 Гц (Low-Power) 26 280 300
104 Гц (Normal) 45 310 350
208 Гц (Normal) 85 375 430
12,5 Гц (High-Performance) 170 450 550
26 Гц (High-Performance) 170 450 550
52 Гц (High-Performance) 170 450 550
104 Гц (High-Performance) 170 450 550
208 Гц (High-Performance) 170 450 550
417 Гц (High-Performance) 170 450 550
833 Гц (High-Performance) 170 450 550
1,66 кГц (High-Performance) 170 450 550
3,33 кГц (High-Performance) 170 450 550
6,66 кГц (High-Performance) 170 450 550

Схема включения LSM6DSO

Схема включения LSM6DSO зависит от выбранной архитектуры системы (рисунок 2). Типовая схема требует всего двух развязывающих конденсаторов (рисунок 7). При работе с I²C понадобятся еще и подтягивающие резисторы.

Рис. 7. Типовая схема включения LSM6DSO

Рис. 7. Типовая схема включения LSM6DSO

Программирование LSM6DSO

Для работы с LSM6DSO компания STMicroelectronics предлагает использовать готовую библиотеку драйверов. В состав библиотеки входят драйверы для большинства датчиков производства STMicroelectronics, в том числе и для LSM6DSO. Драйверы не привязаны к конкретному процессору, то есть являются аппаратно независимыми.

Функции и определения для работы с LSM6DSO представлены в двух файлах: lsm6dso_reg.h и lsm6dso_reg.c.

В библиотеке также представлены готовые примеры, в частности — read_data_simple.c (простое чтение данных), tilt.c (работа с блоком обнаружения изменения наклона), free_fall.c (обнаружение свободного падения) и прочие. В отличие от самого драйвера, примеры написаны для микроконтроллеров STM32 и конкретных отладочных плат.

Для того чтобы использовать примеры, потребуются следующие отладочные платы:

Рис. 8. Внешний вид платы датчика STEVAL-MKI196V1

Рис. 8. Внешний вид платы датчика STEVAL-MKI196V1

Заключение

Шестиосевой инерционный модуль LSM6DSO дополнил семейство инерционных модулей iNemo производства STMicroelectronics. Он обеспечивает минимальное потребление и самый малый уровень шума по сравнению со своими предшественниками. Например, при совместной работе акселерометра и гироскопа уровень потребления составляет всего 0,55 мА при напряжении питания 1,8 В.

Широкий функционал LSM6DSO достигается благодаря различным встроенным блокам, среди которых стоит выделить автомат состояний, FIFO-буфер, шагомер, детектор изменения наклона, детектор значительных перемещений.

Все это делает LSM6DSO наиболее привлекательным выбором для широкого спектра приложений, начиная от систем стабилизации (OIS и EIS) и портативных устройств с аккумуляторным питанием (трекеров, смартфонов и так далее), и заканчивая IoT-устройствами.

Литература

  1. AN5192. Application note. LSM6DSO: always-on 3D accelerometer and 3D gyroscope – STMicroelectronics, 2018;
  2. https://www.st.com/content/st_com/en/products/mems-and-sensors.html;
  3. Вячеслав Гавриков. Как работать с MEMS-акселерометром. Пошаговое руководство на основе LIS3DHH. Новости электроники № 11/2018;
  4. 10 степеней свободы с набором датчиков X-NUCLEO-IKS01A2. Компэл, 2018;
  5. Александр Абалов, Евгения Савоськина. МЭМС для Интернета вещей – решения от ST. Новости электроники № 1/2017;
  6. Вячеслав Гавриков. LIS2DW12: новый акселерометр с ультранизким энергопотреблением. Новости электроники № 3/2017;
  7. Вячеслав Гавриков. BLE-устройство с МЭМС-датчиками? – легко, с программным пакетом BLUEMICROSYSTEM1. Новости электроники № 7/2016.

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее