Термостат с ультранизким потреблением
Резюме
В этом примере применения описан малопотребляющий термостат с батарейным питанием на базе микроконтроллера MSP430F41x. Показания с термистора снимаются с использованием slope-метода аналогово-цифрового преобразования. Прибор постоянно отображает температуру на ЖКИ, непосредственно управляемом MSP430, несмотря на то, что микроконтроллер проводит основную часть времени в режиме пониженного энергопотребления. Пользователь может вводить требуемый температурный порог, который автоматически будет сохранен в энергонезависимой флеш-памяти. Таким образом, установленное значение не будет утеряно даже при смене батарей. Весь объём флеш-памяти последовательно заполняется запоминаемыми значениями перед тем, как она будет стёрта и использована повторно. Это позволяет увеличить срок службы флеш-памяти. Также система включает в себя часы реального времени, которые также могут быть отображены на экране.
1 Введение
При построении большинства приборов, использующих батарейное питание можно извлечь выгоду, применяя многофункциональные высокоинтегрированные интегральные схемы. При этом уменьшаются число навесных элементов, размеры печатной платы, сроки разработки и цена. Однокристальные решения также упрощают процесс разработки, позволяя сконцентрировать основное внимание только на работе с самим чипом, на котором можно реализовать такое решение. В данном примере предлагается пример подобного решения на базе МК MSP430F41x. Встроенный компаратор осуществляет slope-аналого-цифровое преобразование сигнала термистора для измерения температуры окружающей среды. Непосредственно к MSP430 подключен внешний ЖКИ, отображающий температуру и другую информацию. Флеш-память микроконтроллера используется для хранения заданных пользователем настроек порога температуры в случае снятия питания. MSP430 также имеет универсальную систему тактирования и схему прерываний, позволяющие наиболее полно использовать возможности режимов пониженного энергопотребления, что продляет срок службы батареи без влияния на работу часов реального времени.
Схема термостата на базе MSP430F41x
2 Теория работы
Прибор может работать в одном из четырёх режимов, определяемом нажатием кнопки «Режим»: «Термостат», «Установка температуры», «Часы» и «Секундомер». В режимах «Установка температуры» и «Часы» пользователь может корректировать установки температуры и времени кнопкой «Установка».
Программное обеспечение построено на базе прерываний, возникающих один раз в секунду. Между прерываниями контроллер находится в режиме пониженного энергопотребления LPM3 и потребляет всего 7µA. Использование этого режима незаметно для пользователя, т.к. ЖКИ (Varitronix # VIM-503-DP-FC-S) при этом остаётся активным. Ежесекундные прерывания генерируются одним из счётчиков модуля базового таймера Basic Timer, который не прекращает работу даже в режиме пониженного потребления LPM3. Второй счётчик модуля генерирует тактовую частоту ЖКИ, что позволяет последнему постоянно быть включенным.
Базовый таймер Basic Timer тактируется 32kHz кварцевым генератором, который также не прекращает работу в режиме LPM3. При возникновении 1-секундного прерывания запускается встроенный умножитель частоты FLL+ , при этом программа выполняется на предустановленной высокой частоте. Также при этом обновляются часы реального времени, независимо от того, находится прибор в режиме «Часы» или нет. Далее обнуляются биты режима низкого энергопотребления в стеке, таким образом, при возвращении в главный цикл программы из подпрограммы обработки прерываний, ЦПУ остаётся в активном режиме. В главном цикле процессор определяет текущий режим работы и передаёт управление соответствующим подпрограммам. После их выполнения ЦПУ сразу же переходит в режим пониженного потребления LPM3 и ожидает прихода следующего 1-секундного прерывания.
MSP430 поддерживает статический, 2-х, 3-х и 4-х мультиплексированный режим ЖКИ. В данном примере использован 3 ? -цифровой 3-х мультиплексированный ЖКИ. Хотя программное обеспечение для 3-х мультиплексированных ЖКИ несколько сложнее, чем для остальных видов, такие ЖКИ имеют лучшую контрастность во всём температурном диапазоне, чем 4-х мультиплексированные ЖКИ. При этом у них меньше выводов сегментов, чем у статических и 2-х мультиплексных ЖКИ. Выводы сегментов процессора, не используемые для управления ЖКИ, могут быть использованы в качестве портов ввода-вывода общего назначения. Подробно вопросы использования режимов мультиплексирования и выводов сегментов рассмотрены в руководстве пользователя MSP430x4xx User’s Guide.
В режиме термостата прибор измеряет сопротивление термистора (Murata #NTH4G1S33B103F01, Radio Shack #270-110A), которое изменяется в соответствии с температурой, осуществляя slope-преобразование. Такого рода преобразование реализуется путём заряда конденсатора ёмкостью 0.1µf до напряжения, близкого к VCC через опорный резистор, подключенный к порту ввода-вывода. Далее конденсатор разряжается либо через известный опорный резистор, либо через неизвестное сопротивление термистора. В это же время таймер Timer A считает время разряда. Уровень разряда конденсатора контролируется встроенным компаратором микроконтроллера MSP430. Данный уровень сравнивается со встроенным источником опорного напряжения и в момент, когда напряжение на конденсаторе падает ниже уровня опорного напряжения, формируется прерывание. При этом таймер останавливается, и время разряда конденсатора фиксируется. Аналогичный процесс производится как для опорного резистора, так и для термистора. Как только определены два времени разряда для данных сопротивлений, значение сопротивления термистора вычисляется отношением числа тактов при разряде термистора к числу тактов при разряде опорного резистора и последующим домножением на известное значение опорного резистора. Далее программное обеспечение переводит значение сопротивления в температуру, которая сравнивается с установленным пользователем значением. Если температура выше установленного порога или равна ему, показания ЖКИ начинают мигать, а вывод 5 порта 2 переводится в состояние лог. «1» и остаётся в таком состоянии до тех пор, пока температура превышает порог или равна ему. Мигающий ЖКИ информирует пользователя, а вывод порта может быть использован для управления нагревателем/охладителем. Так как температура в комнате, как правило, изменяется медленно, нет необходимости измерять её ежесекундно. Программа подсчитывает число секунд, в течение которого прибор находится в режиме термостата и повторяет измерение температуры только после того, как пройдёт определённое предустановленное время. В данном примере оно равно 4 сек. Это позволяет дополнительно экономить ресурс батареи, т.к . slope-преобразование производится только один раз в несколько секунд.
Когда прибор находится в режиме установки порога температуры, на ЖКИ отображаются символы «SP» и две цифры установленного порога. Пользователь может изменять порог нажатием либо удержанием кнопки «Установка». При этом значение порога увеличивается на один градус в пределах рабочего диапазона термостата. По достижении максимального значения, показания сбрасываются на минимум и продолжают увеличиваться от минимального значения. По выходу из режима установки при нажатии кнопки «Режим», программа сравнивает новый порог с установленным ранее значением и не предпринимает никаких действий в том случае, если значение не изменилось. В случае смены порога, программа снимает защиту с флеш-памяти, что разрешает стирание и запись. Далее ПО проверяет весь ли сегмент информационной флеш-памяти заполнен. Если нет, указатель на текущее положение в памяти инкрементируется и производится запись в следующую ячейку памяти. В том случае, если сегмент информационной памяти полностью заполнен, он стирается, указатель текущего положения устанавливается на начало сегмента и производится запись нового значения порога. После этого, запись и стирание флеш-памяти блокируется. Использование всех 256-ти байт сегмента информационной флеш-памяти перед стиранием сегмента позволяет продлить срок службы прибора. Ресурс записи флеш-памяти ограничен десятью тысячами циклов при температуре 25°С (данные на момент написания статьи). Это означает, что порог теоретически может быть переписан 2.56 миллиона раз перед тем, как возникнет ошибка записи флеш-памяти.
Также прибор содержит часы реального времени. Текущее время в часах и минутах отображается на ЖКИ, когда прибор находится в режиме «Часы». Коррекция показаний осуществляется в данном режиме нажатием либо удержанием кнопки «Установка». С учётом того, что основная функция прибора это термостат, через 10 секунд он автоматически переходит из режима «Часы» в режим «Термостат». Кроме этого, существует режим «Секундомер», в котором осуществляется подсчёт секунд и вывод значения на ЖКИ.
3 Заключение
Микроконтроллер MSP430F41x может быть использован в большом числе приборов в качестве однокристального решения благодаря широкому набору встроенных периферийных модулей. В нашем примере термостата, ‘F41x позволяет считывать значение с внешнего датчика, обновлять и хранить значение порога в энергонезависимой памяти, организовать часы реального времени, осуществлять требуемые действия в зависимости от измеренной температуры и отображать информацию на ЖКИ. При этом, выполняя все вышеуказанные действия, MSP430F41x имеет отличные показатели по энергопотреблению. Данное программное обеспечение может быть расширено путём использования верхнего и нижнего температурного порога либо использованием различных значений порога в зависимости от времени дня либо дня недели. MSP430F41x также может быть использован для хранения показаний температуры и/или порогов с целью последующего использования либо анализа.
Пример программы
|
|
10Kb Пример программы на языке Ассемблер для термостата с ультранизким потреблением |
|