BH1750FVI: цифровой датчик освещенности Печать
Добавил(а) microsin   

BH1750FVI это микросхема датчика освещенности (Ambient Light Sensor) с интерфейсом I2C. Эта микросхема больше всего походит для подстройки подсветки LCD и клавиатуры мобильных устройств, таких как смартфоны. BH1750FVI может детектировать уровень света в широком диапазоне, с высокой точностью (1 .. 65535 lx).

Основные функциональные возможности:

1. Интерфейс шины I2C (с поддержкой режимов скоростей fast и standard).
2. Спектральная чувствительность аппроксимирована к глазу человека.
3. Преобразование освещенности в цифровое значение.
4. Широкий диапазон и высокая разрешающая способность (1 .. 65535 lx).
5. Низкий ток потребления благодаря наличию функции выключения (power down).
6. Функция подавления пульсаций света 50 Гц / 60 Гц.
7. Входной интерфейс с уровнями логики 1.8V.
8. Не требует внешних компонентов.
9. Низкая зависимость от типа источника света: лампа накаливания, флуоресцентная лампа, галогеновая лампа, белый светодиод (LED), солнечный свет.
10. Есть возможность выбрать один из 2 адресов на шине I2C.
11. Настройка результата измерения, учитывающая влияние оптического окна (с помощью этой функции можно определять уровень освещенности от минимума 0.11 lx до максимума 100000 lx).
12. Низкая погрешность измерения (+/-20%).
13. Инфракрасное излучение очень слабо влияет на результат.

Области применения: мобильные телефоны, LCD TV, ноутбуки, портативные игровые устройства, цифровые фото- и видеокамеры, PDA, LCD дисплеи.

Absolute Maximum Ratings (предельные максимальные значения)

Параметр Символ Значение Ед.
Напряжение питания Vmax 4.5 V
Диапазон рабочих температур Topr -40 .. +85 ℃
Диапазон температур хранения Tstg -40 .. +100
Максимальный ток стока SDA Imax 7 mA
Рассеиваемая мощность Pd 2601 мВт

Примечание 1: стеклотекстолитовая плата размером 70 мм × 70 мм × 1.6 мм. Снижение номинальной мощности (derating) выполняется из расчёта 3.47 мВт/°C при работе выше Ta = 25 °C.

Рабочие условия

Параметр Символ min Typ MAX Ед.
Напряжение Vcc Vcc 2.4 3.0 3.6 V
Опорное напряжение I2C VDVI 1.65 - Vcc

Электрические характеристики (VCC = 3.0V, DVI = 3.0V, Ta = 25℃, если не указано что-то иное)

Параметр Символ min Typ MAX Ед. Условия
Ток потребления Icc1 - 120 190 µA Ev = 100 lx1
Ток режима выключено (Powerdown) Icc2 - 0.01 1.0 Отсутствие входного света.
Пиковая длина волны λp - 560 - nm  
Точность измерения S/A 0.96 1.2 1.44 раз Sensor out / Actual lx
EV = 1000 lx1,2
Вывод сенсора в темноте (0 lx) S0 0 0 3 count H-Resolution Mode3
Разрешающая способность H-Resolution Mode rHR - 1 - lx  
Разрешающая способность L-Resolution Mode rLR - 4 -  
Время измерения H-Resolution Mode tHR - 120 180 мс  
Время измерения L-Resolution Mode tLR - 16 24  
Коэффициент выхода света ламп накаливания / флюоресцентных ламп rIF - 1 - раз EV = 1000 lx
Входной уровень 'H' ADDR VAH 0.7 * VCC - - V  
Входной уровень 'L' ADDR VAL - - 0.3 * VCC  
Входной уровень 'L' DVI VDVL - - 0.4  
Входной уровень 1 'H' для SCL, SDA VIH1 0.7 * DVI - - DVI ≧ 1.8V
Входной уровень 2 'H' для SCL, SDA VIH2 1.26 - - 1.65V ≦ DVI <1.8V
Входной уровень 1 'L' для SCL, SDA VIL1 - - 0.3 * DVI DVI ≧ 1.8V
Входной уровень 2 'L' для SCL, SDA VIL2 - - DVI – 1.26 1.65V ≦ DVI <1.8V
Входной ток 'H' для SCL, SDA, ADDR IIH - - 10 µA  
Входной ток 'L' для SCL, SDA, ADDR IIL - - 10  
Частота тактов I2C SCL fSCL - - 400 кГц  
I2C Bus Free Time4 tBUF 1.3 - - мкс  
I2C Hold Time (repeated) START Condition5 tHDSTA 0.6 - -  
I2C Set up time for a Repeated START Condition6 tSUSTA 0.6 - -  
I2C Set up time for a Repeated STOP Condition7 tSUSTD 0.6 - -  
Время удержания данных I2C tHDDAT 0 - 0.9  
Время установки данных I2C tSUDAT 100 - - нс  
I2C 'L' периода тактов SCL tLOW 1.3 - - мкс  
I2C 'H' периода тактов SCL tHIGH 0.6 - -  
Выходной уровень 'L' I2C SDA VOL 0 - 0.4 V IOL = 3 mA

