Запис #25 "DMP в MPU-6050 (GY-521). Загальний опис. "

Додано: 2016-02-17 03:05:45 'admin

DMP (Digital Motion Processor) - система, що дозволяє проводити складні арифметичні розрахунки для отримання кінцевих даних по осям гіроскопа та акселерометра силами самого датчика, мінімально навантажуючи ведучий процесор.

Нажаль, у офіційній документації також (як і калібрування) відсутня будь-яка згадка і про DMP. Усі регістри, біти управління, переривань та ін. просто проігноровані в загальному описі регістрів MPU-6050. Через що відбувається таке скриття інформації не зрозуміло. Хоча тут може бути якась певна мета, наприклад, комерційна.

Натомість, якщо зареєструватись на сайті компанії-виробника InvenSense, можна отримати доступ до розділу для розробників та конструкторів систем, що основані на їх продуктах. Серед них є бібліотека MotionDriver, яка призначена для отримання інформації про рух об"єкта із датчиків. В цій бібліотеці вже присутня деяка інформація про DMP.

Як виявилось, DMP - це не тільки якась фізична процесорна апаратна архітектура, це ще й цілий програмний комплекс із власним кодом (прошивкою), кофігурацією, регістрами та ін. 

Отже, для того, щоб на борту датчика запрацювала ця опція необхідно зробити декілька кроків:
- прошити датчик необхідною прошивкою
- сконфігорувати його
- увімктнути DMP
- розрахувати калібровочні дані
- застовувати буфер FIFO
- увімкнути переривання по готовності даних DMP (ніжка INT датчика)

Після цього датчик замість "голих" даних почне видавати результат вже перетворений у реальні показники. Зчитування даних відбувається із буфера FIFO, а не з регістрів. Після цього вони переводяться процесором у зрозумілі дані та видаються користувачу.

Слід враховувати, що всі ці кроки (включаючи прошивку) відбуваються при кожному ввімкнені системи. Так як пам"ять DMP енергозалежна, і тому дані при вимкнені системи не зберігаються.

Для того, щоб детально ознайомитись із роботою DMP і вивчити всі процеси, які проходять при роботі DMP, можна скористатись бібліотекою Джефа Роувберга, яка входить у бібліотеку управління мікросхемами MPU-6050. Посилання на файл. Там також присутня прошивка, конфігурація та опис структури даних в буфері FIFO.

Також ця інформація знаходиться у файлах MotionDriver, але я так бібліотеку і не скачав. Після реєстрації з мене ще затребували пояснень на емайл фірми InvenSense, з якою метою мені ці файли необхідні. Можливо, до когось вони більш лояльні. І я знайшов до кого.. :) Нажаль, в загальний доступ викласти не можу.

В загальному, поки я збирав усю цю інформацію по датчику, склалось враження, що InvenSense напів воєна американська фірма, яка має в свому арсеналі ще багато цікавих речей, але ця інформація поки що закрита від широкого кола розробників та користувачів.

Коментарі: