BMP280 — цифровой датчик давления и температуры Bosch
BMP280 — барометр Bosch Sensortec в корпусе 2,0 × 2,5 мм: абсолютное давление и температура по I²C или SPI. Его берут для высотомеров, метеостанций и определения этажа, а на модулях его часто путают с BME280. Разбираем по даташиту питание, адреса, точность, режимы, выводы и чем он отличается от BME280 и BMP180.
Обновлено Редакция GAW
BMP280 — абсолютный барометр: пьезорезистивная мембрана, АЦП и схема компенсации в одном металлическом корпусе LGA. Микросхема выдаёт сырые коды давления и температуры, а физические величины считают по формулам из даташита с заводскими калибровочными коэффициентами, записанными в её память. Bosch называет BMP280 преемником BMP180: меньше корпус, ниже шум и ток, добавлены SPI и фильтр. Сравнение с другими барометрами — в статье «Датчики давления», пересчёт давления в высоту — в калькуляторе барометрической высоты.
Коротко
- Питание — VDD 1,71–3,6 В (пульсации до 50 мВ размаха), VDDIO 1,2–3,6 В; предел 4,25 В.
- Интерфейс — I²C до 3,4 МГц (адреса 0x76 и 0x77) или SPI до 10 МГц, 3 или 4 провода.
- Давление — 300–1100 гПа; ±1,0 гПа абсолютная и ±0,12 гПа относительная точность (типично).
- Шум — 1,3 Па без фильтра и 0,2 Па с фильтром, то есть 11 и 1,7 см высоты.
- Температура — ±0,5 °C при 25 °C, ±1,0 °C при 0…65 °C.
- Ток — 2,8 мкА типично при одном измерении в секунду, 0,1 мкА во сне.
- Корпус — LGA-8 2,0 × 2,5 × 0,95 мм, шаг 0,65 мм, вентиляционное отверстие в крышке.
Распиновка
Нумерация такая же, как у BME280: в виде сверху выводы идут по часовой стрелке, вывод 1 — в углу у вентиляционного отверстия. На рисунке 14 даташита Bosch даёт оба вида: сверху (площадки не видны) и снизу, со стороны площадок, где та же нумерация идёт против часовой стрелки. Посадочное место рисуют по виду снизу и чертежу корпуса, а не зеркалят вид сверху.
| Вывод | Обозначение | Назначение | При I²C | При SPI (4 провода) |
|---|---|---|---|---|
| 1 | GND | общий | GND | GND |
| 2 | CSB | выбор микросхемы, активный ноль, внутренняя подтяжка | на VDDIO | CS |
| 3 | SDI | данные | SDA | MOSI |
| 4 | SCK | тактовый сигнал | SCL | SCK |
| 5 | SDO | данные / младший бит адреса | GND — 0x76, VDDIO — 0x77 | MISO |
| 6 | VDDIO | питание интерфейса | VDDIO | VDDIO |
| 7 | GND | общий | GND | GND |
| 8 | VDD | питание датчика | VDD | VDD |
Интерфейс выбирается по CSB: на VDDIO — I²C; первый же ноль на CSB включает SPI до следующего включения питания. Поэтому для I²C вывод CSB подключают прямо к VDDIO, а не к выводу микроконтроллера, который при старте может оказаться в нуле. На обоих питаниях Bosch рекомендует по конденсатору 100 нФ. Если VDDIO подано, а VDD нет, выводы интерфейса остаются в высокоимпедансном состоянии и не мешают шине.
Параметры
По таблице 2 даташита. Типичные токи и времена — при 25 °C. Минимумы и максимумы дрейфов, смещений и температурных коэффициентов у Bosch — это ±3σ за срок службы, но для абсолютной точности давления и температуры в таблице даны только типичные значения.
| Параметр | Значение |
|---|---|
| Питание VDD / VDDIO | 1,71–3,6 В (тип. 1,8 В) / 1,2–3,6 В |
| Ток при 1 измерении в секунду, наименьшая мощность | 2,8 мкА тип., 4,2 мкА макс. |
| Пиковый ток при измерении давления | 720 мкА тип., 1120 мкА макс. |
| Ток при измерении температуры | 325 мкА |
| Ток во сне / в паузе режима normal | 0,1 и 0,2 мкА тип., до 0,3 и 0,5 мкА |
| Давление: диапазон с полной точностью | 300–1100 гПа при 0…65 °C |
| Давление: абсолютная точность | ±1,0 гПа при 0…65 °C, ±1,7 гПа при −20…0 °C |
| Давление: относительная точность | ±0,12 гПа при 700–900 гПа, 25…40 °C, VDD = 3,3 В |
| Давление: температурный коэффициент смещения | ±1,5 Па/К (12,6 см/К) |
| Давление: разрешение / шум | 0,0016 гПа / 1,3 Па без фильтра, 0,2 Па с фильтром |
| Влияние питания | ±0,005 Па/мВ |
| Долговременная стабильность | ±1,0 гПа за 12 месяцев |
| Дрейф после пайки | от −0,5 до +2 гПа |
| Температура: точность / разрешение | ±0,5 °C при 25 °C, ±1,0 °C при 0…65 °C / 0,01 °C |
| Время до первого обмена после включения | 2 мс |
| Частота измерений при ×1 | 157 Гц мин., 182 Гц тип. |
Ток при одном измерении в секунду в даташите встречается трижды и с разными цифрами: 2,7 мкА на первой странице, 2,74 мкА в таблице 12 для режима «ultra low power» и 2,8 мкА в таблице 2. Различие в пределах округления; для расчёта батареи берём максимум 4,2 мкА. Абсолютная точность ±1 гПа на первой странице указана для 950–1050 гПа и 0…40 °C, а в таблице — для всего диапазона 300–1100 гПа и 0…65 °C. Температура, как и у BME280, — это температура кристалла: по примечанию к таблице она обычно выше окружающей.
Режимы и настройки
Режимов три. Sleep — сон после включения питания. Forced — одно измерение по команде, затем сон. Normal — непрерывные измерения с паузой t_sb из ряда 0,5; 62,5; 125; 250; 500; 1000; 2000; 4000 мс. Для давления и температуры задают передискретизацию от ×1 до ×16, для давления — IIR-фильтр с коэффициентом 2, 4, 8 или 16; после записи нового коэффициента фильтр начинает заново.
| Задача по Bosch | Режим | Давление / температура | Фильтр | Ток, мкА | Частота, Гц | Шум, см |
|---|---|---|---|---|---|---|
| метеостанция | forced | ×1 / ×1 | выкл. | 0,14 | 1/60 | 26,4 |
| определение этажа | normal | ×4 / ×1 | 4 | 50,9 | 7,3 | 6,4 |
| обнаружение падения | normal | ×2 / ×1 | выкл. | 509 | 125 | 20,8 |
| навигация в помещении | normal | ×16 / ×2 | 16 | 650 | 26,3 | 1,6 |
Время одного измерения растёт с передискретизацией: 5,5 мс типично (6,4 мс максимум) при ×1 и 37,5 мс (43,2 мс) при ×16 для давления и ×2 для температуры. Наш вывод: в режиме forced данные читают не раньше, чем через максимальное время из таблицы 13, или ждут, пока сбросится бит 3 (measuring) регистра статуса 0xF3.
Чем BMP280 отличается от BME280 и BMP180
| BMP180 | BMP280 | BME280 | |
|---|---|---|---|
| Что измеряет | давление, температуру | давление, температуру | давление, температуру, влажность |
| Корпус | 3,6 × 3,8 мм | 2,0 × 2,5 × 0,95 мм | 2,5 × 2,5 × 0,93 мм |
| Наименьшее VDD / VDDIO | 1,80 / 1,62 В | 1,71 / 1,20 В | 1,71 / 1,2 В |
| Интерфейсы | I²C | I²C, SPI | I²C, SPI |
| Шум давления | 3 Па | 1,3 Па | 1,3 Па |
| Идентификатор 0xD0 | — | 0x58 | 0x60 |
Столбцы BMP180 и BMP280 — по таблице 1 даташита BMP280, столбец BME280 — по даташиту BME280. По регистрам давления и температуры BME280 совместим с BMP280, поэтому одна библиотека часто поддерживает оба; но датчика влажности у BMP280 нет, и такие модули продают и под именем BME280 — проверяют по идентификатору. Подробности о BME280 — в его карточке, об адресах на шине — на странице «Адрес I²C», о подтяжках — в калькуляторе подтяжки I²C.
Частые вопросы
Как отличить BMP280 от BME280 на модуле?
Надёжнее всего — прочитать регистр 0xD0: BMP280 возвращает 0x58, BME280 — 0x60. Есть и внешнее отличие: по чертежам Bosch корпус BMP280 — 2,0 × 2,5 мм, прямоугольный, а BME280 — квадратный 2,5 × 2,5 мм. Если библиотека для BME280 сообщает о неверном идентификаторе, на плате, скорее всего, стоит BMP280, у которого нет датчика влажности.
Какой адрес I²C у BMP280?
0x76, если вывод SDO на общем проводе, и 0x77, если на VDDIO. Вывод SDO нельзя оставлять свободным — адрес тогда не определён. Адрес 0x77 совпадает с адресом BMP180, а оба адреса — с BME280, так что на одной шине помещаются только два таких датчика.
С какой точностью BMP280 измеряет высоту?
Изменение высоты — хорошо: относительная точность давления ±0,12 гПа, это около ±1 м, а шум с фильтром — 0,2 Па, или 1,7 см. Абсолютная высота над уровнем моря — плохо: абсолютная точность давления ±1,0 гПа — это примерно ±8 м (наш пересчёт по соотношению Bosch 0,12 гПа ≈ 1 м), к ней добавляются дрейф после пайки до +2 гПа и погода. Поэтому высоту отсчитывают от опорного давления, измеренного на старте.
Можно ли подключать BMP280 к 5-вольтовому Arduino?
Саму микросхему — нет: рабочее питание 1,71–3,6 В, предельное — 4,25 В, а на выводах интерфейса не больше VDDIO + 0,3 В. Модули под 5 В несут стабилизатор и согласование уровней — это проверяют по схеме модуля. Bosch отдельно предупреждает: высокий уровень на SDI, SDO, SCK или CSB при выключенном VDDIO может повредить датчик.
Источники
- Bosch Sensortec. BMP280 Digital Pressure Sensor: Data sheet (BST-BMP280-DS001-26, revision 1.26, October 2021) — с. 2 — ключевые параметры (корпус LGA 2,0 × 2,5 × 0,95 мм, ±0,12 гПа относительная, ±1 гПа абсолютная при 950–1050 гПа и 0…40 °C, 2,7 мкА при 1 Гц); с. 3 — табл. 1 сравнения с BMP180; табл. 2 (с. 7–8) — питание, токи 2,8/4,2 мкА, пик 720/1120 мкА, сон и ожидание, точности, разрешение 0,0016 гПа, шум 1,3 и 0,2 Па, температура ±0,5 и ±1,0 °C, стабильность, дрейф от пайки, запуск 2 мс, частота 157/182 Гц; разд. 1 — минимумы и максимумы дрейфов и смещений — ±3σ; табл. 3 — предельные 4,25 В; разд. 3.2 — предупреждение о высоком уровне на выводах при выключенном VDDIO; табл. 7 — рекомендуемые настройки; табл. 11 — t_sb от 0,5 до 4000 мс; табл. 12–13 — токи и время измерения по передискретизации; разд. 4.3 — chip_id 0x58, сброс 0xB6; разд. 5.1–5.2 — выбор интерфейса выводом CSB, адреса 0x76 и 0x77; разд. 6.1 — выводы, рис. 15 — конденсаторы 100 нФ; рис. 18 — габариты, шаг 0,65 мм, отверстие ⌀0,30 мм
- Bosch Sensortec. BME280 Combined humidity and pressure sensor: Data sheet (BST-BME280-DS001-24, revision 1.24, February 2024) — для сравнения: корпус 2,5 × 2,5 × 0,93 мм, chip_id 0x60, датчик влажности; совместимость с BMP280 по регистрам давления и температуры
Нашли ошибку?
Смотрите также
- Микросхемы датчиковТок, давление, влажность, температура, свет, ИК: карточки и статьи
- BME280Давление, влажность, температура: питание, адреса, точность, режимы
- Датчики давления BMP280, BME280, BMP390Точность, подключение по I²C и SPI, режимы, фильтр, компенсация, высота по давлению
- Высота по давлениюБарометрическая высота, давление на высоте, давление на уровне моря
- ПередискретизацияOversampling: дополнительные биты АЦП усреднением
- БИХ-фильтрЦифровой фильтр с обратной связью: формула, коэффициент, время отклика
- Адрес I²C7-битный адрес ведомого и байт адреса с битом R/W
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- Частота выдачи данных (ODR)Сколько новых отсчётов в секунду выдаёт датчик и чем она задаётся
- Почему BMP280 показывает давление ниже, чем в прогнозе погоды?Датчик меряет давление на месте, сводки — приведённое к уровню моря: −12 гПа на каждые 100 м
- Почему BMP280 всё время показывает одно и то же значение?Датчик в режиме сна или forced без повторного запуска: в регистрах остаётся 0x80000