Частота выдачи данных (ODR)
Цифровой датчик не измеряет непрерывно: он выдаёт отсчёты с определённой частотой, и читать его чаще бессмысленно — придут те же данные. Эту частоту называют ODR. Разбираем, как она задаётся у двух популярных датчиков и как связана с фильтрами и потреблением.
Обновлено Редакция GAW
Частота выдачи данных (output data rate, ODR) — сколько новых отсчётов в секунду выдаёт цифровой датчик. Это частота, с которой обновляются его выходные регистры: читать их чаще можно, но новых данных не будет. ODR связана с частотой Найквиста — сигналы быстрее половины ODR датчик передать не может.
Как задаётся у MPU-6050
В MPU-6050 частоту задаёт делитель в регистре SMPLRT_DIV (RM-MPU-6000A-00, разд. 4.2):
где базовая частота гироскопа — 8 кГц при выключенном цифровом фильтре нижних частот и 1 кГц при включённом. Акселерометр выдаёт данные с частотой 1 кГц, и при большем ODR его отсчёты повторяются. Цифровой фильтр задаётся регистром CONFIG: от полосы 260 Гц без задержки до 5 Гц с задержкой около 19 мс (разд. 4.3). Полосу выбирают меньше половины ODR.
Как задаётся у BMP280
У BMP280 отдельного делителя нет: в нормальном режиме цикл состоит из измерения и паузы tstandby, а время измерения зависит от передискретизации (разд. 3.8):
| Режим | Передискретизация давления / температуры | Время измерения, тип. / макс. |
|---|---|---|
| Ultra low power | ×1 / ×1 | 5,5 / 6,4 мс |
| Standard resolution | ×4 / ×1 | 11,5 / 13,3 мс |
| Ultra high resolution | ×16 / ×2 | 37,5 / 43,2 мс |
ODR примерно равна 1 / (время измерения + tstandby): для режима ultra high resolution с паузой 62,5 мс Bosch даёт 10,0 Гц, с паузой 0,5 мс — 26,3 Гц (табл. 13 и 15; формула — наше пояснение, она сходится с таблицей). Шум дополнительно сглаживает БИХ-фильтр датчика, но он работает по отсчётам и потому тоже зависит от ODR.
Как выбрать
ODR выбирают по самому быстрому полезному изменению сигнала с запасом не меньше двух раз. Повышать её сверх нужного невыгодно: потребление растёт пропорционально числу измерений (BMP280, табл. 12), а программа тратит время на лишние чтения. Чтобы не опрашивать датчик впустую, используют вывод готовности данных или прерывание, если датчик их поддерживает.
Частые вопросы
Как задать частоту отсчётов MPU-6050?
Регистром SMPLRT_DIV (25): Sample Rate = базовая частота / (1 + SMPLRT_DIV). Базовая частота гироскопа — 8 кГц при выключенном цифровом ФНЧ и 1 кГц при включённом (RM-MPU-6000A-00, разд. 4.2). Например, при включённом ФНЧ и SMPLRT_DIV = 9 получается 100 Гц (наш пересчёт). Акселерометр обновляется не чаще 1 кГц, поэтому при большей частоте его отсчёты повторяются.
Зачем снижать ODR, если можно читать чаще?
Ради потребления и шума. У BMP280 ток пропорционален числу измерений в секунду: Bosch нормирует потребление на 1 Гц и предлагает умножать на фактический ODR (табл. 12). Для погодной станции хватает одного измерения в минуту в принудительном режиме (табл. 15), а лишние отсчёты только тратят батарею.
Какой ODR нужен, чтобы ничего не пропустить?
Хотя бы вдвое выше самой быстрой составляющей сигнала, которая вам нужна, — это частота Найквиста. Bosch приводит пример: колебания давления от открытых окон медленнее 5 Гц, поэтому ODR 10 Гц достаточно (BMP280, разд. 3.3.3). Составляющие выше половины ODR надо подавить фильтром до выборки, иначе они наложатся на полезный сигнал.
Источники
- TDK InvenSense. MPU-6000 and MPU-6050 Register Map and Descriptions (RM-MPU-6000A-00, Revision 4.2, 19 августа 2013) — разд. 4.2, регистр 25 SMPLRT_DIV: Sample Rate = Gyroscope Output Rate / (1 + SMPLRT_DIV), выходная частота гироскопа 8 кГц при выключенном цифровом ФНЧ (DLPF_CFG = 0 или 7) и 1 кГц при включённом; выходная частота акселерометра 1 кГц, при Sample Rate выше 1 кГц один и тот же отсчёт акселерометра выдаётся повторно; по Sample Rate обновляются регистры датчиков, FIFO и DMP; разд. 4.3, регистр 26 CONFIG: полосы цифрового ФНЧ от 260 до 5 Гц для акселерометра и от 256 до 5 Гц для гироскопа, задержка от 0 до 19,0 мс
- Bosch Sensortec. BMP280 Digital Pressure Sensor: Data sheet (BST-BMP280-DS001-26, revision 1.26, October 2021) — разд. 3.3.3 (БИХ-фильтр), сноска 6: колебания давления от открывания окон медленнее 5 Гц, поэтому ODR 10 Гц достаточно по теореме Найквиста; разд. 3.7, табл. 12: потребление нормировано на ODR 1 Гц и умножается на фактический ODR; разд. 3.8: в принудительном режиме частота зависит от передискретизации, в нормальном — от передискретизации и паузы tstandby; табл. 13: время измерения 5,5 / 6,4 мс (×1), 7,5 / 8,7 (×2), 11,5 / 13,3 (×4), 19,5 / 22,5 (×8), 37,5 / 43,2 мс (×16 давление, ×2 температура), типичное / максимальное; табл. 15: «ultra high resolution» с tstandby 62,5 мс — ODR 10,0 Гц, с tstandby 0,5 мс — 26,3 Гц
Нашли ошибку?
Смотрите также
- MPU-60506 осей по I²C: выводы, адрес, регистры, пересчёт кодов, код Arduino
- BMP280Барометр I²C и SPI: питание, адреса, точность, шум, режимы, отличие от BME280
- ПередискретизацияOversampling: дополнительные биты АЦП усреднением
- БИХ-фильтрЦифровой фильтр с обратной связью: формула, коэффициент, время отклика
- Частота НайквистаПоловина частоты выборки и наложение спектров
- Акселерометры и гироскопыBMI160, BMI270, BMI323, BNO055: параметры, дрейф гироскопа, слияние, подключение