BH1750 — цифровой датчик освещённости ROHM с шиной I²C
BH1750FVI — цифровой датчик освещённости ROHM: фотодиод с чувствительностью, близкой к глазу, усилитель и 16-битный АЦП в маленьком корпусе WSOF6I. Он отдаёт по I²C число, которое после деления на 1,2 становится люксами. Разбираем по технической документации ROHM: питание, адреса, команды, режимы и обязательный сброс выводом DVI.
Обновлено Редакция GAW
BH1750FVI — датчик внешней освещённости для подстройки яркости экранов и подсветки. Внутри — фотодиод со спектральной чувствительностью, близкой к человеческому глазу (пик на 560 нм), интегрирующий усилитель, 16-битный АЦП и логика с интерфейсом I²C. Внешних деталей, кроме конденсаторов по питанию, ему не нужно. Сравнение с TSL2561, VEML7700, OPT3001 и фоторезисторами — в статье «Датчики освещённости», готовая схема с расчётами — на странице «Датчик освещённости».
Коротко
- Питание — VCC 2,4–3,6 В, предел 4,5 В; уровни шины задаёт DVI от 1,65 В до VCC.
- Адреса — 0x23 (ADDR низкий) и 0x5C (ADDR высокий).
- Диапазон — 1–65 535 лк; с регистром MTreg — от 0,11 до 100 000 лк.
- Режимы — 0,5 и 1 лк за 120 мс типично (до 180 мс), 4 лк за 16 мс (до 24 мс).
- Ток — 120 мкА типично при измерении, 0,01 мкА в Power Down.
- Точность — показания делят на 1,2; разброс отношения — от 0,96 до 1,44.
Распиновка
Корпус — WSOF6I. Первый вывод ROHM предлагает находить по рисунку кристалла (так проще всего на глаз), по более широкому выводу 1 или по скосу со стороны выводов 1–3.
| Вывод | Обозначение | Назначение |
|---|---|---|
| 1 | VCC | питание 2,4–3,6 В |
| 2 | ADDR | выбор адреса: низкий уровень — 0x23, высокий — 0x5C |
| 3 | GND | общий провод |
| 4 | SDA | данные I²C |
| 5 | DVI | опорное напряжение уровней I²C и асинхронный сброс |
| 6 | SCL | тактовый сигнал I²C |
Пока на DVI ноль, микросхема находится в состоянии Power Down, а вывод DVI подтянут к общему проводу внутренним резистором около 150 кОм (расчётное, не гарантированное значение). Фотодиод площадью 0,25 × 0,3 мм находится в 1,3 мм от края с выводами 4–6; окно в корпусе прибора должно открывать круг радиусом не меньше 0,4 мм вокруг него.
Параметры
По технической документации ROHM при VCC = DVI = 3,0 В и 25 °C:
| Параметр | Мин. | Тип. | Макс. |
|---|---|---|---|
| Питание VCC | 2,4 В | 3,0 В | 3,6 В |
| Напряжение DVI | 1,65 В | — | VCC |
| Ток при измерении (100 лк) | — | 120 мкА | 190 мкА |
| Ток в Power Down | — | 0,01 мкА | 1,0 мкА |
| Отношение отсчёта к люксам (белый светодиод, 1000 лк) | 0,96 | 1,2 | 1,44 |
| Отсчёт в темноте, режим H-Resolution | 0 | 0 | 3 |
| Время измерения, H-Resolution | — | 120 мс | 180 мс |
| Время измерения, L-Resolution | — | 16 мс | 24 мс |
| Частота SCL | — | — | 400 кГц |
| Уровень нуля на SDA при 3 мА | 0 | — | 0,4 В |
Предельные режимы: питание 4,5 В, рабочая температура −40…+85 °C, ток SDA 7 мА, рассеиваемая мощность 260 мВт на плате 70 × 70 мм.
Команды и режимы
Каждая команда — один байт в отдельной транзакции записи: несколько команд подряд без условия STOP микросхема не принимает. После подачи питания BH1750 находится в Power Down, и его можно сразу перевести в нужный режим измерения — команду Power On разрешено пропустить.
| Команда | Код | Что делает |
|---|---|---|
| Power Down | 0x00 | выключение |
| Power On | 0x01 | ожидание команды измерения |
| Reset | 0x07 | обнуление регистра данных; в Power Down не работает |
| Continuously H-Resolution Mode | 0x10 | непрерывно, шаг 1 лк, 120 мс |
| Continuously H-Resolution Mode2 | 0x11 | непрерывно, шаг 0,5 лк, 120 мс |
| Continuously L-Resolution Mode | 0x13 | непрерывно, шаг 4 лк, 16 мс |
| One Time H-Resolution Mode | 0x20 | одно измерение, затем Power Down |
| One Time H-Resolution Mode2 | 0x21 | то же с шагом 0,5 лк |
| One Time L-Resolution Mode | 0x23 | одно измерение с шагом 4 лк |
ROHM рекомендует режим H-Resolution: долгое интегрирование подавляет помехи, в том числе пульсации света от сети 50 и 60 Гц, а шаг 1 лк подходит и для полутьмы. Лампы мерцают с удвоенной частотой сети, поэтому время интегрирования, кратное 50 мс, усредняет целое число периодов — об этом пишет ams в DN26. У BH1750 время по умолчанию — 120 мс типично, оно не кратно 50 мс; ровно кратное время можно подобрать регистром MTreg.
Результат читается двумя байтами, старший первым, и делится на 1,2. Регистр MTreg (по умолчанию 69, допустимо от 31 до 254) меняет время интегрирования, а с ним чувствительность: при 254 шаг режима H-Resolution — 0,23 лк, режима H-Resolution Mode2 — 0,11 лк, а время измерения растёт пропорционально. Так же компенсируют затемняющее стекло: если оно пропускает 50 % света, MTreg удваивают.
Подключение
Схема из документации ROHM: конденсаторы 0,1 мкФ на VCC и DVI, SDA и SCL по правилам шины I²C с подтяжками к напряжению уровней интерфейса, ADDR — к общему проводу или питанию, а DVI — к выводу микроконтроллера, который после подачи питания держит ноль не меньше 1 мкс. Вместо вывода микроконтроллера подойдёт супервизор питания или RC-цепочка 1 кОм и 1 мкФ от VCC; для цепочки ROHM требует нарастания VCC от 0 до 2,4 В не дольше 100 мкс и паузы не меньше 25 мс при VCC не выше 0,05 В перед повторным включением. Подтяжки шины считают в калькуляторе подтяжки I²C, устройство шины — в статье «I²C».
Аналоги
Документа ROHM о совместимых заменах нет. Функциональные аналоги — другие цифровые датчики освещённости с I²C: VEML7700, TSL2561, OPT3001. Адреса, команды, диапазон и пересчёт в люксы у них свои, поэтому замена требует изменения программы; сравнение — в статье «Датчики освещённости», другие микросхемы — в разделе «Микросхемы датчиков».
Частые вопросы
Какой адрес I²C у BH1750?
Его задаёт вывод ADDR: при низком уровне (не выше 0,3 · VCC) адрес 0100011, то есть 0x23, при высоком (не ниже 0,7 · VCC) — 1011100, то есть 0x5C. На одну шину помещаются два датчика. ROHM предупреждает, что ADDR — вывод с тремя состояниями для заводского тестирования: если сброс через DVI не обеспечен, его подключают через резистор около 100 кОм, а не напрямую к питанию или общему проводу.
Можно ли подключать BH1750 к 5 В?
Саму микросхему — нет: рабочее питание по даташиту — от 2,4 до 3,6 В, а предельное — 4,5 В. Уровни SCL и SDA задаются напряжением на выводе DVI, которое не может быть выше VCC. Модули, рассчитанные на 5 В, ставят свой стабилизатор, а иногда и преобразователь уровней шины; есть ли они на конкретной плате, проверяют по её схеме.
Как перевести показания BH1750 в люксы?
В режиме H-Resolution 16-битный отсчёт делят на 1,2: например, отсчёт 1000 — это около 833 лк. Коэффициент 1,2 — типичное отношение показаний к реальной освещённости по даташиту, а его разброс — от 0,96 до 1,44, то есть около ±20 %. В режиме H-Resolution Mode2 результат дополнительно делят на 2, а при изменённом регистре MTreg умножают на 69 / MTreg.
Зачем BH1750 вывод DVI?
DVI одновременно задаёт уровни шины I²C (от 1,65 В до VCC) и служит входом асинхронного сброса. После подачи VCC на DVI должен быть ноль не короче 1 мкс, иначе состояние ADDR, SDA и SCL не определено. ROHM приводит варианты: DVI от вывода микроконтроллера, от супервизора питания или RC-цепочка 1 кОм и 1 мкФ от VCC — последняя с оговоркой, что при медленном нарастании питания сброса может не хватить.
Источники
- ROHM. BH1750FVI Digital 16bit Serial Output Type Ambient Light Sensor IC: Technical Note (No.11046EDT01, Rev.D, 2011.11); архивная копия официального файла ROHM с rohmfs.rohm.com в Wayback Machine, снимок 4 августа 2016 года — с. 1 — Features (1–65 535 лк, 0,11–100 000 лк с регистром MTreg, разброс ±20 %, подавление 50/60 Гц), Absolute Maximum Ratings (4,5 В, −40…+85 °C, ток SDA 7 мА, 260 мВт), Operating Conditions (VCC 2,4–3,6 В, DVI 1,65 В…VCC); с. 2 — Electrical Characteristics: ток 120/190 мкА, в Power Down 0,01/1,0 мкА, пик 560 нм, отношение отсчёт/люкс 0,96–1,2–1,44, темновой отсчёт до 3, разрешение 1 и 4 лк, время 120/180 и 16/24 мс, уровни ADDR и SCL/SDA, SCL до 400 кГц, VOL до 0,4 В при 3 мА; с. 4 — блок-схема, генератор 320 кГц, начальное состояние Power Down; с. 5 — Instruction Set Architecture, Measurement mode explanation; с. 6 — Timing chart for VCC and DVI, ADDR через резистор около 100 кОм; с. 7 — примеры обмена и пересчёта; с. 8–9 — Application circuit example of DVI terminal; с. 10 — I2C Bus Access, одна команда на транзакцию; с. 11 — MTreg 31–69–254, формулы и таблица лк на отсчёт; с. 12 — H-Resolution Mode2; с. 13 — Terminal Description
- TAOS / ams AG. DN26: Ambient Light Sensing (ALS) (AN000172, March 31, 2009) — Design Considerations — пульсации света ламп с частотой 100 и 120 Гц, время интегрирования кратно 50 мс
Нашли ошибку?
Смотрите также
- Микросхемы датчиковТок, давление, влажность, температура, свет, ИК: карточки и статьи
- Датчики освещённости BH1750, TSL2561, VEML7700, OPT3001Фоторезистор, TEMT6000 и датчики I²C: диапазон, адреса, пересчёт в люксы, ИК, окно
- Датчик освещённости: три схемыФоторезистор, TEMT6000 и BH1750: номиналы, напряжение на АЦП, адрес и сброс DVI
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- Адрес I²C7-битный адрес ведомого и байт адреса с битом R/W
- Подтягивающие резисторы I²CДиапазон Rp по напряжению, скорости и ёмкости шины