В предыдущей статье, где рассматривался референс-дизайн антенны IFA, я уже говорил, что заказал отладочные платы LAUNCHXL-CC26x2R1 для знакомства с беспроводными микроконтроллерами CC2652R от TI и стеком Zigbee TI Z-Stack. И пока мои платы едут ко мне, в этой статье рассмотрим их немного более детально и совершим быстрый старт в подготовке инструментария для разработки под данную платформу.
![LAUNCHXL-CC26x2R1](https://blog.radiotech.kz/wp-content/uploads/2020/01/launchxl-cc26x2r1_launchxl-cc26x2r1.jpg)
Описание
Начнем с того, что имеется на плате:
- 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 джамперы](https://blog.radiotech.kz/wp-content/uploads/2020/01/jumpers-min.png)
Кроме того, что встроенный 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 установка](https://blog.radiotech.kz/wp-content/uploads/2020/01/Snimok-ekrana-ot-2020-01-19-20.53.42-min.png)
Выбираем Custom Installation, чтобы выбрать необходимые для установки компоненты.
![code composer studio 9 linux установка](https://blog.radiotech.kz/wp-content/uploads/2020/01/image-20200119205732557-min.png)
Выделяем необходимые компоненты, в моем случае это SimpleLink CC13xx and CC26xx Wireless MCUs для разработки под чип CC2652R, а также MSP430 ultra-low power MCUs, т.к. у меня имеются часики eZ430-Chronos от TI и может наконец сейчас у меня дойдут до них руки.
![code composer studio 9 linux установка](https://blog.radiotech.kz/wp-content/uploads/2020/01/image-20200119210454610-min.png)
Еще пару информационных окон и на этом все, далее идет установка.
![code composer studio 9 linux установка](https://blog.radiotech.kz/wp-content/uploads/2020/01/image-20200119210813883-min.png)
Если вы как я запустили инсталлятор без привилегий суперпользователя, то необходимо запустить скрипт установки драйверов и правил udev. Для этого переходим в директорию <CCS_INSTALL_DIR>/ccs/install_scripts
и запускаем скрипт sudo ./install_drivers.sh
.
![code composer studio 9 linux установка](https://blog.radiotech.kz/wp-content/uploads/2020/01/image-20200119211435760-min.png)
И на этом установка 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.
Открываем демо проект через мастер импорта
- В ccstudio выбираем меню Project > Import CCS Projects.
- В окне импорта жмем кнопку Browse и выбираем из директории
<SDK_INSTALL_DIR>/examples
проект для импорта. Я попробовал открыть проектempty_CC26X2_LAUNCHXL_tirtos_ccs
и, как видно на скриншоте, ccstudio обнаружил CCS и GCC примеры проекта.
![code composer studio импорт проекта](https://blog.radiotech.kz/wp-content/uploads/2020/01/image-20200120111429333-min.png)
- Жмем Finish, чтобы открыть empty проект и ассоциированный с ним проект ядра TI RTOS.
- Далее подключаем нашу плату LAUNCHXL-CC26x2R1 к компьютеру микро-USB кабелем, компилируем проект и закачиваем его в плату. На самом деле данный пункт будет дополнен позже, когда ко мне придут платы и я смогу воспроизвести его во всех деталях.
Update (пришли отладочные платы)
После компиляции проекта, жмем кнопку Debug и скорее всего IDE предложит вам обновить ваш отладчик XDS110, соглашаемся и жмем Update.
![XDS110 обновление прошивки ccs](https://blog.radiotech.kz/wp-content/uploads/2020/01/Snimok-ekrana-ot-2020-02-04-08.23.02-min.png)
После можно нажать на кнопку останова отладки и уже можно наблюдать как на нашей плате мигает светодиод.
![](https://blog.radiotech.kz/wp-content/uploads/2020/02/launchpad-hello-world.gif)
Демо проект мигает светодиодом в основном потоке mainThread()
. Период мигания задается переменной time
. Данный пустой проект можно использовать как основу для нового проекта.
![](https://blog.radiotech.kz/wp-content/uploads/2020/01/image-20200120140425879-min.png)
Старался расписать все максимально коротко без лишних деталей, но все равно статья получилась довольно большой. Надеюсь она была вам полезна. Чтобы не пропустить анонсы новых статей и просто интересные новости подписывайся на мой канал в telegram.
2 Ответов в “LAUNCHXL-CC26x2R1 подготовка рабочего окружения в Linux”
Комментарии отключены.