РадиоКот :: О микромощных МК с ЖКИ драйвером и датчике Si7021
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: Добавить тег

О микромощных МК с ЖКИ драйвером и датчике Si7021

Автор: Сергей Безруков (aka Ser60), sergeilb60@mail.ru
Опубликовано 23.01.2014
Создано при помощи КотоРед.

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

Как известно, для работы ЖКИ индикаторов необходимо периодически изменять полярность напряжения, приложенного к каждому сегменту. Напряжения управляющих сигналов для статических ЖКИ соответствуют логическим уровням МК и их легко сгенерировать программно (см, например, [1]). Для ЖКИ, работающих в мультиплексном режиме, необходимые сигналы получить сложнее, т.к. они включают несколько уровней напряжений. Ниже показан пример осциллограммы сигнала, формируемого на общем выводе ЖКИ в режиме с мультиплексом 1/3.

Хотя в литературе известны способы генерации и таких напряжений на МК, специальные встроенные драйверы ЖКИ ощутимо снижают нагрузку на процессор и позволяют получить гораздо более низкое токопотребление. Описываемые в статье схемы основаны на 3-разрядных 7-сегментных ЖКИ OD-301, производимых фирмой Orient Display (orientdisplay.com). ЖКИ работает в режиме мультиплекса 1/3 и имеет всего 10 выводов управления. Из них 3 вывода общие и 7 остальных – сегментные. Высота цифр составляет 12.2 мм и они легко читаются с расстояния в 2-3 метра, чему также благоприятно способствует широкий угол обзора дисплея.

Важно отметить низкое номинальное рабочее напряжение ЖКИ – всего 2.7В, что как нельзя лучше подходит для питания от литиевой батарейки CR2032. Для проверки ЖКИ в работе была собрана следующая схема на основе МК C8051F967 в корпусе QFN-40, выпущенного фирмой Silicon Labs на рынок в конце 2012. Я не буду сравнивать этот МК с современными ARM-ами, т.к. они находятся в разных весовых категориях. Но для 8-битного МК эта модель обладает весьма развитой периферией, включающей помимо драйвера ЖКИ и стандартных интерфейсов такие модули как 12-битный АЦП, DMA, CRC, AES, CPC, управляемый источник тока, и даже понижающий (Buck) DC/DC преобразователь с внешним дросселем.

Встроенный ЖКИ драйвер работает во всем диапазоне питающих напряжений самого МК (1.8 – 3.8 В) и имеет бустер, позволяющий поднять напряжение на ЖКИ максимум до 3.7В для регулировки контраста. Более того, бустер может быть сконфигурирован на работу в одном из следующих четырех режимов. На нижеприведенных графиках черным цветом показано напряжение батареи, снижающееся по мере работы прибора, а красным – напряжение на выходе бустера.

В первом режиме бустер выключен и напряжение на его выходе повторяет напряжение батареи. При этом достигается наименьшее токопотребление драйвера. Во втором режиме бустер остается неактивным при сниижении напряжения батареи до некоторого порога минимального контраста ЖКИ, устанавливаемого программно. По достижении этого порога бустер включается и стабилизирует контраст. В третьем режиме бустер включен все время и обеспечивает постоянный контраст ЖКИ. При этом бустер может работать как на повышение напряжения питания ЖКИ до программно установленного уровня, так и на понижение его. Токопотребление драйвера при этом наибольшее. Наконец, в четвертом режиме бустер также обеспечивает постоянный контраст ЖКИ пока напряжение батарей не снизится ниже программно устанавливаемого порога. По достижении этого порога бустер отключается. Конечно, такие режимы можно реализовать и программно, периодически контролируя напряжение питания МК с помощью АЦП, но аппаратная реализация этих режимов в драйвере ЖКИ несомненно очень удобна.