Примечания:

1. В качестве источник света использовался белый светодиод (White LED).
2. Точное измеренное типовое значение результата можно поменять с помощью функции подстройки результата измерения.
3. Используйте режим H-resolution mode или H-resolution mode2, если нужны данные измерений в темноте (менее 10 lx).
4. Минимальное время, в течение которого шина I²C должна оставаться свободной (неактивной) перед началом новой передачи данных.
5. Этот параметр определяет минимальное время удержания сигнала на линии данных (SDA) в низком уровне после формирования повторного старт-условия (repeated START condition), пока линия тактирования (SCL) находится в низком уровне, прежде чем будет подан первый тактовый импульс.
6. Этот параметр определяет минимальное время установки сигнала на линии данных (SDA) до формирования повторного старт-условия (repeated START condition).
7. Этот параметр определяет минимальное время, в течение которого линия SDA должна оставаться стабильной (в состоянии низкого уровня) до того, как будет сформировано STOP-условие.

Параметрические графики диаграмм зависимостей параметров (рис. 1 .. 12) см. в оригинальном даташите [1].

DVI расшифровывается как Digital Voltage Interface. Эта аббревиатура используется также как обозначение вывода, задающего опорное напряжение для цифровых линий SDA и SCL.

Вывод DVI выполняет две ключевые функции:

1. Опорное напряжение для I²C: напряжение на этом выводе определяет логические уровни (High и Low) для линий связи SDA и SCL. Это позволяет использовать датчик с микроконтроллерами, работающими на разных напряжениях (например, 1.8V или 3.3V).

2. Асинхронный сброс (Reset): этот вывод также служит для сброса внутренних регистров датчика. Чтобы датчик корректно инициализировался после подачи питания, на выводе DVI необходимо кратковременно (минимум 1 мкс) установить низкий уровень (L, ≤ 0.4V).

Важные моменты при подключении:

● Последовательность подачи питания: напряжение на DVI должно появиться позже, чем питание VCC, чтобы обеспечить необходимый импульс сброса.
● Уровни напряжения: в рабочих характеристиках указано, что опорное напряжение (VDVI) может быть в диапазоне от 1.65 В до VCC (обычно 3.3V). Если DVI = 3.0V, то порог для высокого уровня SDA/SCL будет 0.7 * 3.0 = 2.1V, а для низкого — 0.3 * 3.0 = 0.9V.

Блок-схема BH1750FVI:

BH1750FVI Block Diagram

PD фотодиод с характеристикой чувствительности к спектру, аппроксимированной к человеческому глазу.
AMP встроенный операционный усилитель для преобразования тока фотодиода в напряжение.
ADC преобразователь АЦП для получения из напряжения 16 бит данных.

AD converter for obtainment Digital 16bit data.

Logic + I²C Interface блок вычисления освещенности и интерфейс шины I2C.

