Модернизация систем на базе MSP430 - на что обратить внимание
Илья Чепурин (Texas Instruments)Семейство микроконтроллеров MSP430 компании Texas Instruments, получившее широкую известность благодаря сверхнизкому энергопотреблению, продолжает активно развиваться. В статье рассмотрены основные моменты перехода от МК серии MSP430F1xx к более современным и менее потребляющим МК MSP430F2xx, обладающим к тому же расширенным набором периферийных модулей.
Микроконтроллеры (МК) серии MSP430F2xx (рис. 1) задают новый уровень сверхнизкого потребления, обеспечивая более высокую производительность и в то же время сохраняя совместимость (как по программному коду, так и по выводам) с уже существующими на рынке МК серии MSP430F1xx.
Рис. 1. Серия микроконтроллеров MSP430F2xx
Благодаря этому модернизация приложений на их базе потребует минимум усилий при заметном улучшении параметров портативной аппаратуры по производительности и энергопотреблению.
Рассмотрим более детально, какие изменения претерпели МК, и в чем это выражается с точки зрения разработчика встраиваемых систем.
Прежде всего, изменились эксплуатационные параметры - тактовая частота возросла в 2 раза, до 16 МГц, а при минимальном напряжении питания 1,8 В - до 6 МГц. Напряжение программирования Flash-памяти в МК MSP430F2xx снижено до 2,2 В (рис. 2).
Рис. 2. Напряжение программирования Flash-памяти в МК MSP430F2xx
В то же время потребление в режиме Standby (LPM3) снизилось практически в два раза, а время выхода из него занимает менее 1 мкс.
При создании МК серии MSP430F2xxх максимальное внимание уделялось обеспечению совместимости с микроконтроллерами предыдущего поколения, особенно при редизайне периферийных модулей, поэтому, как уже говорилось, новые МК можно использовать просто в качестве drop-in-замены без изменения дизайна печатной платы. С одной стороны, такой подход позволяет разработчикам сохранить заложенную в систему функциональность, а с другой, обновленная периферия дает возможность внедрения новых функций, улучшающих стабильность системы и расширяющих возможности по обработке приложений.
Процессорное ядро
От предыдущего варианта процессорное ядро отличается прежде всего тактовой частотой (теперь она составляет 16 МГц), расширенной до 20 разрядов шиной адреса, а также увеличенными до 20 разрядов регистрами центрального процессора, что позволяет получить доступ к адресному пространству до 1 Мб без использования страничной адресации. Несмотря на это, совместимость по объектному коду сохранилась практически на 100%: объектный код, скомпилированный под МК серии MSP430F1xx, будет выполняться и на МК MSP430F2xx. Однако если планируется использовать расширенное адресное пространство (за пределами первых 64 Кб), то для обеспечения совместимости код программы будет необходимо доработать. Если программа была написана на С, то компилятор все сделает автоматически, но если использовался ассемблер, то нужно обратить внимание на вызов и возврат из подпрограмм - счетчик программ теперь 20-разрядный. Также необходимо модифицировать все команды, изменяющие значение программного счетчика РС, и команды, производящие операции со стеком. Особенно это касается собственных подключаемых библиотек, которые в данном случае нужно изменить соответствующим образом и/или перекомпилировать.
Системные модули
Устойчивость системы
Для обеспечения устойчивой работы системы на базе новых МК на кристалл был дополнительно интегрирован модуль сброса при пониженном напряжении питания (BOR - brown-out reset). Он позволяет задать несколько уровней напряжения, при которых будет происходить сброс и включение МК. Таким образом, учитывая также наличие встроенной цепи сброса по питанию (POR - power-on reset), можно отказаться от использования внешнего супервизора питания.
Изменениям подвергся и сторожевой таймер (WDT), теперь он входит в состав всех МК новой серии. Отличия заключаются в том, что WDT постоянно находится во включенном состоянии, даже в энергосберегающих режимах. При этом если собственный генератор тактовой частоты выходит из строя, сторожевой таймер автоматически переключается на работу от встроенного генератора DCO.
Улучшенный аппаратный загрузчик BSL получил новую прошивку, которая позволяет более эффективно защитить содержимое flash-памяти. Измененный встроенный алгоритм загрузки предотвращает непреднамеренный запуск процедур записи/стирания. Для защиты от несанкционированного доступа можно, как и раньше, использовать 256-разрядный пароль. При этом можно сконфигурировать BSL таким образом, чтобы при первом неправильно введенном пароле все содержимое flash-памяти было стерто (реализовано не во всех МК).
Flash-память
Основные изменения в модуле flash-памяти заключаются в снижении напряжения программирования/стирания до 2,2 В и уменьшении времени записи в память. Дополнительно нужно отметить, что область памяти для хранения данных теперь имеет 4 сегмента по 64 байта, при этом сегмент А имеет бит защиты от непреднамеренного стирания, поэтому он идеально подходит для хранения даных, необходимых для нормального функционирования системы. Это могут быть, например, калибровочные коэффициенты для генератора тактовой частоты или АЦП.
Особенное внимание при переходе к новым МК следует уделить контроллеру прерываний, поскольку количество векторов прерываний для периферийных модулей увеличилось и их адреса изменились. Поэтому необходимо обратиться к технической документации на конкретный МК, чтобы уточнить новые параметры таблицы векторов.
Генератор тактовой частоты
Для того чтобы обеспечить низкое энергопотребление, необходимо иметь соответствующую систему тактирования, способную обеспечивать высокую рабочую частоту в режиме выполнения прикладной программы и низкую частоту в энергосберегающих режимах для реализации функции периодических прерываний. В МК серии MSP430F2xxх система тактирования включает в себя:
- встроенный малопотребляющий генератор тактовой частоты VLO (Very Low-power Oscillator), служащий источником тактирования для малопотребляющих периферийных модулей;
- цифровой высокочастотный генератор DCO (Digitally Controlled Oscillator), управляющий тактированием процессорного ядра и обеспечивающий быстрый старт при выходе из энергосберегающих режимов;
- модуль, позволяющий тактироваться от внешних источников тактовой частоты. Встроенная функция контроля улучшает устойчивость системы при выходе любого из вышеперечисленных модулей из строя. Если какой-либо сигнал пропадает, то происходит автоматический переход на другой источник тактовой частоты (рис. 3).
Рис. 3. Система тактирования MSP430F2xxx
Малопотребляющий низкочастотный генератор VLO является новым для семейства MSP430, его частота составляет 12 кГц. Он может использоваться для получения тактового сигнала ACLK для малопотребляющей периферии. Благодаря низкому потреблению этого модуля (500 нА), можно в энергосберегающем режиме поддерживать работу таких модулей, как таймер периодических прерываний, сторожевой таймер и т.п. При этом стабильность генерируемой частоты сравнима с характеристиками кварцевых резонаторов. Если для обработки какого-либо события МК требуется полная мощность, то автоматически включается основной рабочим генератор тактовой частоты DCO, обеспечивающий выход на частоту до 16 МГц менее чем за 1 мкс. За счет такого быстрого включения можно более эффективно использовать энергосберегающие режимы работы МК. С помощью подстроечных конденсаторов модуль DCO можно откалибровать, записав нужное значение в соответствующую ячейку памяти, причем калибровочные коэффициенты можно сохранять для нескольких значений частот.
Помимо внутренних источников тактирования можно использовать и внешние - от кварцевого резонатора 32,768 кГц до высокочастотного тактового сигнала. При этом если внешний источник частоты не задействуется, то соответствующие выводы могут быть сконфигурированы как линии стандартного порта ввода/вывода.
Периферийные модули
16-разрядный сигма-дельта АЦП
Для приложений, требующих высокой точности измерений, в новой серии МК MSP430F2xxх появился модуль 16-разрядного АЦП, использующий принцип сигма-дельта преобразования. Структура модуля приведена на рис. 4.
Рис. 4. 16-разрядный сигма-дельта АЦП-модуль микроконтроллеров MSP430F2xxx
Модуль имеет 8 дифференциальных входов, при этом наружные выводы есть только у пяти входов. Остальные задействованы для измерения напряжения питания (например, батарейки), подключения встроенного датчика температуры и для калибровки смещения АЦП. Для каждого из входов можно задать диапазон измерения с учетом программируемого коэффициента усиления. Опорное напряжение может подаваться от встроенного прецизионного источника 1,2 В или же извне.
АЦП может производить как единичные, так и последовательные измерения, время одного преобразования составляет чуть более 244 мкс. Важно отметить, что модуль может работать в энергосберегающих режимах и тактироваться от «медленного» источника ACLK (внешний кварц 32,768 кГц или встроенный генератор VLO 12 кГц). Более того, если измерения в данный момент не проводятся, то АЦП автоматически отключается и не потребляет энергии.
10-разрядный АЦП
С помощью обновленного модуля АЦП можно значительно упростить программный код, обслуживающий АЦП. Благодаря возможности автоматического сканирования входов теперь достаточно лишь задать последовательность подключения входов АЦП для измерения входных сигналов. Все остальное будет сделано автоматически без участия центрального процессора. Запуск сканирования также может быть произведен без участия процессора - сигналом для начала работы может служить сигнал от таймера. Результаты измерений можно напрямую сохранять в памяти МК, также не задействуя ядро ЦП для обслуживания модуля. Контроллер передачи данных DTC может сам записывать результаты измерений в любую область памяти, сконфигурированную как буфер объемом до 256 байт, генерируя прерывание для ЦП, когда буфер заполнится наполовину или полностью. За счет этого в системе освобождается порядка 4MIPS для проведения вычислений, или же ЦП может долше находиться в спящем состоянии для снижения энергопотребления. Скорость измерений при использовании DTC достигает 200 000 отсчетов в секунду.
Компаратор
Основное отличие нового компаратора от модуля предыдущего поколения - это наличие цепи дискретизации с запоминанием отсчетов. Это дает возможность разнести во времени процесс измерения аналогового сигнала и считывания итогового результата. С помощью входного мультиплексора входы компаратора можно подключать к разным входам микроконтроллера для измерений нескольких аналоговых сигналов. При этом измерения могут производиться как относительно внутреннего порогового напряжения, так и непосредственно относительно входного сигнала. Если напряжение на неинвертирующем входе компаратора превысит напряжение на инвертирующем, то на выходе компаратора появится высокий уровень сигнала. Выход компаратора можно также подключить к RC-фильтру, чтобы избежать влияния паразитных наводок и повысить точность срабатывания при малой разности напряжений на входе.
Универсальный последовательный интерфейс USCI
Еще одним новым модулем для МК MSP430 стал универсальнй последовательный интерфейс. Он поддерживает несколько стандартных интерфейсов и может быть сконфигурирован как стандартный UART/USART, SPI, LIN, I2C или IrDA. В состав МК обычно входят два канала USCI, один из которых (USCI_A) поддерживает UART/USART, SPI, LIN и IrDA, а другой - SPI и I2C.
Дальнейшие направления развития семейства MSP430
Уже на подходе новая серия МК MSP430F5xxx, которая будет иметь практически то же самое потребление, что и серия 2ххх, но при этом тактовая частота возрастет до 25 МГц, обеспечивая производительность 25 MIPS. Ожидается, что новые МК будут также полностью совместимы по системе команд и программному коду. Одним из первых должен появиться МК с интерфейсом USB и объемом flash-памяти 256 Кб, в дальнейших планах - появление МК с интегрированным радиоинтерфейсом.
Для поддержки разработчиков также появится новая версия среды разработки CodeComposer Essentials 3.0, которая в бесплатной версии позволит компилировать до 16 Кб С-кода. Из аппаратных средств - обновленный USB/JTAG-интерфейс, который будет поддерживать новые микроконтроллеры.
Ваш комментарий к статье | ||||