В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации




Главная страница > Применение > Микроконтроллеров > MSP430
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Термостат с ультранизким потреблением

Резюме

В этом примере применения описан малопотребляющий термостат с батарейным питанием на базе микроконтроллера MSP430F41x. Показания с термистора снимаются с использованием slope-метода аналогово-цифрового преобразования. Прибор постоянно отображает температуру на ЖКИ, непосредственно управляемом MSP430, несмотря на то, что микроконтроллер проводит основную часть времени в режиме пониженного энергопотребления. Пользователь может вводить требуемый температурный порог, который автоматически будет сохранен в энергонезависимой флеш-памяти. Таким образом, установленное значение не будет утеряно даже при смене батарей. Весь объём флеш-памяти последовательно заполняется запоминаемыми значениями перед тем, как она будет стёрта и использована повторно. Это позволяет увеличить срок службы флеш-памяти. Также система включает в себя часы реального времени, которые также могут быть отображены на экране.

1 Введение

При построении большинства приборов, использующих батарейное питание можно извлечь выгоду, применяя многофункциональные высокоинтегрированные интегральные схемы. При этом уменьшаются число навесных элементов, размеры печатной платы, сроки разработки и цена. Однокристальные решения также упрощают процесс разработки, позволяя сконцентрировать основное внимание только на работе с самим чипом, на котором можно реализовать такое решение. В данном примере предлагается пример подобного решения на базе МК MSP430F41x. Встроенный компаратор осуществляет slope-аналого-цифровое преобразование сигнала термистора для измерения температуры окружающей среды. Непосредственно к MSP430 подключен внешний ЖКИ, отображающий температуру и другую информацию. Флеш-память микроконтроллера используется для хранения заданных пользователем настроек порога температуры в случае снятия питания. MSP430 также имеет универсальную систему тактирования и схему прерываний, позволяющие наиболее полно использовать возможности режимов пониженного энергопотребления, что продляет срок службы батареи без влияния на работу часов реального времени.

Схема термостата на базе MSP430F41x
Схема термостата на базе 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 Пример программы на языке Ассемблер для термостата с ультранизким потреблением