OSC внутренний генератор (типовая частота 320 кГц). Это такты CLK для внутренней логики.

Регистры I2C. Интерфейс включает в себя регистры:

Data Register → для регистрации данных освещенности (Ambient Light Data). Начальное двоичное значение регистра "0000_0000_0000_0000".
Measurement Time Register → для регистрации времени измерения. Начальное значение "0100_0101".

Процедура измерения освещенности:

BH1750FVI Measurement Procedure

Примечание: команда "Power On" может быть опущена.

Набор инструкций (opcode):

Инструкция opcode Комментарий
Power Down 0000_0000 Неактивное состояние.
Power On 0000_0001 Ожидание команды измерения (measurement command).
Reset 0000_0111 Сброс значения регистра данных. Команда Reset не применима в режиме Power Down.
Continuously H-Resolution Mode 0001_0000 Старт измерения с разрешающей способностью 1lx. Время измерения (Measurement Time) обычно 120 мс.
Continuously H-Resolution Mode2 0001_0001 Старт измерения с разрешающей способностью 0.5lx. Время измерения обычно 120 мс.
Continuously L-Resolution Mode 0001_0011 Старт измерения с разрешающей способностью 4lx. Время измерения (Measurement Time) обычно 16 мс.
One Time H-Resolution Mode 0010_0000 Старт измерения с разрешающей способностью 1lx. Время измерения обычно 120 мс. После измерения автоматически устанавливается режим Power Down.
One Time H-Resolution Mode2 0010_0001 Старт измерения с разрешающей способностью 0.5lx. Время измерения обычно 120 мс. После измерения автоматически устанавливается режим Power Down.
One Time L-Resolution Mode 0010_0011 Старт измерения с разрешающей способностью 4lx. Время измерения обычно 16 мс. После измерения автоматически устанавливается режим Power Down.
Change Measurement time (старшие биты) 01000_MT[7,6,5] Изменение времени измерения(*).
Change Measurement time (младшие биты) 011_MT[4,3,2,1,0]

Примечание (*): см. раздел "Подстройка результата измерения с учетом влияния оптического окна". Не вводите другой opcode.

Режимы измерения:

Режим измерения Время измерения Разрешающая способность
H-resolution Mode2 Типовое значение 120 мс 0.5 lx
H-resolution Mode 1 lx
L-Resolution Mode Типовое значение 16 мс 4 lx

Рекомендуется использовать H-Resolution Mode. Время измерения (время интегрирования) в H-Resolution Mode достаточно велико, чтобы подавлять шум (включая импульсы 50 Гц / 60 Гц). H-Resolution Mode с разрешающей способностью 1 lx подходит для темноты (уровень освещенности менее 10 lx). H-resolution mode2 также подходит для детектирования темноты.

Asynchronous reset и команда Reset "0000_0111"

1) Asynchronous reset. При подаче асинхронного сброса все регистры сбрасываются. Это необходимо при последовательности подачи питания. См. ниже раздел "Тайминг последовательности нарастания напряжений VCC и DVI". Во время DVI = 'L' действует режим "выключено" (power down mode).

2) Reset command. Команда сброса сбрасывает только регистр данных освещенности (Illuminance data register, значение сброса '0'). Для сброса регистра данных освещённости не требуется специальный порядок включения питания (как, например, для вывода DVI, где нужно было подавать напряжение в определённой последовательности с задержками). Команда сброса нужна для стирания предыдущего результата измерения. Эта команда не работает в режиме power down, так что для подачи этой команды сначала переведите микросхему в режим power on.

Тайминг последовательности нарастания напряжений VCC и DVI. DVI это вывод опорного напряжения для шины I2C. И это также вывод для асинхронного сброса. Для сброса необходимо на него был подать уровень 'L'. В течение периода 'L' на выводе DVI внутреннее состояние датчика устанавливается в режим пониженного энергопотребления "выключено" (Power Down mode).

Рекомендуемая диаграмма для подачи напряжений VCC и DVI:

