SLAA076A
 

Реализация часов реального времени на MSP430

Резюме

В данном примере применения описывается создание часов реального времени (RTC) на микроконтроллере MSP430 при помощи встроенного таймера Timer_A или сторожевого таймера. Семейство микроконтроллеров MSP430 производства компании Texas Instruments является семейством 16-разрядных RISC микроконтроллеров со сверхнизким потреблением, усовершенствованной архитектурой и богатым набором периферийных устройств. В примере применения дается краткий обзор микроконтроллеров семейства MSP430 и более подробно обсуждается применение их в качестве часов реального времени. В данном описании приведены примеры схемной реализации, два примера кода прикладной программы и рассмотрены общие вопросы по проблемам обеспечения точности и стабильности.

1. Введение

Семейство микроконтроллеров MSP430 производства компании Texas Instruments является семейством 16-разрядных RISC микроконтроллеров со сверхнизким потреблением, усовершенствованной архитектурой и богатым набором периферийных устройств. Архитектура микропроцессоров реализована на основе новаторской схемы тактирования и передовых конструкторских решений, таких как высоко ортогональная структура, делающая прибор очень мощным и гибким. Микроконтроллеры MSP430x1xx потребляют менее 350 мкА при работе на частоте 1 МГц при 3 В питании и могут пробудиться из режима "сна", в котором потребляют менее 2 мкА, менее чем за 6 мкс. Такие низкое потребление и малое время выхода из режима "сна" позволяют изготавливать на основе этих микроконтроллеров устройства, работающие от автономного источника питания.

Кроме того, микроконтроллеры семейства MSP430 имеет обширный набор встроенных периферийных модулей и большой объем встроенной памяти, что позволяет изготавливать на их основе реальные "системы на кристале". Микроконтроллеры содержат такие периферийные модули как 12- и 14- битные АЦП, градиентные АЦП, мультиплицируемые таймеры (некоторые с регистром захвата/сравнения и способностью формировать ШИМ сигнал), драйвер ЖКИ, встроенный задающий генератор, H/W перемножитель, USART, сторожевой таймер, GPIO и т.д.

1.1 Применение часов реального времени

Часы реального времени (RTC) используются в различных устройствах - от наручных часов до систем регистрации событий. В данном примере применения описывается способ реализации часов реального времени на микроконтроллере MSP430F1121. В некоторых приложениях MSP430, работающий в режиме часов реального времени может заменить аппаратные RTC, что позволит упростить разработку системы и снизить ее стоимость. В данном описании показаны примеры реализации часов реального времени на основе таймера Timer_A и сторожевого таймера; однако, можно использовать и любой другой таймер MSP430.

Все микроконтроллеры семейства MSP430 способны выполнять функции часов реального времени. Дополнительные повышение степени системной интеграции, снижение потребления и стоимости могут быть достигнуты и за счет выполнения микроконтроллером MSP430 функций других периферийных модулей. Например, микроконтроллеры ’33x серии могут выполнять функции часов реального времени, супервизора напряжения питания системы, драйвера ЖКИ и UART, объединяя все эти четыре функции в одном приборе со сверх малым потреблением.

1.2 Задающий генератор MSP430

Встроенный задающий генератор - одна из обычно неправильно истолковываемых пользователями MSP430 тем. Основной причиной заблуждения является непонимание того, как вырабатываются стабильные системные синхроимпульсы. Все микроконтроллеры семейства MSP430 содержат и RC- генератор с цифровым управлением, и кварцевый генератор. RC- генератор обычно используется для синхронизации вычислительного ядра, а кварцевый генератор - для синхронизации периферийных устройств. В описываемых часах реального времени кварцевый генератор используется в качестве генератора тактовых импульсов для таймера/счетчика, который является времязадающим (таймер Timer_A или сторожевой таймер). Поэтому здесь не возникает проблем нестабильности, обычно присущих RC- генераторам.

2. Реализация часов реального времени

Общая идея реализации RTC весьма проста. Часы реального времени состоят из таймера/счетчика, вырабатывающего 1- секундные прерывания и небольшой программы обработки этих прерываний. Вычислительное ядро может бездействовать или выполнять другие функции между прерываниями. Данный пример применения и прикладная программа разработаны для микроконтроллера MSP430F1121. В нижеследующих разделах дается полное описание этого устройства.

2.1 Формирование синхроимпульсов

