Компоненты и технологии, № 6'2003
Микроконтроллеры MSP430xl1xl:
рояли в кустах
Среди моих разработок есть одна, реализация которой застряла из-за невозможности подобрать необходимую элементную базу. Опуская подробности, скажу, что, по сути, это матрица светодиодов 5x7, размером 5,5х4,2х3,5 мм (размер имеет значение!), к которой должно подходить не более 3 проводов (питание и данные).
Все застопорилось на выборе управляющей схемы. Малые объемы производства не позволяли применять бескорпусные микросхемы. Решение пришло неожиданно, во время посещения выставки «Экспо-Электроника 2003». Подбирая свежую техническую литературу, я поинтересовался наличием компакт-дисков с описанием продукции Texas Instruments. Пока мне искали диски, я разговорился с менеджером фирмы. Среди прочих вопросов был и тот самый, «больной».
Юрий Ермаков
реальный размер нового корпуса 24-выводной RGE (QFPN)
14 Ґі
Рис. 1. Микроконтроллер MSP430k11k1
Мне показали буклет Т1 по микроконтроллерам М8Р430, где на развороте скромно, в верхнем углу, разместился рисунок 24-вы-водного корпуса размером 4x4 мм! Оказалось, что на третий квартал 2003 года запланирован выпуск младших представителей семейства — М8Р430х11х1 в новых корпусах (рис. 1). Потом, в спокойной обстановке изучая литературу по этим микроконтроллерам, я пришел к выводу, что контроллеры М8Р430 — настоящая находка. Судите сами.
Семейство МБР430
Все представители семейства были разработаны в основном для применения в системах с батарейным питанием. Но это не означает, что эти контроллеры нельзя использовать в других сферах. Наличие интегрированной периферии, в частности АЦП, ШИМ и компараторов, а также сверхнизкое потребление мощности делает их пригодными для использования в преобразователях, сетевых блоках питания, интеллектуальных датчиках, в качестве управляющих контроллеров, контроллеров клавиатур, драйверов матричных ЖКИ и контроллеров светодиодных индикаторов. Правда, из-за небольшого выходного тока портов (12 мА), в последнем случае их применение ограничено. Потребление мощности этими контроллерами очень невелико:
0,1 мкА — в «спящем» режиме с удержанием содержимого ОЗУ; 0,8 мкА — в режиме работы часов реального времени; 250 мкА — при выполнении инструкций в активном режиме. Максимальный ток, потребляемый этими контроллерами при максимальной тактовой частоте 8 МГц, напряжении питания 3,3 В и всей включенной периферии составляет не более 4,5 мА для самых архитектурно сложных устройств, для остальных же членов семейства этот ток не превышает 2,8 мА. Для приложений
с повышенными требованиями к потреблению энергии и некритичных к производительности, потребляемый ток может быть снижен вплоть до 1 мкА и ниже. Причем использование «спящих» и других режимов экономии энергии позволяет достичь еще более впечатляющих результатов.
Все контроллеры семейства имеют 16-разрядный процессор с RISC-подобной архитектурой, позволяющей выполнять регистровые операции за 1 машинный цикл. Фон-неймановская архитектура (с раздельной шиной адреса и данных) в сочетании с гибкой системой распределения тактовых импульсов от нескольких генераторов позволяет разработчикам использовать периферию с ресурсами ядра при различных скоростях работы. Еще одним эффектом применения этой архитектуры является то, что память программ, данных и периферия расположены в едином адресном пространстве. В результате для доступа к кодам операций, данным и к периферии могут использоваться одни и те же инструкции, даже имеется возможность выполнения команд из оперативной памяти.
Контроллеры выпускаются с несколькими типами памяти программ: Flash, масочной, с УФ-стира-нием и однократно программируемой, емкостью от 1 до 60 кбайт. Одна и та же версия контроллера выпускается с несколькими типами ПЗУ программ под разными обозначениями.
Те самые
Теперь, после краткого представления семейства, следует подробно рассказать о контроллерах — обладателях новых корпусов. Те разработчики, кому необходим встроенный многоканальный АЦП или «фирменный» последовательный порт, могут успокоиться — в этой группе такая периферия не предусмотрена. Правда, тут есть свой «рояль в кустах».
-Q-
Компоненты и технологии, № 6'2003
Таблица. Фрагмент сводной таблицы по МБР430 (лишние колонки не убирались, чтобы показать, что есть у других представителей этого семейства)
контроллер (С) масочн. (^) ^Іі ПЗУ ОЗУ вх.- вых. ПДП ЖКИ сег. стор. таймер 16 бит баз. таймер 2x8 бит интерв. таймер 8 бит тайм/ порт (2) 8 бит таймер А 16 бит таймер В 16 бит ІІБДРТ 12С БУБ БОР апп. умн. комп. А АЦП ЦАП выв., корпус цена, $
МЗР430Р1101Л 1 К 128 14 - - + - - - + - - - - - - + прогр. - 20 ОЭУ, Р^ 1?ОЕ 0.99
МЗР430С1101 1 К 128 14 - - + - - - + - - - - - - + прогр. - 20 ОЭУ, Р^ 1?ЭЕ 0.6
МЗР430Р1111Л 2 К 128 14 - - + - - - + - - - - - - + прогр. - 20 ОЭУ, Р^ 1?ЭЕ 1.34
МБР430С1111 2 К 128 14 - - + - - - + - - - - - - + прогр. - 20 ОЭУ, Р^ 1?ЭЕ 1.1
М5Р430Р1121Л 4 К 256 14 - - + - - - + - - - - - - + прогр. - 20 ОЭУ, Р^ 1?ЭЕ 1.74
МБР430С1121 4 К 256 14 - - + - - - + - - - - - - + прогр. - 20 ОЭУ, 0У, Р^ RGE 1.34
Во всех контроллерах есть встроенный компаратор А и таймер-счетчик А, позволяющие реализовать АЦП приемлемой точности. Программное обеспечение для измерения напряжения, тока, сопротивления, а также емкости с помощью этих устройств уже создано. А последовательный порт со скоростью передачи данных от 75 до 115200 бод создается на выводах Р1.1 и Р2.2 с помощью таймера А и готового программного модуля, предлагаемого Т1. Ведь все регистры захвата-сравнения таймера А имеют аппаратную поддержку для реализации последовательного порта (см. таблицу).
Корпуса представлены на рис. 3.
Как видно из таблицы, обладатели самых маленьких корпусов имеют один и тот же минимальный из возможных набор устройств и отличаются только типом ПЗУ и размером ОЗУ и ПЗУ. Питаются они постоянным напряжением от 1,8 до 3,6 В, при этом потребляя в активном режиме 160 мкА на частоте 1 МГц (Ипит = 2,2 В), в режиме останова — 0,7 мкА, в «спящем» режиме с сохранением содержимого ОЗУ — 0,1 мкА. Переход из «спящего» в рабочий режим происходит за 6 мкс.
Система синхронизации контроллеров позволяет реализовать три источника синхропоследовательностей из двух независимых генераторов.
1. Главный системный генератор (ведущий) МСЬК;
2. Вспомогательный системный генератор (ведущий) вМСЬК;
3. Внешний (ведомый) генератор АСЬК. Первый используется для синхронизации
ЦПУ и системы, второй — для синхронизации периферийных модулей, третий служит источником синхропоследовательности ЬБХТ1СЬК, которая может использоваться для выработки всех синхросигналов, включая тактирование ЦП. Для его работы необходимо подключать внешние компоненты (резонаторы и т. д.), или подавать тактовые импульсы извне, через вывод ХВД. Этот же генератор является источником тактовых импульсов для синхронизации внешних устройств. Система распределения тактовых импульсов позволяет использовать только один генератор, что удобно для реализации дешевых проектов с минимумом внешних компонентов или присоединения ведомых устройств. Система устроена так, что в ней при любых неполадках и сбоях присутствует синхросигнал DCOCLK, гарантирующий бесперебойное выполнение необходимых операций. После снятия сигнала сброса по питанию (РОИ) этот синхросигнал используется по умолчанию. Система с несколькими генераторами
необходима для реализации часов реального времени, а также совместной работы процессора и периферии с разными скоростями, вплоть до остановки ЦП при работающей периферии. Для уменьшения потребляемой мощности такой вариант оказывается эффективнее, чем чисто программная реализация временных задержек, он также позволяет избегать лишней загрузки процессора и программной памяти. И, как следствие, — ничтожное потребление энергии и меньшая потребность в памяти программ.
Центральный процессор имеет МвС-ядро с шестнадцатью интегрированными регистрами. Благодаря такому построению, практически все операции оказываются межрегистровыми и исполняются за один цикл. Четыре из шестнадцати регистров зарезервированы под счетчик команд (РС), указатель стека (вР), регистр состояния (вИ) и генератор констант (CG), служащий для получения наиболее часто используемых констант (-1, 0, 1, 2,
4, 8). Данная структура процессора в сочетании с очень простой системой команд, напоминающей систему команд микропроцессора К1801ВМ2, позволяет кроме основных эмулировать и дополнительные инструкции. Эти инструкции — всего лишь частные случаи использования встроенных команд,
КЭТЛЧМ!
схема 5МО^, сброса по тлак^ питанию ССЫА^
ОиЫ-
Л
порт Р1
АС1Х>«
5мах>-
імак
таймер_А <
саі
► ОіЛс
► ССЮ/1/2 <СОл
► Х-0,1,2 •<СС1х
Рис. 2. Архитектура МК
Р2.0/АС1Х-
Р2.1/ІМСІХ-
Р2.2/САОІГЇ/ТАО
корпуса контроллеров МБР430х11х1
12.9
В В в в в в в в в в
о
тН
ЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇЇ РИ (БОР)
т
ТОЇЇШШ ___^
РИ (ТЭБОР)
Рис. 3. Корпуса семейства МБР430
е
Компоненты и технологии, № 6'2003
и они столь же эффективны, как и основные. Вся периферия контроллера имеет прямую адресацию и прямую связь с ЦПУ, что позволяет использовать для работы с периферией те же команды, что и для работы с памятью.
ПЗУ имеет блочную структуру. Такое строение необходимо для отключения неиспользуемых блоков с целью уменьшения потребляемой мощности. Блоки подключаются автоматически по мере переборки адресов. В ПЗУ программ все инструкции хранятся только в 16-битном формате, однако в ОЗУ инструкции могут записываться в виде 8- и 16-разрядных слов. Шестнадцать слов в нижней части ПЗУ в ячейках с адресами с 0РРРРЬ по 0РРЕ0Ь зарезервированы для векторов сброса и прерывания.
ОЗУ, как и ПЗУ, подключено к центральному процессору через две шины: адреса (МАВ) и данных (MDB). Как было сказано выше, в ОЗУ можно размещать 16- и 8-разрядные данные. Кроме того, коды операций можно размещать и в оперативной памяти, так как для ЦПУ нет никакой разницы, откуда выбрать команду. Это свойство микроконтроллера очень ценно — увеличиваются возможности разработчика при отладке программ, а также есть возможность контекстной загрузки группы команд извне.
Вся периферия подключается к ЦПУ так же, как и память, по двум шинам — адреса и данных, и использует линии прерываний и другие линии управления. Для большинства периферийных устройств используются только 5 линий шины адреса. Шина данных для периферии используется в 8- и в 16-битовом формате. Только данные от 8-битной периферии преобразуются специальной схемой, подключаемой центральным процессором, в 16-битный формат.
Милливольтметр
Теперь настал черед «роялей в кустах». Предположим, необходимо сделать миниатюрный датчик напряжения милливольто-вого диапазона с последовательным каналом связи. Ни один из обычных корпусов не вписывается в заданные габариты, применение бескорпусных элементов отпадает, так как нет приспособлений для разварки выводов, да и серия слишком маленькая. Остается только этот новый корпус.
АЦП как такового в микроконтроллерах МвР430х11х1 нет. Но есть компаратор А. Из него и получается сколь угодно разрядный сигма-дельта АЦП с неплохими параметрами. Как? Об этом — ниже.
Особенностями сигма-дельта АЦП (в ранней литературе его называли АЦП с уравновешиванием или балансом зарядов) является отсутствие большого количества внешних компонентов, возможность применения более дешевых конденсаторов. Линейность у такого преобразователя выше, чем
у АЦП многотактного интегрирования. Плюс ко всему этот преобразователь почти ничего не потребляет. Как раз для удаленного применения. Схема на рис. 5 демонстрирует именно этот случай.
Один из принципов, заложенных в этом преобразователе, — усреднение результатов измерения на длительном интервале. Это позволяет уменьшить погрешность, вносимую шумами. Работа преобразователя заключается в сравнении неизвестного напряжения ивх с известным ивых. Последнее получают следующим образом: используя один из цифровых выходов контроллера МвР430Р11х1, с помощью программы и фильтра нижних частот образуется 1-разрядный ЦАП. На выходе виртуального ЦАП (вывод Р2.0) присутствуют короткие импульсы, параметры которых меняются программой обратной связи в зависимости от уровня неизвестного напряжения на входе и начальных установок. Эта программа исполняет роль интегрирующего звена, а роль суммирующего узла совместно с компаратором выполняет ИС-фильтр нижних частот ЦАП. Программная модуляция и счет импульсов происходят в непрерывном цикле. Контроль совпадения напряжений ивх и ивых производится компаратором А. То есть параметры импульсной последовательности задаются так, чтобы сравнять по величине напряжения ивх и ивых. Срабатывание компаратора А определяет конец преобразования. Число импульсов, за счет которых поддерживается напряжение ивых, пропорциональное измеряемому напряжению ивх, и есть величина входного напряжения. Параметры контура обратной связи можно модифицировать для получения необходимой точности преобразования. Например, цикл в 256 отсчетов требует 8 бит, 4096 отсчетов — 12 бит и т. д. В нашем случае, когда в качестве опорного напряжения используется напряжение питания микроконтроллера, равное 3,3 В, выбран коэффициент пересчета 3300 (требуется 12 разрядов). То есть дискретность преобразования равна 1 мВ (3,3 В (3300 мВ)/3300 = 1 мВ). Полученное числовое значение, эквивалентное входному напряжению, будет кратно 1 мВ. А вообще размер одной ступени зависит от удобства использования результата преобразования.
Для построения последовательного асинхронного передатчика используются ресурсы таймера А, сконфигурированного для работы на вывод Р1.1 со скоростью 9600 бод.
юк
0,047мкФ
М5Р430Р11х1 ипит XI п
І^Т/™1 Хоиї
Р2.0
Р2.3
СА1-
САО Р2.4
РІ.1/ТА0
САОиТ
О
вх вых ЕМ 0
чь
4,7 мкФ
1
2 ІІХ
В тх
4 +5
5 СЫР
6
7 +5
8
9
Рис. 5. Схема милливольтметра
Компоненты и технологии, № 6'2003
Р2.2/СА0ит/ТА0 М—
Рис. 6. Структура компаратора А
Теперь — немного о компонентах. Для фильтра низких частот выбран один резистор и один пленочный конденсатор с полиэстеровым диэлектриком. В качестве внешнего резонатора использован кварц на частоту 3,578545 МГц, в качестве стабилизатора напряжения использована микросхема компенсационного стабилизатора с малыми потерями — ТР877033. В качестве буфера— одиночный инвертор 8Ш4АНЮС04 в 5-выводном корпусе.
Тот, кто хочет ознакомиться с предложенным решением подробнее, может обратиться к фирменному примеру применения 8ЬАА104 (http://focus.ti.com/lit/an/slaa104/ slaa104.pdf). Там же приведен полный текст
программы и примеры расчета компонентов и параметров.
В заключение хочется добавить, что компаратор А — довольно хитрое устройство, содержащее в себе собственно компаратор, программируемый источник опорного напряжения и даже подключаемый фильтр нижних частот. Устройство понятно из рисунка (рис. 6). Подключение входов компаратора к выводам производят управляющие биты регистра порта РСА0 и РСА1, включение — бит САОМ Битами САЕХ и САИвЕЬ производится конфигурирование — коммутация полярности на входах, подключение-отключение встроенного источника опорного напряжения и обеспечение прямого или инверсного выхода. Выходной ФНЧ подклю-
чается битом САР. Сам же источник опорного напряжения управляется битами САИЕР. Он способен выдавать напряжения, кратные питающему, через управляемый делитель: Ипит, 0,5 ИпиТ, 0,25 ИпиТ, подключать внутренний диод или отключаться совсем. При определенной конфигурации возможна выдача опорного напряжения на выводы СА0 и СА1. Все напряжения, подаваемые на вход компаратора, отсчитываются от потенциала общего провода и не должны превышать напряжения питания микроконтроллера. Работой компаратора А управляют два регистра — САСТЬ1 и САСТЬ2 — и, в зависимости от конфигурации, обеспечивают прерывание по фронту или спаду, запрет или разрешение прерывания, управление флагами регистра статуса.
Комбинируя разные варианты коммутации внутренних цепей, можно осуществлять измерение сопротивления, емкости, снимать показания с резисторного моста (тензодатчиков), использовать его в схеме измерения тока, в качестве контроллера небольших сенсорных экранов, в интеллектуальных датчиках с независимым питанием для пожарной или охранной сигнализации, электронных весах, портативных термометрах, датчиках перемещений, уровня шума. А в сочетании с микросхемами трансиверов, применение таких микроконтроллеров значительно упрощает монтаж и наладку очень многих систем. В примере использования вЬАА071 (http://focus.ti.com/lit/ апЫаа071Ыаа071.ри!) описана схема управления коллекторным двигателем с контролем тока, что в сочетании с малыми размерами корпуса делает этот контроллер применимым в миниатюрных приводах, декодерах команд и других приложениях.
е