BH1750FVI recommended timing for VCC and DVI supply

Диаграмма для подачи VCC и DVI, если DVI нарастает в течение 1 мкс после подачи VCC:

BH1750FVI timing2 for VCC and DVI supply

Линии ADDR, SDA и SCL находятся в нестабильном состоянии, если система не обеспечивает период 'L' (низкого уровня) на выводе DVI длительностью 1 мкс. В этом случае подключите к выводу ADDR резисторы (приблизительно 100 кОм), а не соединяйте его напрямую с VCC или GND, поскольку это 3-стабильный буфер, предназначенный для внутреннего тестирования.

[Примеры измерения]

Ниже приведены примеры последовательности измерения от команды записи (Write instruction) до чтения результата измерения (Read measurement result).

Пример 1, непрерывный режим H-resolution mode (ADDR = 'L').

[  ] от Master к Slave       [  ] от Slave к Master

① Отправка инструкции "Continuously H-resolution mode":

ST         0100011          0  Ack         00010000         Ack SP

② Ожидание 1-го измерения режима H-resolution (max. 180 мс).

③ Чтение результата измерения.

ST         0100011          1  Ack     High Byte [ 15:8 ]     Ack
    Low Byte [ 7:0 ]     ~Ack SP

Как вычисляется результат, когда старший байт данных "10000011", и младший байт данных "10010000":

(215 + 29 + 28 + 27 + 24) / 1.2 ≒ 28067 (lx)

В режиме постоянного измерения результат непрерывно обновляется (обычно с интервалом 120 мс в режиме H-resolution, 16 мс в режиме L-resolution).

Пример 2, однократное измерение в режиме L-resolution mode (ADDR = 'H').

① Отправка инструкции "One time L-resolution mode":

ST         1011100          0  Ack         00100011         Ack SP

② Ожидание завершения измерения режима L-resolution (max. 24 мс).

③ Чтение результата измерения:

ST         1011100          1  Ack     High Byte [ 15:8 ]     Ack
    Low Byte [ 7:0 ]     ~Ack SP

Как вычисляется результат, когда старший байт данных "00000001", и младший байт данных "00010000":

(28 + 24) / 1.2 ≒ 227 (lx)

При однократном измерении (One Time Measurement) датчик после завершения измерения автоматически переходит в режим пониженного энергопотребления (Power Down mode). Если требуется обновлённый результат, необходимо повторно отправить команду измерения.

Практический смысл. В BH1750FVI есть два принципиально разных подхода к измерениям:

Режим Поведение
Continuous Measurement (непрерывное измерение) Датчик измеряет постоянно, снова и снова, пока вы не остановите его. Данные всегда свежие. Потребление тока выше.
One Time Measurement (однократное измерение) Датчик делает одно измерение, кладёт результат в регистр данных и уходит в Power Down. Чтобы получить новое значение — нужно снова послать команду.

Почему так сделано:

- Экономия энергии: в режиме Power Down датчик почти не потребляет ток (типично ~0.01 мкА). Это критично для батарейных устройств.
- Контроль: вы сами решаете, когда делать измерение — например, раз в секунду, раз в минуту или по событию.
- Точность: между измерениями датчик «отдыхает», что снижает самонагрев и дрейф.

Важное ограничение: пока датчик находится в Power Down mode, команда Reset не работает (об этом говорилось в предыдущем пункте даташита). Поэтому последовательность для нового измерения такая:

1. Отправить команду Power On (если датчик был в Power Down).
2. Отправить команду One Time Measurement (например, 0x20 для H-Resolution).
3. Подождать время измерения (обычно 120–180 мс для H-Res).
4. Прочитать 2 байта данных из регистра.
5. Датчик сам уйдёт в Power Down — можно повторить с шага 2, когда понадобится новое значение.

[Схемы подключения вывода DVI]

Вывод DVI работает как вход для асинхронного сброса. Имейте в виду, что возможно микросхема не будет работать правильно, если не было выполнено условие сброса после подачи напряжения VCC, см. выше параграф "Тайминг последовательности нарастания напряжений VCC и DVI".