Для формирования синхроимпульсов в RTC используется LFXT1 автогенератор, работающий в режиме LF с 32768 Гц кварцевым резонатором. Выход генератора LFXT1 подключен к формирователю ACLK. В свою очередь ACLK используется в качестве задающего генератора для таймера/счетчика, который является основой часов реального времени.

DCO вырабатывает сигнал для синхронизации вычислительного ядра и MCLK. Фактически вычислительное ядро работает асинхронно с периферийным таймером/счетчиком. Точность RTC не изменяется до тех пор, пока вычислительное ядро способно обслуживать каждое прерывание до возникновения следующего. Для более полного ознакомления с основным синхронизирующим модулем обратитесь к руководству пользователя по микроконтроллерам семейства MSP430x1xx (доступному в интернете по адресу http://www.ti.com/sc/msp430) и техническому описанию микроконтроллеров семейства MSP430x11x1.

2.2 Выбор Таймера

Микроконтроллер MPS430F1121 содержит два таймера: сторожевой таймер и таймер Timer_A. В данном примере применения описываются часы реального времени, реализованные на основе обоих таймеров. В обоих случаях таймер настроен таким образом, чтобы работать непрерывно и формировать прерывания точно в 1-секундных интервалах. Так как таймер настроен на работу от ACLK, а генератор тактовых импульсов работает от 32768 Гц кварцевого резонатора, то таймер просто досчитывает до 32767 и обнуляется, вырабатывая при переполнении запрос на прерывания. Для выполнения функции часов реального времени вычислительному ядро необходимо только обработать это прерывание.

Любой таймер, способный вырабатывать 1- секундные прерывания может использоваться с прикладной программой, приведенной в данном примере применения. Кроме того, программа может быть легко переделана для работы с любым другим таймером, формирующим периодические прерывания. Например, если таймер формирует прерывания каждые 0.5 секунды, то вычислительное ядро для формирования 1- секундных прерываний может использовать только каждое второе прерывание, и так далее.

2.3 Внешний интерфейс

Приведенные в приложении прикладные программы RTC не обеспечивают внешнего интерфейса. Если использовать вместо оговоренного любой другой микроконтроллер семейства MSP430, то имеется возможность выбора обслуживаемого интерфейса: I2C, параллельный, UART, последовательный и т.д. Для микроконтроллеров семейства MSP430 имеются программные модули, позволяющие реализовать эти интерфейсы. Для изготовления законченных часов реального времени на базе описываемого устройства необходимо просто добавить в приведенный код прикладной программы код программы обслуживания нужного интерфейса. Более детальные обсуждения некоторых из возможных интерфейсов могут быть найдены в MSP430 FamilyApplication Report Book и других примерах применения.

2.4 Описание принципиальной схемы

На рисунке 1 приведена принципиальная схема часов реального времени. Обратите внимание, что единственный требуемый внешний компонент - 32768 Гц кварцевый резонатор.

Принципиальная схема часов реального времени
Рисунок 1. Принципиальная схема часов реального времени

2.5 Потребляемый ток

Типовой ток потребления микроконтроллера MSP430F11x1 при работе в активном режиме на частоте 1 МГц от 3 В источника питания - 300 мкА. Типовой ток потребления в третьем режиме пониженного потребления (режиме сна) - 1.6 мкА при 3 В питании. Микроконтроллер выходит из третьего режима пониженного потребления менее чем за 6 мкс, а подпрограмма синхронизации выполняется примерно за 130 мкс. Учитывая сверхнизкий ток потребления и малое время восстановления работоспособности, микроконтроллер MSP430F11x1, работающий в качестве RTC потребляет очень маленький средний ток, а поэтому способен работать длительное время от автономного источника питания.

2.6 Проблемы обеспечения точности

Точность RTC зависит от точности используемого кварцевого резонатора. Это позволяет выбрать такой кварцевый резонатор, который обеспечит требуемую точность.

2.6.1 Выбор точности кварцевого резонатора

Точность кварцевого резонатора определяется, прежде всего, следующими двумя параметрами: стабильностью резонансной частоты и емкостью нагрузки.

Влияние стабильности очевидно: чем выше стабильность резонансной частоты кварцевого резонатора, тем выше будет точность RTC. Например, RTC, использующие кварцевый резонатор со стабильностью резонансной частоты 30 ppm, будут более точными, чем часы, использующие кварцевый резонатор со стабильностью резонансной частоты 200 ppm.

Емкость нагрузки также влияет на точность хода RTC. Емкость нагрузки кристалла - это емкость, требующаяся резонатору, а не собственная емкость резонатора. Для работы на указанной частоте резонатору необходима емкостная нагрузка. 32768 Гц автогенератор всех микроконтроллеров семейства MSP430 содержит встроенные нагрузочные конденсаторы с номинальной емкостью 12 пФ. Так как эти конденсаторы включены последовательно, то суммарная емкость нагрузки получается 6 пФ.

Кроме того, емкость, сформированная автогенератором, увеличивается за счет существующих паразитных емкостей печатной платы и выводов. Например, 2 пФ паразитная емкость не является редкостью на печатной плате. Добавление 2 пФ к 6 пФ увеличивает полную емкостную нагрузку для резонатора до 8 пФ. В некоторых случаях, в зависимости от технических параметров резонатора и паразитных емкостей, в схему должны быть добавлены параллельные конденсаторы для обеспечения требуемой емкостной нагрузки.

2.7 Расширяемость

MSP430x11x - недорогие микроконтроллеры со сверхмалым потреблением, которые могут идеально заменить аппаратно реализованные часы реального времени. Основным преимуществом от использования MSP430 в качестве RTC является расширяемость функций, выполняемых MSP430 по сравнению с обыкновенными часами реального времени. Все микроконтроллеры MSP430x11x содержат 16-разрядное вычислительное ядро с RISC архитектурой, 16-разрядный сторожевой таймер, 16-разрядный таймер Timer_A (с тремя регистрами захвата/сравнения и аналоговым компаратором), минимум 128 байтное ОЗУ, минимум 2 Кбайтное ПЗУ и минимум 14 линий портов ввода-вывода общего назначения (GPIO). Не все эти функциональные возможности доступны одновременно у одного микроконтроллера, но они позволяют обеспечить устройству большую гибкость, чем дают стандартные аппаратно реализованные RTC.

Кроме того, модуль таймера Timer_A способен выполнять аналого-цифровое преобразование, формировать сигнал с ШИМ и работать в режиме UART с пропускной способностью до 115 200 бод. Сторожевой таймер способен работать как простой таймер, а все выводы GPIO и все периферийные устройства имеют широкие возможности по формированию прерываний.

3. Обсуждение прикладной программы

Код прикладной программы часов реального времени приведен в двух вариантах в приложении А. В каждом примере есть подпрограмма инициации, основная ветвь, подпрограмма расчета временных показателей (часов, минут и секунд) и подпрограмма обработки прерывания, отслеживающая 1- секундные прерывания от таймера.

Подпрограмма инициации производит настройку модулей MSP430. Модуль таймера настраивается на непрерывный счет от 0 до 32767 и формирование прерывания при переполнении. Также подпрограмма производит установку необходимых параметров основного модуля синхронизации.

Основная ветвь - программа, выполняемая каждый раз после формирования прерывания, и инициализирующая режим сна микроконтроллера. Даже тогда, когда вычислительное ядро переходит в режим ожидания, таймер все равно продолжает работать.

Подпрограмма обслуживания прерывания (interrupt service routine - ISR) таймера обрабатывает биты регистра состояния (status register - SR), которые записываются в стек до выполнения подпрограммы обслуживания прерывания. Это позволяет вычислительному ядру находиться в активном режиме, а не в режиме сна, по выходу из подпрограммы обслуживания прерывания.

Подпрограмма расчета временных параметров выполняется каждый раз после 1- секундного прерывания таймера. Она пересчитывает значения секунд, минут и часов в двоично-десятичной форме. В описании встроенных периферийных модулей микроконтроллеров семейства MSP430 можно найти более сложную подпрограмму, которая высчитывает и значения дней, месяцев и лет (учитывая и високосные годы).

4. Заключение

Микроконтроллеры семейства MSP430 могут работать в качестве часов реального времени с дополнительными функциональными возможностями, что дает дополнительную гибкость устройству и повышает степень интеграции на системном уровне.

Связанные документы

Потребительская Электроника
SLAA076A (118.3 Кб), 30.11.2009
Реализация часов реального времени на MSP430
SLAA076S (23.5 Кб), 30.11.2009
Приложение А: пример программы
SLAA076A (5.8 Кб), 30.11.2009
Файлы программ
 
Автор документа: Жанна Свирина , http://www.gaw.ru"
Дата публикации: 30.11.2009
Дата редактирования: 30.11.2009
Кол-во просмотров 4927
 
 Все новости одной лентой