LAUNCHXL-CC26x2R1 подготовка рабочего окружения в Linux

В предыдущей статье, где рассматривался референс-дизайн антенны IFA, я уже говорил, что заказал отладочные платы LAUNCHXL-CC26x2R1 для знакомства с беспроводными микроконтроллерами CC2652R от TI и стеком Zigbee TI Z-Stack. И пока мои платы едут ко мне, в этой статье рассмотрим их немного более детально и совершим быстрый старт в подготовке инструментария для разработки под данную платформу.

LAUNCHXL-CC26x2R1

Описание

Начнем с того, что имеется на плате:

  • PCB антенна IFA 2.4 GHz (референс-дизайн).
  • Встроенный JTAG отладчик XDS110, который также можно использовать для программирования и отладки внешних плат.
  • 40 dual-gender выводов для подключения периферии.
  • Микроконтроллер CC2652R, также поддерживается разработка для CC2642R (каким образом я не понял пока).
  • Зеленый и красный светодиоды.
  • 2 кнопки по бокам платы.
  • 8 Мбит SPI Flash память.

CC2652R микроконтроллер в составе отладочной платы содержит ядро ARM Cortex-M4F с частотой 48 МГц, 352 кБ flash памяти. Немного более подробно о его характеристиках можно прочесть в предыдущей статье.

Из коробки LAUNCHXL-CC26x2R1 запрограммирован на Bluetooth 5 (BLE5-стек) проект, называемый Project Zero, позволяющий подключаться к смартфонам и планшетам. Поддерживает программирование и отладку из Code Composer Studio и IAR Embedded Workbench IDE.

Использование LaunchPad для программирования и отладки внешних устройств

TI со своими LaunchPad пошли по пути ST, которые в свои платы Discovery добавляли ST-Link, которым можно было программировать и отлаживать любые другие платы с их микроконтроллерами. Это очень удобно и стоит рассмотреть как это использовать в плате LAUNCHXL-CC26x2R1.

Блок XDS Jumpers в центре платы используется для отсоединения XDS110 отладчика из верхней секции от микроконтроллера в нижней секции платы. По умолчанию джамперы установлены.

XDS110 джамперы

Кроме того, что встроенный XDS110 может использоваться для программирования и отладки сторонних плат, к микроконтроллеру на самом LaunchPad можно подключить внешний совместимый отладчик (XDS110 или XDS200), для этого также необходимо убрать все джамперы в блоке XDS Jumpers.

Убрав все джамперы, разъем XDS100 Out превращается в выход встроенного отладчика, а разъем XDS110 In в отладочный разъем микроконтроллера CC2652R. Если внешнее устройство запитано от собственного источника питания, то следует установить джампер External Power для корректной работы преобразователей уровня. Джампер в позиции XDS110 Power позволяет запитать внешний микроконтроллер от 3.3 В встроенного LDO.

SimpleLink CC13x2 / CC26x2 SDK

Пока я готовлю схему и плату для нового устройства я параллельно могу начать осваивать SDK, чем и занимаюсь в свободное время. И начал я отсюда.

Текущая версия SDK 3.40.00.xx. SDK представляет собой программный пакет для разработки программ для беспроводных микроконтроллеров серии CC13x2 и CC26x2, и включает следующие компоненты, такие как BLE стек с поддержкой Bluetooth 5, Thread 1.1 на базе OpenThread, TI 15.4 стек, ZigBee стек, а также ядро TI-RTOS с TI драйверами примерами приложений и исчерпывающей документацией. В дополнение имеется программный компонент Dynamic Multi-Protocol Manager (DMM), позволяющий на одном микроконтроллере использовать мультипротокольную разработку с помощью временного разделения.

Важно! Текущая версия SDK 3.40.00.xx может использоваться только для устройств ревизии E, для ревизии C или более ранних, необходимо использовать версию 2.4.0 SDK.

Данный раздел статьи предполагает, что у пользователя уже есть отладочная плата LAUNCHXL-CC26x2R1, компьютер, скачанная IDE (Code Composer Studio, IAR или GNU Arm Embedded Toolchain). У меня платы еще нет, но это мне не мешает произвести все приготовления заранее. У меня есть компьютер с Linux и я буду совершенно точно использовать бесплатный Code Composer Studio (далее ccstudio), который работает в Linux и не буду использовать IAR, который мне не по карману и работает только в Windows. Code Composer Studio можно скачать по ссылке. Также доступна инструкция пользователя.

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

Следующим этапом производим установку ccstudio. Установка для Linux 9-й версии описана на английском тут. Надо понимать, что ccstudio 64-битное приложение и работать в 32-битных дистрибутивах оно не будет.

Поддерживаемые типы микроконтроллеров и процессоров:

Поддерживаемые

  • Микроконтроллеры: MSP430, MSP432, C2000, TM4, Hercules
  • Беспроводные микроконтроллеры: CC13xx, CC2538, CC26xx, CC32xx
  • Процессоры: Sitara (AMxxxx), Keystone / Keystone II, OMAPL
  • DSP: C64x+, C674x, C66x, C55x, C641x

Не поддерживаемые

  • Микроконтроллеры: C/F24x
  • DSP: C3x / C4x / C5x / C8x, C54x, C62x, C670x / C671x / C672x

Из поддерживаемых отладчиков стоит выделить, имеющийся на отладочной плате LAUNCHXL-CC26x2R1 XDS110, также XDS100, который использовался для чипов предыдущего поколения и XDS200 (USB и LAN версии), который к слову стоит каких-то нереальных денег, и также поддерживается J-Link, который поддерживает не все чипы TI (список поддерживаемых здесь).