В этом даташите опущено описание стандартного поведения сигналов SDA и SCL шины I2C, также опущено описание, касающееся вывода ADDR. См. выше параграф "Тайминг последовательности нарастания напряжений VCC и DVI" для информации о влиянии на ADDR последовательности подачи напряжений.

1. Сигнал DVI управляется от микроконтроллера (MCU).

BH1750FVI application circuit example1 DVI

2. Для DVI используется микросхема сброса (супервизор) с двухтактным выходом (push-pull).

BH1750FVI application circuit example2a DVI

Для DVI используется микросхема сброса (супервизор), у которой выход с открытым стоком (open drain).

BH1750FVI application circuit example2b DVI

3. Подача на DIV напряжения от отдельного источника питания.

BH1750FVI application circuit example3 DVI

Напряжение V2 должно устанавливаться с задержкой после напряжения V1 (длительность задержки 1 мкс и более), потому что необходимо выполнить условие асинхронного сброса ( 1µs or more ).

4. RC-цепочка между VCC и DVI.

BH1750FVI application circuit example4 DVI

Замечания по поводу RC-цепочки:

- Существует вероятность, что период сброса (1 мкс) не будет обеспечен, если питание включается при медленном нарастании напряжения VCC.
- Когда VCC выключается, напряжение на DVI становится выше напряжения VCC, но разрушения микросхемы не происходит, если используются рекомендуемые номиналы (R1 = 1 кОм, C1 = 1 мкФ).
- Существует вероятность, что период сброса (1 мкс) не будет обеспечен, если время ожидания после выключения VCC недостаточно велико (необходимо учитывать уровень напряжения на DVI после выключения VCC).
- При проектировании приложения необходимо обеспечить период сброса 1 мкс и более после повторного включения питания.

BH1750FVI RC inserted between VCC and DVI

Пример дизайна, когда RC-цепочка (C = 1 мкФ, R = 1 кОм) установлена между VCC и DVI, когда VCC=2.8V:

① Необходимо использовать источник питания, у которого время нарастания 0→2.4V VCC должно быть 100 мкс или меньше.

② Подождите 25 или больше после включения VCC (VCC меньше или равно 0.05V), потому что необходимо обеспечить условие надежного асинхронного сброса DVI (1 мкс или больше).

BH1750FVI RC example5 designing

Замечание: при проектировании приложения необходимо обеспечить период сброса 1 мкс и более после повторного включения питания.

[Доступ по шине I2C]

1) Диаграмма времени шины I2C.

BH1750FVI I2C bus interface timing

2) Адрес I2C для BH1750FVI. Существует 2 типа адреса, что определяется уровнем на выводе ADDR:

ADDR = H ( ADDR ≧ 0.7VCC ) → 1011100|
ADDR = L ( ADDR ≦ 0.3VCC ) → 0100011

[  ] от Master к Slave       [  ] от Slave к Master

3) Формат записи. Микросхема BH1750FVI не способна принимать несколько команд без STOP. Пожалуйста, вставляйте SP (Stop condition) после каждого кода операции (opcode).

ST         Slave Address          R/W 
   0 
Ack             opcode             Ack SP

4) Формат чтения:

ST         Slave Address          R/W 
   1 
Ack             High Byte [ 15:8 ]
   215 214 213 212 211 210 29 28   
Ack
          Low Byte [ 7:0 ]    
    27 26 25 24 23 22 21 20    
~Ack SP

Пример:

High Byte = "1000_0011"
Low Byte = "1001_0000"
(215 + 29 + 28 + 27 + 24) / 1.2 ≒ 28067 (lx)

[Подстройка результата измерения с учетом влияния оптического окна]

BH1750FVI позволяет изменить чувствительность сенсора. Благодаря этой функции можно избавиться от влияния оптического окна на результат измерения. Настройка чувствительности осуществляется изменением времени измерения. Например, когда коэффициент пропускания оптического окна 50% (результат измерения уменьшается в 0.5 раз), результат действия оптического окна можно компенсировать, увеличив чувствительность сенсора в 2 раза.

