Например TDA7294

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

Экономичный термо-влагометр на RL78 и HIH-6130

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

Целью настоящего проекта было попробовать два новых устройства: 16-битные микроконтроллеры семейства RL78 фирмы Renesas и датчик температуры и влажности с цифровым интерфейсом HIH-6130 фирмы Honeywell. В результате получился следующий прибор для измерения комнатных температур (0 - 50°С) и относительной влажности (0 – 99%) воздуха.

 

Значения температуры и влажности чередуются на ЖКИ с периодом около 4 сек. При индикации температуры точка в правом верхнем углу индикатора выполняет роль символа градуса. Среднее токопотребление устройства около 1,3 мкА, т.е. литиевой батарейки типа CR2032 должно хватить более чем на 10 лет непрерывной работы.

Как видно из схемы – она из серии проще не бывает. МК управляет ЖКИ, инвертируя каждые 35 мсек состояние подключенных к нему выводов, и таким образом реализуя его программный драйвер. Сенсор подключен к МК через интерфейс I2C с подтягивающими резисторами R2 и R3, и, наконец, несколько фильтрующих конденсаторов в цепи питания. На этом описание схемы можно считать законченным. Поговорим немного подробнее про задействованные в ней микросхемы.

Если не ошибаюсь, это первая конструкция на сайте с использованием МК семейства RL78. В своей статье о программаторе для него я уже упоминал, что это семейство меня заинтересовало субмикроамперным потреблением в режиме сна с работающим таймером и 16-битной архитектурой. В семействе имеется несколько подсемейств, на настоящий момент F1x, I1x, L12, и G1x с разным функционалом и областью применения. Я не буду здесь переводить проспекты фирмы, где достаточно подробно описано каждое из подсемейств, тем более, что некоторые модели еще в стадии проектирования. Использованный в схеме МК принадлежит к подсемейству G1x, у которого в свою очередь имеется 4 подподсемейства: G12, G13, G14, и G1A, наш МК принадлежит к G13. В каждом из подподсемейств имеется довольно много моделей с разным объемом памяти и числом выводов корпуса. Например, в G13 это число варьируется от 20 до 128, большинство из них в легко паябельных корпусах типа TSSOP. Также как некоторые другие производители, Renesas позаботилась о преемственности в пределах подсемейств и простоте перехода от маловыводных моделей к многовыводным без серьезной переработки печатной платы. Широкий выбор моделей способствует оптимальному подбору МК под приложение.

В противоположность большинству фирм, характеризующих свои МК как RISC, фирма охарактеризовала семейство RL78 как CISC (см. Википедию про эти классы архитектур). По-моему они поскромничали, т.к. архитектура G13 не сложнее, чем, скажем, MSP430, а во многом даже проще, чем последняя. Но не в названии дело. Система команд процессора сильно напоминает смесь 8051с MSP430 – также имеется аккумулятор, участвующий во всех арифметико-логических операциях, 4 переключаемых банка регистров, и много режимов адресации. Объем адресуемого пространства памяти составляет 1 МБ, что требует 20-битных адресов. Это реализовано в 16-битном процессоре с помощью двух сегментных регистров (вспоминаете о 8086?) и хитрой системы отображения (mirrowing) нижних адресов памяти на верхние у малых моделей, что позволяет во многих случаях обходиться без переключения сегментных регистров. Такие сложности обусловлены, в частности, стремлением минимизировать число байт в командах и тем самым их время выборки из памяти.

Конечно, выше был лишь очень беглый экскурс по архитетуре RL78. Можно-ли порекомендовать эти МК начинающим – я-бы не рискнул (а «кончающие» сами определятся). Хотя, если писать программы на С всех тонкостей архитектуры знать и не нужно. Кроме того, фирма предлагает конфигуратор системы Applilet с интуитивным интерфейсом, который выдает код на С (и только на С). Видимо, фирма сразу посчитала, что эти МК никто не будет программировать на ассемблере, поэтому если Вы фанат АСМа, то ДШ на настоящий момент Ваш практически единственный документ. Даже диструбутив системы IAR Embedded Workbench не включает примеров программ на АСМе и их файлы заголовков для С имеют ограниченное применение для компилятора с АСМа. Помимо ДШ и довольно подробных апноутов в свободном доступе для загрузки с вебсайта фирмы уже имеется книга по RL78, но также ориентированная на С.  

Интересными периферийными блоками у RL78 являются модуль часов реального времени с функцией календаря, а также аппаратный 16×16-бит перемножитель с опцией накопления произведений для алгоритмов DSP и аппаратный 32/32-бит делитель. Во многом благодаря последним программа МК получилась самой простой из всех моих подобных устройств. Я ее написал на АСМе, чтобы лучше понять для себя и «прочувствовать» архитектуру. Программа также задействует аппаратный модуль I2C для связи с сенсором на частоте около 80 кгц. К сожалению, этот модуль не предназначен для совместной работы с имеющимся в МК модулем DMA. В активном режиме МК тактируется от внутреннего генератора на частоте 8 мгц.

Но, довольно про МК и обратимся теперь к датчику. Тем, кто занимается подобными устройствами наверняка знакомы такие датчики температуры и влажности с цифровым интерфейсом как SHT15 или SHT21 фирмы Sensirion. Из фирм с «повсеместно признанной репутацией» они были до недавнего времени чуть-ли не единственными датчиками подобного типа на рынке. Однако, применение их в радиолюбительской практике ограничивается немалой ценой. Недавно появившeеся семейство датчиков HIH-613x фирмы Honeywell  составит им теперь серьезную конкуренцию. Эти датчики тоже недешевые, но тем не менее (пока?) в 2 раза дешевле чем SHT и обладают аналогичными параметрами. Формулы для пересчета выдаваемых 14-битных кодов в значения температуры и влажности гораздо проще и не надо производить программную термокомпенсацию показаний влажности. Особенностью сенсора влажности в датчике является проведение время от времени самодиагностики. В это время его показания не соответствуют действительности и их следует игнорировать. Режим самодиагностики определятся по старшему биту первого считанного байта из датчика, см. подробнее ДШ. Помимо корпусов SO-08 датчики также выпускаются в выводных корпусах типа SIP. Показания датчика очень стабильны с высокой повторяемостью от измерения к измерению (при неизменных параметрах среды), что позволило в программе обойтись без усредняющих фильтров, еще более упростив ее.

 

Измеритель собран на печатной плате размером примерно 4×4 см. После распайки деталей плата со стороны печатных проводников покрыта лаком для ногтей. Для уменьшения влияния температуры платы на датчик, вокруг него в плате выпилены пазы. Задняя и передние плексиглазовые панели сделаны чуть больше по высоте, чем плата для предотвращения касания платы с поверхностью, на которой установлен прибор. При окончательной сборке конструкции защитная пленка с датчика снята. Держатель батареи приклеен к задней стенке «корпуса» эпоксидным клеем. ЖКИ – модель VI-201-DP-RC-S  фирмы Varitronix. Конденсатор C3 типоразмера 0805, остальные пассивные элементы – 0402. Файл платы для Eagle и исходный текст программы вместе с файлом проекта для IAR, а также HEX прилагаются.


Файлы:
Исходный текст программы, HEX, и файл платы


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


ID: 1243