Инструкция по установке ccstudio и SDK

Приложение то 64-битное, но все же одну 32-битную библиотеку для поддержки компиляторов требует и установить ее нужно в первую очередь следующей командой sudo apt install libc6:i386. По возможности следует производить установку ccstudio от суперпользователя, используя sudo, это позволит произвести в автоматическом режиме установку необходимых драйверов и правил udev. В противном случае потребуются дополнительные шаги по установке.

Важно, если установка производилась от суперпользователя, то и при обновлении необходимо запускать IDE от суперпользователя. К слову, такая же самая штука с STM32CubeIDE, чтобы обновить ее через меню Help > Check Updates надо запустить с sudo ./stm32cubeide

Update. Наткнулся при очередном обновлении Code Composer Studio на странное поведение: невозможно закрыть проекты в Resource Explorer, выдается ошибка «…could not save master table…» В детализации ошибки можно увидеть, что ccstudio не может совершить запись в файл ./workspace/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources Решается выдачей прав на запись файлу, проблема в том, что обновился от суперпользователя.

Установка будет производиться мной в Elementary OS, если у вас другой дистрибутив, обращайтесь к официальному руководству по установке.

Производим установку зависимостей:

sudo apt install libc6:i386 libusb-0.1-4 libgconf-2-4 build-essential

Я скачал оффлайн инсталлятор CCS9.3.0.00012_linux-x64.tar.gz и распаковал его в отдельную директорию. Далее запускаем файл ccs_setup_9.3.0.00012.bin. Выбираем директорию, куда требуется произвести установку.

code composer studio 9 linux установка

Выбираем Custom Installation, чтобы выбрать необходимые для установки компоненты.

code composer studio 9 linux установка

Выделяем необходимые компоненты, в моем случае это SimpleLink CC13xx and CC26xx Wireless MCUs для разработки под чип CC2652R, а также MSP430 ultra-low power MCUs, т.к. у меня имеются часики eZ430-Chronos от TI и может наконец сейчас у меня дойдут до них руки.

code composer studio 9 linux установка

Еще пару информационных окон и на этом все, далее идет установка.

code composer studio 9 linux установка

Если вы как я запустили инсталлятор без привилегий суперпользователя, то необходимо запустить скрипт установки драйверов и правил udev. Для этого переходим в директорию <CCS_INSTALL_DIR>/ccs/install_scripts и запускаем скрипт sudo ./install_drivers.sh.

code composer studio 9 linux установка

И на этом установка Code Composer Studio 9 закончена.

Далее устанавливаем SDK в дефолтную директорию ~/ti, можно и в любую другую, но тогда в настройках ccstudio в меню Window > Preferences > Code Composer Studio > Products необходимо будет указать путь к директории, где у вас будет установлен SDK. Сама установка ничем не примечательна, жмем далее, далее и готово. Если SDK был установлен в дефолтную директорию, то ccstudio его найдет автоматически и добавит переменную окружения SIMPLELINK_CC13X2_26X2_SDK_INSTALL_DIR, которая используется всеми проектами SimpleLink CC13x2 / CC26x2 SDK.

Также можно установить специфичный компилятор ARM или вообще поставить IAR, если вы пользуетесь Windows, о том как это сделать можно прочесть тут.

Поздравляю у вас готов весь необходимый инструментарий для того, чтобы начать эксперименты с отладочными платами.

Быстрый старт с TI Drivers

TI Drivers это интерфейс, содержащий API, структуры данных и макроопределения, которые может использовать приложение, а также примеры приложений, некоторые из них идут с приставкой «tirtos» или «freertos», что означает, что это примеры с операционной системой реального времени (в таких примерах есть подробный README.html файл с описанием). Данные интерфейсы одинаковы для всего семейства SimpleLink устройств, что обеспечивает, по мнению разработчиков, 100% переносимость кода. Некий аналог HAL для STM32.

Открываем демо проект через мастер импорта

  1. В ccstudio выбираем меню Project > Import CCS Projects.
  2. В окне импорта жмем кнопку Browse и выбираем из директории <SDK_INSTALL_DIR>/examples проект для импорта. Я попробовал открыть проект empty_CC26X2_LAUNCHXL_tirtos_ccs и, как видно на скриншоте, ccstudio обнаружил CCS и GCC примеры проекта.
code composer studio импорт проекта
  1. Жмем Finish, чтобы открыть empty проект и ассоциированный с ним проект ядра TI RTOS.
  2. Далее подключаем нашу плату LAUNCHXL-CC26x2R1 к компьютеру микро-USB кабелем, компилируем проект и закачиваем его в плату. На самом деле данный пункт будет дополнен позже, когда ко мне придут платы и я смогу воспроизвести его во всех деталях.

Update (пришли отладочные платы)

После компиляции проекта, жмем кнопку Debug и скорее всего IDE предложит вам обновить ваш отладчик XDS110, соглашаемся и жмем Update.

XDS110 обновление прошивки ccs

После можно нажать на кнопку останова отладки и уже можно наблюдать как на нашей плате мигает светодиод.

Демо проект мигает светодиодом в основном потоке mainThread(). Период мигания задается переменной time. Данный пустой проект можно использовать как основу для нового проекта.

Старался расписать все максимально коротко без лишних деталей, но все равно статья получилась довольно большой. Надеюсь она была вам полезна. Чтобы не пропустить анонсы новых статей и просто интересные новости подписывайся на мой канал в telegram.

2 Ответов в “LAUNCHXL-CC26x2R1 подготовка рабочего окружения в Linux

  1. Уведомление: CC2652R Hardware Design | Radiotech.kz

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *