| BH1750FVI: цифровой датчик освещенности |
|
| Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
BH1750FVI это микросхема датчика освещенности (Ambient Light Sensor) с интерфейсом I2C. Эта микросхема больше всего походит для подстройки подсветки LCD и клавиатуры мобильных устройств, таких как смартфоны. BH1750FVI может детектировать уровень света в широком диапазоне, с высокой точностью (1 .. 65535 lx). Основные функциональные возможности: 1. Интерфейс шины I2C (с поддержкой режимов скоростей fast и standard). Области применения: мобильные телефоны, LCD TV, ноутбуки, портативные игровые устройства, цифровые фото- и видеокамеры, PDA, LCD дисплеи. Absolute Maximum Ratings (предельные максимальные значения)
Примечание 1: стеклотекстолитовая плата размером 70 мм × 70 мм × 1.6 мм. Снижение номинальной мощности (derating) выполняется из расчёта 3.47 мВт/°C при работе выше Ta = 25 °C. Рабочие условия
Электрические характеристики (VCC = 3.0V, DVI = 3.0V, Ta = 25℃, если не указано что-то иное)
Примечания: 1. В качестве источник света использовался белый светодиод (White LED). Параметрические графики диаграмм зависимостей параметров (рис. 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, чтобы обеспечить необходимый импульс сброса. Блок-схема BH1750FVI:
PD фотодиод с характеристикой чувствительности к спектру, аппроксимированной к человеческому глазу. 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". Процедура измерения освещенности:
Примечание: команда "Power On" может быть опущена. Набор инструкций (opcode):
Примечание (*): см. раздел "Подстройка результата измерения с учетом влияния оптического окна". Не вводите другой opcode. Режимы измерения:
Рекомендуется использовать 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:
Диаграмма для подачи VCC и DVI, если DVI нарастает в течение 1 мкс после подачи VCC:
Линии ADDR, SDA и SCL находятся в нестабильном состоянии, если система не обеспечивает период 'L' (низкого уровня) на выводе DVI длительностью 1 мкс. В этом случае подключите к выводу ADDR резисторы (приблизительно 100 кОм), а не соединяйте его напрямую с VCC или GND, поскольку это 3-стабильный буфер, предназначенный для внутреннего тестирования. [Примеры измерения] Ниже приведены примеры последовательности измерения от команды записи (Write instruction) до чтения результата измерения (Read measurement result). Пример 1, непрерывный режим H-resolution mode (ADDR = 'L').
① Отправка инструкции "Continuously H-resolution mode":
② Ожидание 1-го измерения режима H-resolution (max. 180 мс). ③ Чтение результата измерения.
Как вычисляется результат, когда старший байт данных "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":
② Ожидание завершения измерения режима L-resolution (max. 24 мс). ③ Чтение результата измерения:
Как вычисляется результат, когда старший байт данных "00000001", и младший байт данных "00010000": (28 + 24) / 1.2 ≒ 227 (lx) При однократном измерении (One Time Measurement) датчик после завершения измерения автоматически переходит в режим пониженного энергопотребления (Power Down mode). Если требуется обновлённый результат, необходимо повторно отправить команду измерения. Практический смысл. В BH1750FVI есть два принципиально разных подхода к измерениям:
Почему так сделано: - Экономия энергии: в режиме Power Down датчик почти не потребляет ток (типично ~0.01 мкА). Это критично для батарейных устройств. Важное ограничение: пока датчик находится в Power Down mode, команда Reset не работает (об этом говорилось в предыдущем пункте даташита). Поэтому последовательность для нового измерения такая: 1. Отправить команду Power On (если датчик был в Power Down). [Схемы подключения вывода DVI] Вывод DVI работает как вход для асинхронного сброса. Имейте в виду, что возможно микросхема не будет работать правильно, если не было выполнено условие сброса после подачи напряжения VCC, см. выше параграф "Тайминг последовательности нарастания напряжений VCC и DVI". В этом даташите опущено описание стандартного поведения сигналов SDA и SCL шины I2C, также опущено описание, касающееся вывода ADDR. См. выше параграф "Тайминг последовательности нарастания напряжений VCC и DVI" для информации о влиянии на ADDR последовательности подачи напряжений. 1. Сигнал DVI управляется от микроконтроллера (MCU).
2. Для DVI используется микросхема сброса (супервизор) с двухтактным выходом (push-pull).
Для DVI используется микросхема сброса (супервизор), у которой выход с открытым стоком (open drain).
3. Подача на DIV напряжения от отдельного источника питания.
Напряжение V2 должно устанавливаться с задержкой после напряжения V1 (длительность задержки 1 мкс и более), потому что необходимо выполнить условие асинхронного сброса ( 1µs or more ). 4. RC-цепочка между VCC и DVI.
Замечания по поводу RC-цепочки: - Существует вероятность, что период сброса (1 мкс) не будет обеспечен, если питание включается при медленном нарастании напряжения VCC.
Пример дизайна, когда RC-цепочка (C = 1 мкФ, R = 1 кОм) установлена между VCC и DVI, когда VCC=2.8V: ① Необходимо использовать источник питания, у которого время нарастания 0→2.4V VCC должно быть 100 мкс или меньше. ② Подождите 25 или больше после включения VCC (VCC меньше или равно 0.05V), потому что необходимо обеспечить условие надежного асинхронного сброса DVI (1 мкс или больше).
Замечание: при проектировании приложения необходимо обеспечить период сброса 1 мкс и более после повторного включения питания. [Доступ по шине I2C] 1) Диаграмма времени шины I2C.
2) Адрес I2C для BH1750FVI. Существует 2 типа адреса, что определяется уровнем на выводе ADDR: ADDR = H ( ADDR ≧ 0.7VCC ) → 1011100|
3) Формат записи. Микросхема BH1750FVI не способна принимать несколько команд без STOP. Пожалуйста, вставляйте SP (Stop condition) после каждого кода операции (opcode).
4) Формат чтения:
Пример: High Byte = "1000_0011" [Подстройка результата измерения с учетом влияния оптического окна] 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:
2) Изменение младших бит MTreg:
3) Ввод команды измерения:
4) После 240 мс результат измерения находится в регистре данных (для режима H-resolution типовое время измерения 120 мс, однако время измерения удваивается из-за удвоения MTreg): В следующей таблице показан диапазон изменения MTreg:
С помощью этой функции можно детектировать уровень освещенности 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) Здесь: 1.2: точность измерения Примеры значений единицы освещенности:
[H-Resolution Mode2] Режим H-resolution mode2 обладает разрешающей способностью 0.5lx (типовое значение) resolution mode. Этот режим подходит для условий применения, когда необходимо детектировать уровни освещенности меньше чем 10 lx. Этот режим измерения поддерживает подстройку чувствительности (см. выше "Подстройка результата измерения с учетом влияния оптического окна"). В режиме H-resolution mode2 минимальный детектируемый уровень освещенности составляет 0.11 lx. Инструкции для H-resolution mode2:
Ниже показан пример последовательности измерения от инструкции записи до инструкции чтения. Используется режим непрерывного H-resolution mode2 (ADDR = 'L').
① Отправка инструкции "Continuously H-resolution mode2":
② Ожидание завершения первого измерения H-resolution mode2 (max. 180 мс). ③ Чтение результата измерения:
Вычисление результата, когда старший байт 00000000 и младший байт 00010010: (23 + 20) / 1.2 ≒ 7.5 (lx) [Назначение выводов BH1750FVI]
Примечание: значение внутреннего резистора 150 кОм не гарантируется. [Размеры корпуса] Корпус типа WSOF6I, размеры в миллиметрах: Дизайн оптики для устройства: [Определение первого вывода корпуса] ① 1-й вывод можно определить по его увеличенной ширине.
Информацию о покупке, маркировке корпуса и другую дополнительную информацию см. в оригинальном даташите [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> [Ссылки] 1. BH1750FVI Digital 16bit Serial Output Type Ambient Light Sensor IC. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||