особенности программирования микроконтроллеров в среде программирования IAR Embedded Workbench

Общие сведения

Цель работы – изучить особенности программирования микроконтроллеров в среде программирования IAR Embedded Workbench фирмы IAR Systems.

Задачи работы – создать на языке С программу реализации логической функции для входов и выходов микро­контроллера MSP430F449 семейства MSP430.

Теоретическая часть

Микроконтроллеры MSP430 выпускает фирма Texas Instruments. Информация о них доступна на сайте www.ti.com в разделе Microcontrollers->MSP430 MCUs. Примеры программ можно отдельно скачивать с сайта из раздела Design resources->Code examples.

 

В документе MSP430x43x MSP430x44x mixed signal microcontroller (SLAS344C – JANUARY 2002 – REVISED MARCH2003, 64 с.) описаны только электрические параметры, цоколевка, карта памяти, расположение регистров специ­ального назначения (SFR), векторов прерываний в памяти, и в общем виде реализация некоторых модулей (генератора, таймеров, АЦП, компаратора). Общее же для всего семейства подробное описание всех модулей, ядра, система команд и их коды приведены в документах (раздел сайта Technical documents->User guides->View by products):

  • на семейство MSP430xlxx – SLAU049 "MSP430xlxx family User’s Guide" (Flash/ROM без ЖКИ);
  • на семейство MSP430x3xx – SLAU012 "MSP430x3xx family User’s Guide" (масочное, OTP, EPROM (UV-стираемое);
  • на семейство MSP430x4xx – SLAU056 "MSP430x4xx family User’s Guide" (Flash/ROM с ЖКИ)

На сайте в разделе Technical documents->Application notes имеется множество примеров применения, с описани­ем схем, программ и используемых при проектировании устройств на MSP430 схемотехнических и программных прие­мов. На семейство однократных кристаллов MSP430x3xx была выпущена книжка "MSP430 Application Report Book". В этом разделе она представлена как MSP430 Family Mixed-Signal Microcontroller Application Reports (SLAA024). Боль­шинство описанных в ней приемов применимы и к флешовым кристаллам. На последних дисках от TI и дистрибьюторов имеется документ ar_lxx.pdf "MSP430xlxx Family Mixed Signal Microcontroller Application Reports". Она написана как дополнение к вышеупомянутой SLAA024 с упором на новшества, появившиеся в серии 1хх.

Микроконтроллеры семейства MSP430 содержат 16-разрядное RISC CPU, периферийные модули и гибкую сис­тему тактирования, соединенные через фон-Неймановскую общую адресную шину (МАВ) памяти и шину памяти данных (MDB). Объединяя современное CPU с отображаемыми в памяти аналоговыми и цифровыми периферийными устройст­вами, семейство MSP430 предлагает решения для приложений со смешанными сигналами.

Семейство MSP430 обладает следующими ключевыми особенностями:

•        Архитектура с ультранизким потреблением, увеличивающая время работы при питании от батарей:

  • для сохранности содержимого ОЗУ необходим ток не более 0,1 мкА;
  • модуль тактирования реального времени потребляет 0,8 мкА;
  • ток потребления при максимальной производительности составляет 250 мкА;

•        Высококачественная аналоговая периферия для выполнения точных измерений:

  • встроенные модули 12-разрядного или 10-разрядного АЦП скоростью 200 ksps;
  • имеется температурный датчик и источник опорного напряжения VRef;
  • сдвоенный 12-разрядный ЦАП;
  • таймеры, управляемые компаратором для измерения резистивных элементов;
  • схема слежения (супервизор) за напряжением питания;

•        16-разрядное RISC CPU, допускающее новые приложения к фрагментам кода:

  • большой регистровый файл снимает проблему «узкого файлового горлышка»н;
  • компактное ядро имеет пониженное энергопотребление и стоимость;
  • оптимизировано для современного высокоуровневого программирования;
  • набор команд состоит из 27 инструкций, поддерживается семь режимов адресации;
  • расширенные возможности векторных прерываний;

Возможность внутрисхемного программирования Flash-памяти позволяет гибко изменять и обновлять про­граммный код, производить регистрацию данных.

Система тактирования разработана специально для использования в приложениях с питанием от батарей. Вспо­могательная низкочастотная система тактирования (ACLK) работает непосредственно от обычного 32 кГц часового кри­сталла. Модуль ACLK. может использоваться в качестве фоновой системы реального времени с функцией самостоятель­ного «пробуждения». Интегрированный высокоскоростной осциллятор с цифровым управлением (DCO) может быть ис­точником основного тактирования (MCLK) для ЦПУ и высокоскоростных периферийных устройств. Модуль DCO ста­новится активным и стабильным менее чем через 6 мкс после запуска. Решения на основе архитектуры MSP430 позво­ляют эффективно использовать высокопроизводительное 16-разрядное RISC CPU в очень малые промежутки времени:

  • низкочастотная вспомогательная система тактирования обеспечивает работу микроконтроллера в режиме ультраниз­
    кого потребления мощности;
  • активизация основного высокоскоростного модуля тактирования позволяет выполнить быструю обработку сигналов.

Специальная встроенная логическая подсистема эмуляции находится непосредственно в устройстве и доступна через JTAG без использования дополнительных системных ресурсов. Выгоды встроенной эмуляции состоят в следую­щем’

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

Семейство MSP430 имеет фон-Неймановскую архитектуру с единым адресным пространством для регистров специального назначения (SFR), периферии, ОЗУ и Flash-памяти программ. Конкретное распределение памяти можно узнать из справочных данных на интересующее устройство. Доступ к программному коду выполняется всегда по четным адресам. Данные могут быть доступны как байты или как слова.

Общий объем адресуемой памяти составляет 64 Кб, с учетом предполагаемого расширения.

Начальный адрес Flash-памяти зависит от объема имеющейся памяти и различается для разных устройств. Ко­нечный адрес Flash-памяти всегда OFFFFh. Flash – память может использоваться как для программного кода, так и для данных Байты или слова таблиц данных могут сохраняться и использоваться непосредственно в Flash-памяти, что ис­ключает необходимость копировать эти таблицы в ОЗУ перед дальнейшим использованием.

Таблица векторов прерываний занимает верхние 16 слов адресного пространства Flash-памяти, при этом вектор прерывания с наивысшим приоритетом находится в самом верхнем адресном слове Flash-памяти (OFFFEh).

 

ОЗУ начинается с адреса 0200h. Конечный адрес ОЗУ зависит от объема представленной памяти и различается для каждого конкретного устройства. ОЗУ может использоваться как для программного кода, так и для данных.

Периферийные модули отображены в адресном пространстве. Адреса с 0100 до OlFFh зарезервированы для 16-разрядных периферийных модулей. Они будут доступны с помощью команд-слов. Если используются однобайтные ко-»   манды, допустимы только четные адреса, при этом старший байт результата всегда будет содержать «О». Адресное пространство с 01 Oh no OFFh зарезервировано для 8-разрядных периферийных модулей. Эти модули доступны l помощью однобайтных команд. Чтение байтов молулей с помощью команд-слов приведет к появлению в старшем бай­те непредсказуемого содержимого Если в байт молуля будут записываться данные в виде слова, то в регистре перифе­рийного модуля сохранится только младший байт этого слова, старший будет проигнорирован.

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

Байты расположены в четных или нечетных адресах. Слова располагаются только в четных адресах. При работе с командами-словами должны использоваться только четные адреса. Младший байт слова всегда расположен по четному адресу. Старший байт – в следующем нечетном адресе. Например, если слово данных расположено по адресу xxx4h, то младший байт слова данных будет иметь адрес xxx4h, а старший байт слова адрес xxxSh.

В основу микроконтроллеров положена архитектура RISC. Регистровая организация и система команд очень близки к широко известной и, в прошлом, весьма популярной архитектуре PDP11 (СМ ЭВМ, ДВК, «Электроника-60», «БК-0010», микропроцессор К1801ВМ2 и т п.). ЦП имеет 16 встроенных регистров, четыре из которых зарезервированы под счетчик команд (PC), указатель стека (SP), регистр состояния (SR) и генератор констант (CG).

Генератор констант служит для получения наиболее часто используемых констант (-1,0, 1, 2, 4, 8) и позволя­ет, в дополнение к 27 основным командам, эмулировать еще 24 дополнительных инструкции. То, что инструкции эмулируются, не означает снижения производительности Эмулируемые инструкции столь же эффективны, как и встроенные, и представляют собой лишь более наглядную нотацию частных случаев использования встроенных команд. Например, типичная однооперандная инструкция (CLR dst) эмулируется двухоперандной инструкцией той же длины (MOV R3,dst) или, что то же самое, (MOV #O,dst), где 0 заменяется ассемблером В результате имеем однословную инструкцию, от­сутствие дополнительных управляющих операций или оборудования в ЦП, регистровый режим адресации для операнда-источника без дополнительного цикла для выборки константы

Для того, чтобы начать работать с msp430F44x достаточно приобрести стартовый набор MSP-FET430P440   В комплект поставки этих наборов входит отладочная плата с панелькой для контроллера, 2 контроллера соответствующе­го типа, программное обеспечение (ПО), комплект документации ПО состоит из компилятора C/C++, ассемблера, лин­кера, симулятора, внутрисхемного JTAG-эмулятора (он же программатор) Поставляемая с набором версия ПО имеет ограничение на размер кода в 4К (ассемблер – без ограничений), в прилагаемых библиотеках отсутствуют функции для чисел с плавающей точкой – ехр(), fabs(), sm() и т д Сложение, вычитание, умножение и деление чисел с плавающей точкой работает

Программатор-эмулятор подключается к LPT порту ПО рассчитано на работу под Windows 95/98/ME/NT/2000 /ХР Питание на устройство надо подавать со 2-й ноги разъема, если устройство питается от FETa, и с 4-й – если у уст­ройства есть свой источник питания