Чувствительность сенсора смещается изменением значения MTreg (measurement time register). Значение MTreg должно быть увеличено в 2 раза для увеличения чуствительноти в 2 раза. Время измерения устанавливается также в 2 раза больше, когда значение MTreg увеличивается в 2 раза от своего значения по умолчанию.

Ниже показа пример увеличения чувствительности в 2 раза. Пример показан для режима H-resolution, но для других режимов измерения используется аналогичная последовательность изменения чувствительности. Значение MTreg изменяется от 0100_0101 (умолчание) до 1000_1010 (умолчание * 2).

1) Изменение старших бит MTreg:

ST         Slave Address          R/W 
   0 
Ack             01000_100             Ack SP

2) Изменение младших бит MTreg:

ST         Slave Address          R/W 
   0 
Ack             011_01010             Ack SP

3) Ввод команды измерения:

ST         Slave Address          R/W 
   0 
Ack             0001_0000             Ack SP

4) После 240 мс результат измерения находится в регистре данных (для режима H-resolution типовое время измерения 120 мс, однако время измерения удваивается из-за удвоения MTreg):

В следующей таблице показан диапазон изменения MTreg:

  min Typ MAX
Изменяемый диапазон MTreg binary 0001_1111
(чувствительность:
умолчание x 0.45)
0100_0101
    умолчание    
1111_1110
(чувствительность:
умолчание x 3.68)
decimal 31
(чувствительность:
умолчание x 0.45)
69
умолчание
254
(чувствительность:
умолчание x 3.68)

С помощью этой функции можно детектировать уровень освещенности 0.23lx в режиме H-resolution, и можно детектировать 0.11lx в режиме H-resolution mode2.

Приведённая ниже формула служит для расчёта освещённости, приходящейся на 1 единицу отсчёта (count). Здесь 1.2 это точность измерения, 69 это десятичное значение MTreg по умолчанию.

H-reslution mode: освещенность на 1 единицу (lx / count) = 1 / 1.2 * (69 / MTreg)
H-reslution mode2 : освещенность на 1 единицу (lx / count) = 1 / 1.2 * (69 / MTreg) / 2

Здесь:

1.2: точность измерения
69: значение по умолчанию MTreg (десятичное)
X: значение MTreg

Примеры значений единицы освещенности:

Значение MTreg lx / count
в H-resolutin mode
lx / count
 в H-resolution mode2
0001_1111 1.85 0.93
0100_0101 0.83 0.42
1111_1110 0.23 0.11

[H-Resolution Mode2]

Режим H-resolution mode2 обладает разрешающей способностью 0.5lx (типовое значение) resolution mode. Этот режим подходит для условий применения, когда необходимо детектировать уровни освещенности меньше чем 10 lx. Этот режим измерения поддерживает подстройку чувствительности (см. выше "Подстройка результата измерения с учетом влияния оптического окна"). В режиме H-resolution mode2 минимальный детектируемый уровень освещенности составляет 0.11 lx.

Инструкции для H-resolution mode2:

Инструкция opcode Комментарии
Continuously H-Resolution Mode2 0001_0001 Старт измерений с 0.5lx разрешением.
Типовое время измерения 120 мс.
One Time H-Resolution Mode2 0010_0001 Старт измерений с 0.5lx разрешением.
Типовое время измерения 120 мс.
После измерения автоматически устанавливается режим Power Down.

Ниже показан пример последовательности измерения от инструкции записи до инструкции чтения. Используется режим непрерывного H-resolution mode2 (ADDR = 'L').

[  ] от Master к Slave       [  ] от Slave к Master

① Отправка инструкции "Continuously H-resolution mode2":

ST            0100011              0   Ack             00010001            Ack SP

② Ожидание завершения первого измерения H-resolution mode2 (max. 180 мс).

③ Чтение результата измерения:

ST            0100011              1   Ack         High Byte [ 15:8 ]
   214 213 212 211 210 29 28 27   
