Робота з акселерометром LIS3LV02DL та LIS3LV02DQ
Короткий опис
Мікросхеми LIS3LV02DL і LIS3LV02DQ є триосьовим акселерометром, який складається з чутливого елемента та інтерфейсного елемента, що передає за послідовними інтерфейсами I²C/SPI вимірюване прискорення. Спеціальний процес виробництва інерційних сенсорів та виконавчих механізмів у кремнії, розроблений компанією ST, використовується для реалізації чутливого елемента, здатного детектувати прискорення. Інтерфейсний елемент виконаний за технологією CMOS налаштованої на кращу відповідність характеристик чутливого елемента. Під час розробки спеціальної схеми ця технологія дозволила отримати високий рівень інтеграції. Акселерометри мають вибір вимірювань, що вибирається користувачем ±2g і ±6g і здатні вимірювати прискорення по всіх осях зі смугою пропускання 640Гц. Смуга пропускання може бути обрана відповідно до вимог їх застосування. Здатність проводити само-тестування дозволяє користувачеві перевірити працездатність акселерометра. Можна задати граничне значення для прискорення, перевищення якого хоча б по одній осі викличе генерацію переривання акселерометром. LIS3LV02DL та LIS3LV02DQ доступні у пластиковому SMD корпусі та специфікуються на температурному діапазоні від -40ºC до +80ºC. LIS3LV02DL і LIS3LV02DQ належать до сімейства виробів, що підходять для вирішення безлічі завдань:
- детектування вільного падіння
- активація функцій у портативних пристроях рухом
- протиугінні системи та інерційна навігація
- пристрої введення для ігор та віртуальної реальності
- моніторинг та компенсація вібрації
- визначення кута нахилу


Таблиця 1: Опис висновків акселерометрів LIS3LV02DL та LIS3LV02DQ.
Термінологія
Чутливість
Чутливість характеризує коефіцієнт передачі сенсора і може бути легко визначена додатком до нього прискорення 1g. Сенсор може виміряти постійні прискорення. Можна запам'ятати вихідне значення сенсора коли вісь, що цікавить, спрямована до центру Землі, і вихідне значення після повороту осі на 180 градусів (вісь спрямована в небо). В результаті до акселерометра буде додане прискорення ±1g. Реальну чутливість сенсора можна отримати віднімаючи більше значення з меншого і ділячи отриману різницю навпіл. Це значення майже не змінюється від температури та з часом. Допуск чутливості визначає інтервал значень чутливості для великої кількості сенсорів.
Рівень зміщення нуля визначає відхилення сигналу, що видається від ідеального, в умовах відсутності прискорення сенсора. У стабільному стані на горизонтальній поверхні сенсор повинен виміряти 0g по осі X і 0g по осі Y, тоді як вісь Z повинна виміряти 1g. Значення, що видається, має знаходитися точно в середині динамічного діапазону сенсора. Зміщенням рівня нуля буде називатися відхилення значення від ідеального. Воно певною мірою є результатом «навантаження», що діє на прецизійний MEMS сенсор. Внаслідок цього рівень нуля може трохи змінитись після встановлення акселерометра на друковану плату або під дією великого механічного навантаження. Зміщення змінюється в залежності від температури. Рівень нуля є стабільним для сенсора протягом усього його терміну служби. Допуск рівня нуля визначає інтервал значень зсуву для сукупності сенсорів.
Само-тестування
Само-тестуваннядозволяє перевірити механічну та електричну частини сенсора шляхом переміщення інерційної маси під дією тестової електростатичної сили. Якщо біт ST регістру CTRL_REG1 встановлено в '0', функція само-тестування вимкнена. Якщо біт ST регістра CTRL_REG1 встановлений в '1', сенсор прикладається стимулююча сила, тим самим моделюється певне прискорення. В результаті у значеннях, що видаються акселерометром, буде зафіксовано зміну, яка співвідноситься з обраним діапазоном вимірювань і залежить від напруги живлення і чутливості акселерометра. У режимі само-тестування, акселерометр видає значення, які є сумою алгебри сигналів викликаних прискоренням, що діє на сенсор і тестової електростатичної сили. Акселерометр працює правильно, якщо вихідні значення змінюються в межах амплітуди, специфікації.
Функціональні можливості
Як уже говорилося, LIS3LV02DL і LIS3LV02DQ це високопродуктивні, мало споживаючі, 3-осьові акселерометри з цифровим виходом. Вони складаються з чутливого елемента та інтерфейсної частини, що передає у зовнішній світ інформацію про виміряне прискорення.
Чутливий елемент
Для створення поверхневого мікромеханічного акселерометра використовується запатентований тех. процес. Технологія дозволяє виконувати підвішені кремнієві структури, які з'єднані з підкладкою всього в декількох точках, які називаються якорями. Ці структури здатні вільно переміщатися у напрямі прискорення, що розпізнається. Для того щоб забезпечити сумісність з традиційними техніками корпусування мікросхем, спеціальна кришка, що запобігає блокуванню рухомих частин після фази виливки пластикового корпусу, розміщена над чутливим елементом. Колиприкладається прискорення до сенсора, контрольна маса зсувається зі своєї початкової позиції і призводить до розбалансування ємнісного напівмоста. Це розбалансування вимірюється інтегруванням заряду, викликаного імпульсом напруги, поданим на чутливий конденсатор. У стані спокою номінальне значення ємності конденсаторів близько кількох пФ, під дією прискорення максимальна зміна ємності сягає 100фФ.
Інтерфейсний блок
Вимірювальний ланцюг складається з мало-шумного конденсаторного підсилювача, який переводить в напругу ємнісну розбалансування MEMS-сенсора, а також трьох ΣΔ аналого-цифрових перетворювачів, по одному на кожну вісь, які переводять сигнал, що виробляється в цифровий бітовий потік. ΣΔ - перетворювачі з'єднані з відновлюючим фільтром, який прибирає високочастотні шумові компоненти, викликані квантуванням і видає цифрові слова високої розрядності, але на низькій частоті. Підсилювач і ΣΔ перетворювачі працюють на частотах 61.5 і 20.5 кГц відповідно. Дані на виході фільтра, що відновлює, видаються з частотою в інтервалі від 40 до 2560Гц, яка залежить від обраної користувачем ступеня децимації. Дані про прискорення можуть бути отримані через I²C/SPI інтерфейс, а значить мікросхема може бути легко пов'язана з мікроконтролером. LIS3LV02DL та LIS3LV02DQ мають сигнал готовності даних (RDY), який сигналізує про готовність нових вимірювань. Таким чином, у цифрових системах, де задіяно цей акселерометр, спрощується синхронізація даних. Акселерометри можуть бути налаштовані на генерацію сигналу переривання від модуля інерційної активації, від детектора напряму та вільного падіння. Необхідні налаштування можна виконати для кожної чутливої осі акселерометраокремо.
Заводське калібрування
Акселерометри LIS3LV02DL і LIS3LV02DQ мають заводське калібрування чутливості та зміщення рівня нуля. Коригувальні значення записані у внутрішній енергонезалежній пам'яті. Як тільки акселерометр вмикається, ці значення завантажуються в регістри, яких можна звертатися під час роботи. Таким чином, можна працювати з акселерометром без проведення етапу самостійного калібрування.
Поради щодо застосування
Живлення для ядра акселерометра подається лінією Vdd, а пінів вводу-виводу лінією Vdd_IO. Якомога ближче до висновку Vdd повинні бути встановлені конденсатори, що розв'язують по живленню (100нФ керамічні, 10мкФ алюмінієві). Для того щоб мікросхема працювала правильно, на неї повинні бути подані одночасно всі необхідні джерела напруги та землі. Допускається відключення Vdd із збереженням Vdd_IO, у цьому випадку модуль обміну даними збереже свій робочий стан, а ланцюг вимірювання прискорень буде вимкнено. Для доступу до налаштувань акселерометра та читання вимірюваного прискорення використовуються послідовні інтерфейси I²C/SPI. Для роботи з інтерфейсом I²C сигнал CS повинен бути підтягнутий у високий стан, а сигнал SDO повинен бути залишений плаваючим. За допомогою інтерфейсу I²C/SPI можуть бути запрограмовані призначення, пороги спрацьовування та часові діаграми для виходу RDY/INT.
Цифрові інтерфейси
Доступ до регістрів, вбудованих в LIS3LV02DL і LIS3LV02DQ, може бути виконаний як за інтерфейсом I²C, так і за інтерфейсом SPI. Останній може бути налаштований працювати в 3-х чи 4-х проводном режимі. Обидва інтерфейси відображені на одні й ті ж висновки. Для вибору інтерфейсу I²C висновок CS повинен бути підтягнутий у високий стан (під'єднаний до Vdd_IO). Розподілвисновків послідовних інтерфейсів та його призначення зазначені у Таблиці 1.
Інтерфейс I²C
LIS3LV02DL та LIS3LV02DQ на шині I²C реалізують slave-пристрій. I²C застосовується для запису та читання вмісту регістрів. Далі в тексті використовується наступна термінологія, що відноситься до шини I²C.
В інтерфейсі I²C використовуються два сигнали: SCL – лінія тактування та SDA – лінія даних. Остання є двонаправленою і використовується як передачі, так прийому даних. Обидві лінії через внутрішній резистор, що підтягує, з'єднані з Vdd_IO. Коли інтерфейс вільний, обидві лінії знаходяться у високому стані. Інтерфейс I²C сумісний як із високошвидкісним режимом (400 кГц), так і зі звичайним.
Управління через I²C
Таблиця 2: Master пише один байт у slave
Інтерфейс SPI

SPI у 3-х провідному режимі
3-х дротовий режим активується установкою в '1' біта SIM у регістрі CTRL_REG2.

У 3-х провідному режимі також можлива операція читання/запису блоку даних.
Карта регістрів LIS3LV02DL та LIS3LV02DQ
Регістри позначені як «зарезервовані» не повинні змінюватися. Запис у такі регістри може призвести до безповоротного пошкодження акселерометра.
Регістри, вміст яких завантажується під час старту акселерометра, не повинні змінюватися. Вони містять заводське калібрування акселерометра. Вміст цих регістрів автоматично відновлюється під час подачі живлення.
Опис регістрів
Акселерометр містить у собі набір регістрів, який використовується для управління роботою мікросхеми та отримання інформації про прискорення. У регістрах від OFFSET_X до GAIN_Z містяться значення заводського калібрування, у нормальному режимі роботи акселерометра ці значенняміняти не потрібно.
WHO_AM_I (0Fh)
OFFSET_X (16h)
OFFSET_Y (17h)
OFFSET_Z (18h)
GAIN_X (19h)
GAIN_Y (1Ah)
GAIN_Z (1Bh)
CTRL_REG1 (20h)
PD0, PD1дозволяють вивести акселерометр із режиму зниженого споживання. Акселерометр знаходиться в цьому режимі, якщо PD1, PD0 = '00' (значення за замовчуванням після завантаження). Акселерометр знаходиться в нормальному режимі, якщо хоча б один біт з PD1, PD0 встановлений в одиницю.DF1, DF0дозволяють налаштувати рівень децимації внутрішнього фільтра, тим самим вибрати частоту, з якої будуть проводитися вибірки значень прискорення. Значення за умовчанням '00' відповідає частоті даних 40Гц. Зміною вмісту DF1, DF0 на '01', '10' і '11', частота видачі даних буде встановлюватися відповідно 160Гц, 640Гц і 2560Гц.STбіт використовується включення функції само-тестування. Якщо біт встановлений в '1', відбудеться зміна даних, таким чином можна перевірити роботу всього вимірювального ланцюжка.Zen– біт включає вимірювальний канал осі Z, якщо встановлений в '1'. Значення за промовчанням '1'.Yen– біт включає вимірювальний канал по осі Y, якщо встановлений у '1'. Значення за промовчанням '1'.Xen– біт включає вимірювальний канал по осі X, якщо встановлений у '1'. Значення за промовчанням '1'.
CTRL_REG2 (21h)
CTRL_REG3 (22h)
ECKбіт вибирає для тактування або внутрішній генератор, або сигнал виведення CK. У другий випадок внутрішній генератор відключається і знижується споживання акселерометра. Зовнішній тактовий сигнал має бути в діапазоні 1.045МГц ±10% і мати шпаруватість 50%.

HPDDбіт подає фільтровані або нефільтровані (Малюнок 2) дані на вхід детектора напрямку. Якщо біт в '0', детектор напряму видасть переривання за даними, що надходять безпосередньо від цифрового блоку або блоку температурної компенсації. Якщо HPDD встановлено в '1', переривання видаються за даними, відфільтрованим високочастотним фільтром.HPFFбіт працює подібно HPDD, але для детектора вільного падіння та блоку інерційної активації.FDSбіт включає (FDS = 1) або виключає (FDS = 0) високочастотний фільтр в/з сигнального ланцюга сенсора. Якщо біт FDS встановлений в '0' (значення за умовчанням), дані, що надходять з блоку корекції зміщення та чутливості, надходять прямо на читання регістру.CFS1, CFS0біти визначають коефіцієнт Hpc, що використовується для розрахунку частоти зрізу високочастотного фільтра(за рівнем -3dB):
Hpc приймає значення 512, 1024, 2048, 4096 відповідно за CFS = 00, 01, 10, 11. ODRx – частота видачі даних, вибрана бітами DF1, DF0 регістра CTRL_REG1. На малюнку нижче побудовано передавальні характеристики високочастотного фільтра, отримані для різних частот видачі даних та коефіцієнтів Hpc.