Согласно ДШ, собственное токопотребление ЖКИ драйвера с неподсоединенным ЖКИ составляет около 0.8 мкА, что полностью подтвердилось на практике. Измеренное токопотребление с работаюшим таймером, тактируемым от часового кристалла, составило 1.5 мкА, из которых 0.7 мкА приходится на таймер. Однако, подключение вышеупомянутого ЖКИ привело к повышению токопотребления всей схемы до 3 – 5 мкА в зависимости от отображаемых цифр и режима работы. Отмечу, что DC/DC преобразователь не работает непрерывно даже в режиме постоянного контраста ЖКИ. В проводимых мною экспериментах он автоматически включался и выключался с периодом примерно 1 сек, видимо для подзарядки накопительно конденсатора C3, что наблюдалось по варьированию токопотребления схемы. Прилагаемая тестовая программа просто циклически отображает все цифры на дисплее с периодом 1 сек, задаваемым таймером SmaRTClock. Работа с этим таймером в F967 гораздо упрощена по сравнению с другими МК серии F9xx. В общем, «силлабы» как всегда порадовали меня этой разработкой.

Обратимся теперь к другому МК, принадлежащему 16-битному семейству RL78L12 фирмы Renesas, и появившемуся в продаже в 2013. Я уже вкратце рассказывал здесь о семействе RL78 и вариантах программаторов для них [2]. Семейство L12 во многом сходно семействам G12/G13, и архитектурно отличается от них главным образом наличием драйвера ЖКИ. Однако, некоторые биты регистров специального назначения у L12 не совпадают с таковыми для G12, так что будьте внимательны. Эти МК не так богаты периферией как силабовские F96x, но зато обладают аппаратным 16×16-бит перемножителем и аппаратным 32/32-бит делителем и также ориентированы на микропотребление. Драйвер для программирования семейства RL78 в последней версии IAR работает лучше, чем в предыдущих - для достижения режима микропотребления можно не пользоваться утилитой Renesas Flash Programmer и программировать МК непосредственно из IDE.

Я опробовал модель в легко паяемом корпусе LQFP-32 с шагом выводов 0.8 мм. Внутренний ЖКИ бустер этого МК может повысить напряжение на ЖКИ вплоть до 5В, правда только в режимах с мультиплексом 1/3 или 1/4. Наш ЖКИ как раз разработан для режима мультиплекса 1/3 и измеренное токопотребление при работе бустера в режиме повышения напряжения питания, меняющегося в пределах 2.2 - 3В, до рабочего напряжения ЖКИ 3В оказалось около 4 мкА, т.е. практически такое-же, как и у C8051F967.

Но самой интересной для меня особенностью этого МК оказалось наличие режима работы встроенного блока подкачки (charge pump), в котором он генерирует напряжения V/3 и 2V/3, где V – напряжение питания МК. Именно такие напряжения и нужны используемому мной ЖКИ. Применение переключаемых конденсаторов для деления напряжения (на схеме ниже это конденсаторы C5 – C8) приводит к ощутимо меньшему токопотреблению по сравнению со схемами основанными на резистивных делителях. В таком режиме блок подкачки может работать при напряжении питания МК начиная от 2.2В, что идеально подходит для работы от CR2032. Таким образом, этот режим соответствует режиму 1 драйвера C8051F967, описанному выше. Однако, измеренное токопотребление схемы просто ввергло меня в шок, т.к. оно флюктуировало в пределах всего 0.9 - 1.1 мкА. Такого низкого токопотребления МК в режиме работы с таймером при активном драйвере ЖКИ и подключенным ЖКИ с мультиплексом я еще не видел и долго не мог поверить своим глазам, многократно перепроверяя измерения.

Воодушевившись результатом, я решил расширить тестовую схему проверки ЖКИ до реального микромощного устройства в подарок знакомым, дополнив его новым датчиком температуры и влажности SI7021, который фирмa Silicon Labs выпустила на рынок в конце 2013. В результате получился измеритель температуры и влажности воздуха со средним токопотреблением 1.5 мкА в светлое время суток при проведении измерений с периодом 30 сек. Отображение данных температуры и влажности на ЖКИ при этом чередуется с периодом около 4 сек. В темноте ЖКИ драйвер выключается и измерение величин не производится, снижая среднее токопотребление схемы примерно втрое. Датчиком освещенности служит фотодиод D1, напряжение на котором периодически отслеживается с помошью АЦП микроконтроллера. Принимая длительность светлого времени суток равной длительности темного, среднее потребление схемы за сутки получается около 1 мкА. Добавив ток саморазряда CR2032 порядка 0.7 мкА, ее емкости 220 мАч в идеале должно хватить на 220000/1.7 = 129411 часов непрерывной работы схемы, что соответствует 15 годам. Таким образом, реальная работоспособность устройства ожидается на протяжении порядка 10 лет без смены батарей.

