Jump to content

    

Recommended Posts

Добрый день всем.

 

Перерыл форум и инет, но ответа на свой вопрос не нашел.

 

Работаю с 3-х осевым датчиком ускорения ST LIS331HH, в режиме SPI 4-х проводном.

По документации (в коменте к общей таблице) сказано, что он 12-и битный.

Данные при этом выдаются в 16 битном формате.

Опытным путем выяснил, что 4 младших бита незначащих, т.е. данные прижаты к старшему биту (влево).

Углы измеряются отлично, все ок.

 

Но вот проблема не могу пересчитать полученные цифры в абсолютное значение ускорения свободного падения (конкретно просто в g, т.е. не в m/c2)

При повороте датчика так, что бы на одну из осей спроецировалось ускорение свободного падения получаю число, при пересчете которого получаю не 1g, а 2.9g

Смотрел на нескольких датчиках, цифры везде идут одинаковые.

Проверял в разных диапазонах, в пересчете на g все равно получается 2.9g. Нахожусь в нормальных условиях - статично.

 

В диапазоне +/- 24g получаю 245 единиц в максимальной проекции.

В диапазоне +/-6g получаю 950 единиц в максимальной проекции.

(в диапазоне +/-12g цифр не помню, но в пересчете получаю те же 2.9g

 

Соответственно паспортная погрешность смещения 70mg видна на разных датчиках - в единицах это получается +/- 5 ед в диапазоне +/- 24g (в зависимости от диапазона величина разная)

 

Пересчет в g делаю так:

пример для диапазона +/-24g

245ед*48.0/4096=2.87g

 

Для того что бы получить что-то в районе 1g число на входе должно быть в районе 85 единиц - получается смещение 159 единиц (это соответственно для диапазона +/-24g). Про такую величину смещения в документации я что-то ничего не находил. Это уже всяко больше 70mg паспортных.

 

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

 

Соответственно если 4096 в формуле заменить на 65536 - (а прочитанные данные не сдвигать вправо на 4 бита) получаем тоже значение 2.9g в пересчете.

 

Может быть кто-нибудь, кто работал с этим датчиком укажет мне на ошибку?

Share this post


Link to post
Share on other sites
Но вот проблема не могу пересчитать полученные цифры в абсолютное значение ускорения свободного падения (конкретно просто в g, т.е. не в m/c2)

При повороте датчика так, что бы на одну из осей спроецировалось ускорение свободного падения получаю число, при пересчете которого получаю не 1g, а 2.9g

Смотрел на нескольких датчиках, цифры везде идут одинаковые.

Проверял в разных диапазонах, в пересчете на g все равно получается 2.9g. Нахожусь в нормальных условиях - статично.

Может вычесть 0,9 и разделить на 2?

 

Sensitivity describes the gain of the sensor and can be determined e.g. by applying 1 g acceleration to it. As the sensor can measure DC accelerations this can be done easily by pointing the axis of interest towards the center of the earth, noting the output value, rotating the sensor by 180 degrees (pointing to the sky) and noting the output value again. By doing so, ±1 g acceleration is applied to the sensor. Subtracting the larger output value from the smaller one, and dividing the result by 2, leads to the actual sensitivity of the sensor. This value changes very little over temperature and also time. The sensitivity tolerance describes the range of Sensitivities of a large population of sensors.

 

 

Share this post


Link to post
Share on other sites
Может вычесть 0,9 и разделить на 2?

 

Sensitivity describes the gain of the sensor and can be determined e.g. by applying 1 g acceleration to it. As the sensor can measure DC accelerations this can be done easily by pointing the axis of interest towards the center of the earth, noting the output value, rotating the sensor by 180 degrees (pointing to the sky) and noting the output value again. By doing so, ±1 g acceleration is applied to the sensor. Subtracting the larger output value from the smaller one, and dividing the result by 2, leads to the actual sensitivity of the sensor. This value changes very little over temperature and also time. The sensitivity tolerance describes the range of Sensitivities of a large population of sensors.

 

 

При точном измерении углов подобная калибровка необходима, но в данном случае не объясняется непосредственно причина формирования 245 ед на 1g в режиме +/- 24 g

 

Я все же ожидал видеть с датчика число хотя бы как-то приближенно соответствующее паспортному значению по чувствительности (для диапазона +/- 24g = 0,012 g на ед).

Иначе мне совершено непонятно, что же тогда делается на заводе и заливается в регистры? И зачем оно восстанавливается при запуске чипа (boot)?

 

Хотелось бы получить понимание в чем именно моя ошибка.

 

Или в большинстве MEMS датчиков данная характеристика никак не нормируется, данные идущие с датчика никогда и близко не соответствуют паспортным и даже для неточных измерений углов или ударов, требуется калибровка?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this