IMU BMI160

Dec. 31st, 2021 07:44 pm
wunderwaffe: рабочее (Default)
[personal profile] wunderwaffe
Таки пришлось самому читать даташит на BMI160. Под катом выдержки, а здесь демка для ардуино для I2C подключения по умолчанию - https://disk.yandex.ru/d/YU4DAsyehBzGow
ЗЫ. Еще какие-то пидорасы сделали pdf защищенным от копирования, но для читалки Evince это пофиг.


Итаг, настройка BMI160 (адрес 0x69) производится

а) Записью байта в командный регистр 0x7E (стр 83)

Это не конфигурацыонный регистр, это запись команды на исполнение.
Соответственно надо протормозить ~100 мс на исполнение команды.

Для нас важны -

1) 0xB6 - перезагрузка и восстановление по умолчанию

2) команды для работы с PMU (Power Manage Unit) для гиры и акселя -

acc_set_pmu_mode: 0b000100nn
Sets the PMU mode for the accelerometer. The encoding for ‘nn’ is identical to
acc_pmu_status in Register (0x03) PMU_STATUS.

gyr_set_pmu_mode: 0b000101nn
Sets the PMU mode for the gyroscope. The encoding for ‘nn’ is identical to
gyr_pmu_status in Register (0x03) PMU_STATUS

nn таковы -

00 suspended; 01 norm; 10 low power; 11 fast start (only gyro).

Соответственно -

0b00010001 = 0x11 //норм для акселя
0b00010101 = 0x15 //норм для гиры

б) И настройки BW,ODR и RANGE для оных -

1) для BW,ODR акселя - регистр 0x40


Для Normal Mode* us=0; bwp=010.

ODR в герцах - 100/(2^(8-odr))

т.е. если odr = 0b0101 = 0d5; то
ODR=100/(2^(8-5))=100/(2^3)=100/8=12.5 герц
и так до 0b1100 = 0d12, или 1600 герц.


COF - 3dB Cutoff frequency [Hz]
RMS - RMS [mg] для +-8 g.
* для оси z.

2) для RANGE акселя регистр 0x41

0b00000011 +- 2g
0b00000101 +- 4g
0b00001000 +- 8g

3) ODR, BW для гиры - регистр 0x42



ODR то же, что и для акселя, только начинается с 25 и кончается на 3200 гц.



bwp для Normal Mode* равен 010.

4) для RANGE гиры регистр 0x43

0b00000000 +- 2000 gr/s
0b00000001 +- 1000 gr/s
0b00000010 +- 500 gr/s
0b00000011 +- 250 gr/s
0b00000100 +- 100 gr/s

__________
* помимо Normal mode существуют режимы дополнительной фильтрации -

Когда режим фильтра установлен в OSR2 (acc_bwp=0b001 и acc_us=0b0 для акселя или gyr_bwp=0b001 для гиры), используются обе ступени (стадии, каскада) цифрового фильтра, и данные передискретизируются с частотой передискретизации 2.

Это означает, что для определенной конфигурации фильтра, ODR должно быть в 2 раза выше, чем в режиме обычного фильтра.

И наоборот, для определенной конфигурации фильтра полоса пропускания фильтра будет вдвое меньше, чем полоса пропускания, достигаемая при той же ODR в обычном режиме.

Например, для ODR=50 Гц мы будем иметь частоту среза 3 дБ, равную 10,12 Гц.

Когда режим фильтра установлен на OSR4 (acc_bwp=0b000 и acc_us=0b0 или gyr_bwp=0b000), используются обе ступени цифрового фильтра, и данные передискретизируются с частотой передискретизации 4.

Это означает, что для определенной конфигурации фильтра, ODR должно быть в 4 раза выше, чем в режиме обычного фильтра.

И наоборот, для определенной конфигурации фильтра полоса пропускания фильтра будет в 4 раза меньше, чем полоса пропускания, достигаемая при том же ODR.

Например, для ODR=50 Гц мы будем иметь частоту среза 3 дБ, равную 5,06 Гц.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

wunderwaffe: рабочее (Default)
доктор Вандершпигель

April 2022

S M T W T F S
     12
34567 89
1011 12 1314 1516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 7th, 2025 05:50 am
Powered by Dreamwidth Studios