Практическое применение TIVA. Учебный курс. Часть I

28 ноября 2014

Texas InstrumentsстатьяМикроконтроллер

Разработчики различных приложений реального времени давно пользуются процессорными решениями компании ARM для систем автомобильной электроники, промышленного оборудования, различных измерительных систем, беспроводных сетей и датчиков. Ядро Cortex-M4, лицензируемое компанией ARM, является усовершенствованной версией ядра M3 и предназначено для более производительных приложений. Недостаток информации по практическому использованию контроллера новой архитектуры нередко становится преградой для применения его в новых проектах. Данный материал является открывающим в цикле статей, посвященных вопросам практического применения контроллеров семейства TIVA на ядре Cortex-M4 компании Texas Instruments.

Сегодня на рынке микроконтроллеров доступно несколько решений на базе ядра Cortex-M4. В некоторых случаях на выходе получаются просто уникальные продукты, совмещающие в себе базовое ядро с продвинутыми периферийными модулями.

Одним из производителей таких уникальных решений является компания Texas Instruments. Ядро Cortex-M4 воплотилось в продукции данного производителя под кодовым названием TIVA, и представлено в двух изделиях: TM4C123x – более простое, и TM4C129x – более производительное.

Стоит отметить один важный факт, который делает данное семейство уникальным – одновременное наличие модуля физического уровня Ethenet и драйвера дисплея наряду с большим количеством различных интерфейсов для подключения всевозможных датчиков, модулей и прочего. Такими функциями обладают только старшие модели, но в случае необходимости из обилия моделей (а в модельном ряде присутствует более 70 вариантов) можно выбрать микроконтроллер, который идеально подойдет под ваше приложение и будет содержать только нужные узлы. В качестве опций для выбора представлено множество параметров: Ethernet – только с MAC или MAC+PHY, USB – только Device или On-The-Go, с драйвером дисплея или без него, с модулем защиты данных или без него, и еще очень много различных комбинаций периферии измерения, управления и передачи данных.

Все семейство TM4C123 рекомендовано для применения в приложениях управления, измерения и цифровой обработки сигналов, в которых не требуется реализация человеко-машинного интерфейса или удаленного управления через Интернет. Для реализации высокопроизводительных систем управления и обработки данных с возможностью подключения дисплея (как контроллерного, так и бесконтроллерного) и встроенным сервером с управлением через Ethernet рекомендуется использовать семейство TM4C129.

Структурные схемы этих семейств приведены на рисунках 1 и 2 соответственно.

Рис. 1. Структура микроконтроллеров TM4C123x

Рис. 1. Структура микроконтроллеров TM4C123x

Рис. 2. Структура микроконтроллеров TM4C129x

Рис. 2. Структура микроконтроллеров TM4C129x

Оба семейства поддерживают вычисления с плавающей точкой. Помимо основной памяти FLASH (32…1024 кбайт) и SRAM(12…256 кбайт), обе линейки содержат энергонезависимую EEPROM-память 2 и 6 кбайт. Аналоговая периферия представлена двухъядерным модулем АЦП с максимальной частотой выборок до 1 MSPS в TM4C123x и до 2 MSPS в TM4C129x.

Данная статья является вводной в своего рода практический курс-руководство по применению микроконтроллеров TIVA производства компании Texas Instruments. Если вы не знакомы с микроконтроллерами архитектуры ARM Cortex-M или вовсе только начинаете осваивать микроконтроллеры, то данный практический курс будет отличным пособием для старта.

Описанием архитектуры каждого из модулей и написанием приложений под каждый из них мы займемся в следующих статьях. Ниже приведен примерный план цикла статей:

  • Установка Code Composer Studio и TivaWare. Инициализация системы и GPIO.
  • Контроллер прерываний NVIC и система таймеров.
  • Аналоговая периферия. АЦП, компаратор, датчик температуры.
  • Модуль гибернации.
  • USB.
  • Память: FLASH, EEPROM, uDMA.
  • Периферия для управления: PWM, QEI, входы GPIO.
  • Интерфейсы: UART, QSSI/SPI, I2C, CAN, EPI, 1-wire.
  • Защита данных: модуль Tamper, AES, CRC.
  • LCD.
  • Ethernet.

Что нам необходимо для старта?

Для начала работы с микроконтроллером любой архитектуры необходимо определиться с тремя основными моментами:

  • аппаратной платформой;
  • средой разработки (IDE);
  • примерами кода инициализации и стартовыми проектами.