Ack
          Low Byte [ 7:0 ]    
    26 25 24 23 22 21 20 2-1    
~Ack SP

Вычисление результата, когда старший байт 00000000 и младший байт 00010010:

(23 + 20) / 1.2 ≒ 7.5 (lx)

[Назначение выводов BH1750FVI]

№ Имя Значение Функция
1 VCC   Напряжение питания
2 ADDR BH1750FVI pin2 ADDR Вход для выбора I2C адреса.
ADDR = ‘H’  ( ADDR ≧ 0.7VCC ) "1011100"
ADDR = 'L'  ( ADDR ≦ 0.3VCC ) "0100011"
ADDR Terminal разработан как буфер с 3 состояниями для внутреннего тестирования. Так что уделяйте особое внимания процедуре правильной подачи питания на VCC и DVI.
3 GND   Общий провод
4 SDA BH1750FVI pin4 SDA Вывод сигнала SDA шины I2C
5 DVI BH1750FVI pin5 DVI Вывод опорного напряжения сигналов SDA, SCL.
Вывод DVI также работает как асинхронный сброс для внутренних регистров. Таким образом, установите DVI в 'L' (как минимум через 1 мкс, DVI ≤ 0.4V) после подачи напряжения VCC.
6 SCL BH1750FVI pin6 SCL Вывод сигнала SCL шины I2C

Примечание: значение внутреннего резистора 150 кОм не гарантируется.

[Размеры корпуса]

Корпус типа WSOF6I, размеры в миллиметрах:

BH1750FVI WSOF6I package dimensions

Дизайн оптики для устройства:

BH1750FVI optical design

[Определение первого вывода корпуса]

① 1-й вывод можно определить по его увеличенной ширине.
② 1-й вывод можно определить по метке на кристалле (die pattern).
③ Скос на корпусе находится напротив выводов 1 .. 3.

BH1750FVI distinguishing 1pin

Информацию о покупке, маркировке корпуса и другую дополнительную информацию см. в оригинальном даташите [1].

[Предосторожности при использовании]

1) Предельные допустимые значения (Absolute Maximum Ratings). Превышение этих значений, таких как напряжение питания (Vmax), рабочий диапазон температур (Topr) и т. п., может повредить устройство. При этом невозможно определить тип отказа, например короткое замыкание или обрыв.

2) Напряжение GND. Выполните установку потенциала вывода GND так, чтобы он поддерживался на минимальном уровне в любом рабочем состоянии. Кроме того, убедитесь, что ни один вывод микросхемы не находится под потенциалом ниже напряжения GND, включая реальные электрические переходные процессы.

3) Короткое замыкание между выводами и неправильный монтаж. При установке микросхем на печатную плату устройства уделяйте пристальное внимание ориентации и смещению микросхем. Неправильный монтаж может вывести микросхемы из строя. Кроме того, если короткое замыкание возникает из-за попадания посторонних частиц между выводами или между выводом и питанием либо выводом GND, то микросхемы могут выйти из строя.

4) Работа в условиях сильных электромагнитных полей может привести к неправильному функционированию микросхемы.

5) Проверка (тестирование) с установкой печатной платы. При проверке печатной платы, если конденсатор подключён к низкоимпедансному выводу микросхемы, микросхема может испытывать стресс (нагрузку). Поэтому обязательно разряжайте печатную плату на каждом этапе процесса тестирования. Кроме того, чтобы установить или снять печатную плату с испытательного стенда в процессе проверки, обязательно выключите питание и только затем устанавливайте плату на стенд. После завершения проверки обязательно выключите питание и только затем снимайте плату со стенда. Кроме того, для защиты от статического электричества организуйте заземление на этапе сборки и уделяйте пристальное внимание транспортировке и хранению печатной платы.