Silicon Labs кардинально переработали свой первый датчик влажности SI7005 (см. [3]), устранив его странное поведение выражающееся в блокировке линии SDA в период неактивности. В результате появился усовершенствованный датчик SI7015. Оба этих датчика принадлежат к первому поколению датчиков. Не останавливаясь на достигнутом, фирма практически одновременно выпустила несколько датчиков температуры и влажности второго поколения, среди которых и находится наш SI7021. Если сравнить его с датчиками хх21 других производителей (SHT21 и HTU21D [4]), то окажется, что все они имеют идентичные габариты (3×3 мм), аналогичные параметры по точности, и совместимы по системе команд и выводам корпуса. Минимальное рабочее напряжение у SI7021 составляет 1.9В против 1.5В у HTU21D и 2.1В у SHT21. Однако, токопотребление во время измерения параметров среды у них снижено до 150 мкА (против, соответственно 300 и 450 мкА) и типичное время измерения температуры/влажности составляет всего 7/10 мс (против 44/14 мс и 66/17 мс, соответственно). Кроме того, датчики доступны по сенсационно низкой для такого класса датчиков розничной цене в 4.3 USD (даже с защитным фильтром). Это в 2 раза меньше цены на HTU21D без фильтра и в 6 раз дешевле, чем SHT21. Последние вообще фильтром не оснащаются, но отдельный фильтр SF2 может быть заказан и установлен на них на печатной плате пользователем.

Помимо отмеченных преимуществ, фирма пошла дальше в усовершенствовании нового датчика. В моделях конкурентов имеются 2 отдельные команды для измерения температуры и влажности. У SI7021 помимо них введена новая команда 0xE0, позволяющая считать температуру, при которой производилось последнее измерение влажности. Таким образом, для получения данных температуры и влажности можно просто подать команду измерения влажности, потом считать из датчика сырое (т.е. необработанное) значение влажности, и после подачи команды 0xE0 считать (также сырое) значение температуры. Этим существенно сокращается время проведения и чтения обоих измерений и, как следствие, нахождение датчика в активном режиме, что очень благоприятно влияет на токопотребление. Здесь я должен предостеречь читателей против подачи нерегламентированной команды 0xE0 в датчик HTU21D. Во время экспериментов я случайно послал в него такую команду, в результате чего датчик перестал показывать влажность, возвращая все время нулевое значение. Температура при этом измерялась нормально. Пересчет показаний SI7021 в значения температуры и влажности производится по таким-же формулам, как и у других моделей xx21.

После измерения и чтения затребованного параметра SI7021 автоматически входит в режим сна с наноамперным токопотреблением. Однако, следует иметь в виду, что после окончания измерения датчик продолжает находиться в активном режиме до тех пор, пока результат измерения не будет прочитан МК. Это относится как к режиму с блокировкой SCL линии интерфейса I2C, так и к режиму без блокировки. При этом его измеренное токопотребление составило около 230 мкА, так что в целях снижения токопотребления чтение измеренных данных из датчика следует производить оперативно. Интерфейс работы с датчиком выполнен на основе аппаратного I2C модуля в МК, частота тактирования линии SCL около 120 кгц.

Измеритель впоследствии был перенесен на печатную плату размером 23×46 мм, не намного превышающую размеры ЖКИ.

Датчик укреплен на отдельной маленькой плате, размещенной на тыльной стороне прибора и установленной на расстоянии 3 мм от основной платы на отрезках провода диаметром 0.3 мм. Такой дизайн выбран с целью минимизации влияния температуры основной платы на температуру корпуса датчика. Остальные элементы схемы установлены на верхней стороне платы под ЖКИ.

Литература

  1. Управление ЖКИ без контроллера: цифровой термометр, цифровой дисплей
  2. Недорогой программатор/отладчик для микроконтроллеров RL78
  3. О сенсоре температуры/влажности Si7005
  4. Сетевой логгер и сервер на базе модуля WIZ820io

 


Файлы:
Firmware


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

68 2 0