Желательно, чтобы аппаратная платформа была максимально независима от какого-либо конкретного приложения. Нужен доступ ко всем портам и периферийным модулям контроллера, а в случае необходимости – возможность быстро и эффективно подключить модули радиопередатчиков, измерительных сенсоров и других модулей, которые есть на рынке. Немаловажным моментом при выборе аппаратной платформы является наличие эмулятора. Причем приобретение отдельного аппаратного узла в виде программатора не всегда является экономически выгодным для задач обучения или оценки возможностей контроллера. И в этом случае наличие встроенного в отладочную плату программатора-эмулятора является выигрышным фактом.

Что же касается среды разработки, то здесь выбор обычно делается исходя из четырех основных аспектов:

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

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

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

Выбирая Cortex-M4F в виде контроллеров TIVA производства компании Texas Instruments, мы получаем все три компонента – аппаратную платформу, среду разработки и примеры кода, необходимые нам для старта, сразу и от одного производителя.

Итак, обо всем подробнее и по порядку.

Аппаратная платформа

В зависимости от потребностей приложения можно выбрать один из четырех вариантов отладочных плат для семейства TIVA. Перечислим отладочные средства в порядке возрастания их аппаратных возможностей:

На всех отладочных платах в качестве встроенного программатора/эмулятора используется In-Circuit Debug Interface (ICDI). Данный отладчик позволяет программировать и отлаживать микроконтроллер, используя приложение LM Flash Programmer, Code Composer Studio и другие поддерживаемые программные инструменты. ICDI поддерживает отладку по стандарту JTAG. При использовании интерфейса ICDI наряду с отладчиком в системе появляется виртуальный COM-порт, подключенный к модулю UART микроконтроллера. Данный COM-порт может быть использован при разработке/отладке приложений. Также есть возможность использовать внешний JTAG-эмулятор вместо ICDI, например IAR J-Link или Keil ULINK, а также применять ICDI для программирования и отладки внешних по отношению к плате устройств, например, контроллера в готовом изделии.

Рассмотрим, какие возможности для разработки предлагает нам каждая из отладочных плат.

EK-TM4C123GXL LaunchPad

Базовая недорогая отладочная плата (рисунок 3) популярного формата LaunchPad на базе контроллера TM4C123GH6PMI (подробнее с форматом LaunchPad можно ознакомиться, пройдя по ссылке). На плате реализован внутрисхемный эмулятор ICDI (In-Circuit Debug Interface) на базе второго контроллера TM4C123GH6PMI, позволяющий работать с основным контроллером без дополнительного внешнего программатора/отладчика.

Рис. 3. Отладочная плата EK-TM4C123GXL LaunchPad

Рис. 3. Отладочная плата EK-TM4C123GXL LaunchPad

Основные особенности EK-TM4C123GXL:

  • USB интерфейс (Micro-AB), поддерживающий режимы OTG/Host/Device;
  • пользовательские кнопки (2 шт.), RGB-светодиод;
  • переключатель источника питания ICDI или USB-device;
  • разъемы подключения плат расширения типа BoosterPack и BoosterPack XL.

EK-TM4C1294XL Connected LaunchPad

Данная отладочная плата реализована на базе микроконтроллера TM4C1294NCPDT со встроенным интерфейсом 10/100 Ethernet MAC и PHY, USB 2.0, модулем ШИМ и большим количеством последовательных интерфейсов (рисунок 4). Здесь повторяется идеология LaunchPad (простое недорогое устройство для быстрого старта) с добавлением Ethernet-интерфейса. В EK-TM4C1294XL загружено приложение для быстрого старта, позволяющее использовать данную плату в активно набирающей популярность концепции Internet-Of-Things.

Рис. 4. Отладочная плата EK-TM4C1294XL

Рис. 4. Отладочная плата EK-TM4C1294XL

Основные особенности EK-TM4C1294XL:

  • встроенный Ethernet-контроллер 10BASE-T/100BASE-TX MAC с PHY;
  • USB-интерфейс (Micro-AB), поддерживающий режим OTG/Host/Device;
  • пользовательские кнопки (2 шт.), кнопки сброса и вывода из сна, светодиоды (4 шт.);
  • разъем подключения плат расширения типа BoosterPack и BoosterPack XL;
  • предустановленное приложение интернета вещей – Exosite;
  • доступность выводов контроллера на краевом разъеме расширения.

DK-TM4C123G USB+CAN Development Kit