6) Входные выводы. С точки зрения конструкции микросхемы на входах неизбежно формируются паразитные элементы. Работа паразитного элемента может вызвать помехи в работе схемы, что приводит к сбою и затем к повреждению входного вывода. Поэтому уделяйте пристальное внимание тому, чтобы не допускать неправильного обращения с входными выводами — например, не подавайте на входные выводы напряжение ниже GND. Кроме того, не подавайте напряжение на входные выводы, когда на микросхему не подано напряжение питания. Помимо этого, даже если напряжение питания подано, подавайте на входные выводы напряжение ниже напряжения питания или в пределах гарантированных значений электрических характеристик.

7) Тепловой расчёт (проектирование теплового режима). Выполняйте тепловой расчёт так, чтобы были достаточные запасы, учитывая рассеиваемую мощность (Pd) в реальных условиях эксплуатации.

8) Пыль или царапины могут повлиять на оптические характеристики устройства.

9) Пусковой ток (бросок тока). Когда питание впервые подаётся на КМОП-микросхему, возможно, что внутренняя логика окажется нестабильной и мгновенно потечёт пусковой ток (rush current). Поэтому уделите особое внимание ёмкости по питанию, проводам питания, ширине проводников GND и трассировке соединений.

10) Открытая центральная площадка на обратной стороне корпуса. На обратной стороне корпуса имеется открытая центральная площадка, но её не следует подключать ни к каким цепям. Не паяйте эту площадку, и обеспечьте отсутствие электрического контакта с ней. Устанавливайте микросхему в соответствии с размерами посадочного места (Footprint dimensions), описанными в Jisso Information для корпуса WSOF6I. Эта площадка имеет уровень GND, поэтому существует вероятность, что кристалл будет работать неправильно и возникнет большой ток.

[Тестовый проект на микроконтроллере STM32F103C8T6]

Для проверки работы датчика был создан тестовый проект Zephyr на основе библиотеки [2]. Пример опроса датчика BH1750FVI, модуль src/main.c:

#include < zephyr/kernel.h>
#include < zephyr/device.h>
#include < zephyr/drivers/gpio.h>

/* Публичный API портируемой библиотеки BH1750FVI.
* Заголовок лежит в каталоге BH1750FVI-Light-Intensity-Sensor-C-Driver. */
#include "bh1750fvi.h"

/* Отладочный светодиод платы BluePill: PC13, активный низкий уровень.
* Узел led/led0 берётся из devicetree платы stm32_min_dev (revision blue). */
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios);

/* Управление светодиодом: LED(true) — зажечь, LED(false) — погасить.
* Логика active-low учитывается драйвером GPIO автоматически. */
#define LED(on) gpio_pin_set_dt(&led, (on) ? 1 : 0)

int main(void) {
/* 1. Инициализируем пин отладочного светодиода как выход.
* GPIO_OUTPUT_INACTIVE для active-low означает "погашен". */
if (!gpio_is_ready_dt(&led)) {
printk("Error: LED device not ready\n");
return -ENODEV;
}
gpio_pin_configure_dt(&led, GPIO_OUTPUT_INACTIVE);

/* 2. Инициализируем датчик на шине I2C1 (SCL PB6, SDA PB7).
* ADDRESS1 = 0x23 (вывод ADDR не подключён).
* CONTINUOUS_H_1_MODE — непрерывный режим, разрешение 1 lx. */
lightSensor_begin(ADDRESS1, CONTINUOUS_H_1_MODE);
printk("BH1750FVI initialized successfully.\n");

while (1) {
LED(true);

/* 3. Считываем результат измерения.
* Библиотека возвращает "сырое" значение датчика;
* освещённость в люксах = значение / 1.2. */
uint16_t raw = lightSensor_meter();
uint32_t lux = ((uint32_t)raw * 5U) / 6U;

LED(false);

printk("Illuminance: %u lx (raw %u)\n", lux, raw);

/* 4. Задержка 200 мс между опросами. */
k_msleep(200);
}

return 0; }

[Ссылки]

1. BH1750FVI Digital 16bit Serial Output Type Ambient Light Sensor IC.
2. ebrezadev / BH1750FVI-Light-Intensity-Sensor-C-Driver.