Значение "LSB/Unit" и "Unit/LSB" означает,

В настоящий момент я играю с акселерометром/магнитометром/термометром LSM303DLHC.

Это его спецификация: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00027543.pdf

Все работает очень хорошо, но я не знаю, как интерпретировать выходные значения. В таблице данных (стр. 9) говорится о "1 мг /LSB " (нет, это не миллиграмм: D) о чувствительности линейного ускорения в моей конфигурации. Что, черт возьми, это должно означать? То же самое с изменением выходного сигнала датчика температуры (8 LSB/° C) и установкой магнитного усиления (1100 LSB/gauss), только наоборот.

Например, что делать с этим выходом акселерометра: 16384? Это мое измеренное гравитационное ускорение.

Ответ 1

Теперь я получил трюк. В этом MEMS есть несколько вещей, которые вы должны знать, но которые не упоминаются в техническом описании:

  • Выходной регистр акселерометра составляет всего 12 бит, а не 16 бит, поэтому вам нужно сдвинуть значение вправо на 4 и умножить его на 0,001 G. Кроме того, это мало-endian.
  • Выходной регистр магнитометра - 16 бит, но большой. Кроме того, векторный порядок (X | Z | Y) не (X | Y | Z). Чтобы вычислить правильное значение, вам нужно разделить X и Y на 980 gauss⁻¹, тогда как 1100 gauss⁻¹ для Z.
  • Датчик температуры работает, но он не откалиброван. Таким образом, вы можете использовать его для измерения изменения температуры, но без абсолютных температур. Это также всего 12 бит, но большой-endian, и вы должны делить выход на 8 C⁻¹.

С помощью этой информации можно использовать LSM303DLHC. Но кто, черт возьми, это придумал? "Позвольте построить новый акселерометр, магнитометр и термометр в одной упаковке и завинтить пользователя, смешав длину слова и континент, не упоминая его в техническом описании".

Ответ 2

LSB/unit или Unit/LSB - это коэффициент (называемый чувствительностью), с помощью которого вы должны умножать необработанные данные датчика. Скажем, датчик A имеет регистры X, Y и Z, значения, поступающие в каждый из регистров, должны быть разделены/умножены на коэффициент LSB/unit или Unit/LSB. Это связано с тем, что в листе данных указано @в конкретной полномасштабной шкале, у вас будет такая высокая чувствительность (LSB/unit или Unit/LSB)

для LSB/Unit:

x lsb означает - 1 единица

1 lsb означает - 1/x единица

Значение lsb (значение в регистре) = (1/x) * (значение в регистре) - Применить unitary метод здесь.

аналогично для Unit/LSB вам нужно умножить чувствительность.

Вы можете построить акселерометр, магнитометр или датчик температуры или может быть гирометром в одном модуле, но что, если клиент/пользователь хочет только один датчик?

Rgds, Rp

Ответ 3

Техническая характеристика окончательно неясна в отношении интерпретации регистров ускорения. Решение Genesis Rock предполагает, что это 12 бит, который работает. (Другое решение состоит в том, чтобы предположить, что коэффициент усиления составляет 16 мг /LSB вместо 1 мг /LSB, но поскольку последние 4 бит ускорений, по-видимому, всегда являются нулями, первое решение имеет больше смысла).

Но как для температуры, так и для ускорения, если учесть только 12 самых значительных бит. Последние два бита по-прежнему также всегда равны нулю, поэтому эффективное разрешение будет 10-битным, что запутывает.

Я также не могу понять значение температуры, если нет неизвестного смещения, не указанного в таблице данных.

Я надеюсь, что другие могут подтвердить, что получают одинаковые результаты.

Ответ 4

Относительно 12-разрядного выхода акселерометра: флаг управления с высоким разрешением в регистре управления 4. Он отключен по умолчанию и нет информации о том, что означает высокое разрешение. Я предполагаю, что он может включить 16-разрядный вывод. Также на управляющем регистре 4 установлен флаг для определения точности выхода акселерометра. По умолчанию это немного по умолчанию. Лист данных довольно слаб в целом.

Ответ 5

Простой и неприятный факт заключается в том, что ни один из ответов не достиг цели вопроса.

Результат скрыт в другом параметре, указанном в спецификации: чувствительность. например, чувствительность FXAS21002C для чувствительности 2000 дпс составляет 62,5 мдс/лсб (= 0,0626 дпс/мсб). смещение нуля составляет 25 LSB, поэтому значение в единицах дпс составляет 0,0625 * 25 = 1,5625 дпс

тот же IMU имеет другую чувствительность для 250 дпс, которая составляет 7,825 мд/с/LSB (= 0,007825 дпс /LSB), и поскольку смещение также составляет 25 LSB, то при вычислении будет получено реальное значение 0,0078125 * 25 = 0,1953 дпс

Пример можно найти здесь: https://learn.adafruit.com/comparing-gyroscope-datasheets/overview