Отладочная плата, реализованная на базе TM4C123GH6PGE (рисунок 5), с цветным дисплеем, CAN-интерфейсом и возможностью измерения до четырех аналоговых сигналов. На плате реализован отладчик In-Circuit Debug Interface (ICDI) с возможностью использования внешнего эмулятора.

Рис. 5. Отладочная плата DK-TM4C123G

Рис. 5. Отладочная плата DK-TM4C123G

Основные особенности DK-TM4C123G:

  • цветной OLED-дисплей 96×64;
  • девятиосевой датчик движения MPU-9150 (акселерометр + гироскоп + компас);
  • датчик температуры TMP20;
  • высокоскоростной приемопередатчик CAN SN65HVD1050D;
  • восьмивыводная клеммная колодка:
    • четыре аналоговых входа (0…20 В);
    • питание;
    • CAN: High/Low;
  • шунт для измерения тока потребления с усилителем;
  • USB-интерфейс (Micro-AB), поддерживающий режимы OTG/Host/Device;
  • слот подключения SD-карты;
  • пользовательские клавиши (5 шт.) и светодиоды;
  • элемент питания для работы контроллера в режиме гибернации.

DK-TM4C129X Connected Development Kit

Платформа с самым полным набором периферии и множеством внешних аппаратных возможностей. Реализована на базе контроллера TM4C129XNCZAD, который содержит Ethernet-модуль 10/100 MAC вместе с модулем физического уровня PHY и аппаратный драйвер дисплея (рисунок 6).

Рис. 6. Отладочная плата DK-TM4C129X

Рис. 6. Отладочная плата DK-TM4C129X

Для программирования и отладки программного обеспечения на плате реализован интерфейс In-Circuit Debug Interface (ICDI).

Основные особенности DK-TM4C129X:

  • цветной QVGA-дисплей с резистивным сенсорным экраном;
  • встроенный Ethernet-контроллер 10BASE-T/100BASE-TX MAC с PHY;
  • 512 Мбит FLASH-памяти с подключением по интерфейсу Quad-SPI;
  • USB интерфейс (Micro-AB), поддерживающий режимы OTG/Host/Device;
  • разъем подключения радиомодулей Texas Instruuments;
  • разъем подключения плат расширения типа BoosterPack и BoosterPack XL;
  • слот подключения SD-карты;
  • интерфейсы расширения:
    • высокоскоростной интерфейс USB ULPI;
    • Ethernet-порты RMII и MII для подключения внешнего физического интерфейса, параллельный интерфейс EPI;
  • пользовательские кнопки и светодиоды;
  • шунт для измерения тока потребления;
  • аудиоусилитель LM4819 и звукоизлучатель.

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

Среда разработки приложений (IDE)

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

  • Code Composer Studio;
  • IAR Embedded Workbench;
  • KEIL;
  • GNU.

Остановимся подробнее на двух из них: Code Composer Studio и IAR Embedded Workbench.

Code Composer Studio – это полностью интегрированная среда разработки, которая поддерживает все микроконтроллеры и процессоры производства компании Texas Instruments. На октябрь 2014 года новейшей версией является 6.0.1.00040. IDE представляет собой набор инструментов, необходимых для разработки встраиваемых приложений. Включает в себя оптимизированный компилятор C/C++ производства TI, редактор исходного кода, инструменты управления проектами, отладчик, редактор профилей проекта и много других полезных функций. Данная среда реализована на базе программного ядра свободно распространяющейся IDE Eclipse с добавлением возможности отладки встраиваемых приложений Texas Instruments. Code Composer Studio поддерживает следующие платформы:

MSP430, C2000, SimpleLink Wireless MCUs, TM4x MCUs, процессоры Sitara (Cortex-A9), многоядерные решения DSP и ARM-процессоры.

По умолчанию после установки Code Composer есть несколько вариантов бесплатного использования:

  • работа с отладочным интерфейсом ICDI, реализованным на всех отладочных платах, а также использование эмуляторов серии XDS100 производства компании Texas Instruments;
  • использование полнофункциональной версии в течение 90 дней.

Если в первом случае можно неограниченное время пользоваться всеми инструментами Code Composer Studio, то во втором случае полный функционал программы с использованием любых отладочных средств и для любого семейства микроконтроллеров доступен только в течение 90 дней.

Стоимость лицензии для одного ПК на официальном сайте www.ti.com составляет 445$. Максимальная стоимость лицензии с плавающим вариантом на 50 пользователей – 19 995$. Также вы также можете приобрести лицензию на CodeComposerStudio у официального дистрибьютора TI в России – компании КОМПЭЛ. Стоит отметить, что срок действия лицензии не ограничен по времени, в отличие от многих IDE других производителей.

Code Composer Studio может быть установлена как на системы под управлением ОС Windows XP, 7 или 8, так и на некоторые Linux-системы.

IAR Embedded Workbench

Данная интегрированная среда разработки является продуктом компании IAR Systems. IAR Embedded Workbench поддерживает огромное количество контроллеров и процессоров различной архитектуры, в том числе и микроконтроллеры TIVA производства компании Texas Instruments. IAR включает в себя редактор кода, C/C++-компиляторы, инструменты управления проектом и отладкой. Для работы с семейством TIVA необходима версия IAR Embedded Workbench for ARM. Самой актуальной (октябрь 2014) является версия 7.30. Она содержит плагины для поддержки операционной системы реального времени производства Texas Instruments – TI-RTOS.

IAR Embedded Workbench поддерживает несколько типов лицензий. На официальном сайте компании цены на лицензии не представлены, но у российских компаний, продающих различное программное обеспечение, стоимость фиксированной лицензии для одного персонального компьютера начинается от 110 000 рублей. IAR также предоставляет два варианта бесплатного использования IDE:

  • использование полного функционала в течение 30 дней;
  • неограниченное по времени использование с ограничением размера программы в 32 кбайта.

Выбор среды разработки приложений полностью определяется опытом и предпочтениями разработчика, а также его готовностью платить за лицензию. Здесь нет жестких правил или рекомендаций. Стоит отметить, что курс лабораторных работ будет выполнен в среде Code Composer Studio. В следующей статье будет описан процесс установки всего необходимого программного обеспечения.

Программная библиотека TivaWare

Для начала разработки собственных приложений на новом микроконтроллере неплохо иметь некоторую опорную точку. Хорошей практикой считается, когда производитель контроллера помимо отладочных средств предоставляет разработчикам еще и пакет программ в исходном коде. Начинающий или опытный программист может использовать данные стартовые проекты как вспомогательный материал в изучении контроллера. Именно для этих целей компания Texas Instruments предлагает библиотеку TivaWare.

TivaWare является комплексным программным решением, которое содержит примеры проектов с исходным кодом, а также все необходимые инструменты для полноценной разработки приложений различной сложности. Сюда вошли графическая библиотека, стеки Ethernet и USB, драйвера периферии, проекты, адаптированные для использования на отладочных платах, операционная система реального времени TI-RTOS и многое другое. Структура библиотеки TivaWare отражена на рисунке 7.

Рис. 7. Структура библиотеки TivaWare

Рис. 7. Структура библиотеки TivaWare

Стоит отметить, что использование TivaWare не ограничивается только одной средой разработки приложений, и, кроме Code Composer Studio, поддерживаются следующие: IDE: IAR, KEIL, GCC.

Заключение

Для начала изучения или старта разработки на микроконтроллерах семейства TIVA необходимо определиться с выбором аппаратной платформы и средой разработки программного обеспечения.

Курс практических работ будет выполнен в среде Code Composer Studio с использованием отладочных плат EK-TM4C123GXL и DK-TM4C129X. Начальные работы будут выполнены на лаунчпаде EK-TM4C123GXL, а работы, требующие такой продвинутой периферии как драйвер дисплея и модуль Ethernet – на DK-TM4C129X.

Стоит отметить, что у вас есть возможность повлиять на содержимое практического курса. Вы можете присылать, рекомендации и интересующие вопросы на почтовый ящик ti@compel.ru с указанием темы письма «Практический курс TIVA». Самые востребованные и интересные темы будут освещены в последующих статьях с рассмотрением практического аспекта применения.

Продолжение курса «Установка CCS и TivaWare. Инициализация системы и GPIO». читайте в одном из следующих номеров журнала «Новости Электроники», посвященном продукции компании Texas Instruments.

Получение технической информации, заказ образцов, заказ и доставка.

•••

Наши информационные каналы

О компании Texas Instruments

В середине 2001 г. компании Texas Instruments и КОМПЭЛ заключили официальное дистрибьюторское соглашение, которое явилось результатом длительной и успешной работы КОМПЭЛ в качестве официального дистрибьютора фирмы Burr-Brown. (Как известно, Burr-Brown вошла в состав TI так же, как и компании Unitrode, Power Trend и Klixon). С этого времени компания КОМПЭЛ получила доступ к поставке всей номенклатуры производимых компанией TI компонен ...читать далее