№9 / 2017 / статья 4

Модули CC2650MODA – Bluetooth без лишних забот

Вячеслав Гавриков (г. Смоленск)

Модуль CC2650MODA производства Texas Instruments – это сборка, объединяющая беспроводной микроконтроллер CC2650, антенну и кварцевые резонаторы. Такие модули максимально упрощают процесс создания BLE-устройств (Bluetooth low-energy). Они способны работать в качестве сетевого процессора под управлением внешнего микроконтроллера или в качестве основного процессора системы. Для облегчения разработки и отладки BLE-устройств TI выпускает платы BOOSTXL-CC2650MA и пакет ПО BLE-STACK-2-2-1.

Bluetooth — один из наиболее популярных беспроводных интерфейсов. Ни один современный смартфон или планшет не обходится без поддержки этого протокола. Но для создания Bluetooth-устройств требуется потратить много времени и сил. В последнее время ситуация начала меняться с появлением недорогих микроконтроллеров, модулей и отладочных наборов с Bluetooth. Одним из лидеров в данном сегменте является компания Texas Instruments (TI).

В настоящее время TI выпускает несколько типов микросхем и модулей для Bluetooth:

  • CC256x – семейство контроллеров с одновременной поддержкой протоколов Bluetooth Classic [BR/EDR] и Bluetooth low-energy (BLE);
  • CC2564MODx – семейство законченных приемопередатчиков Bluetooth. Представляют собой модули со встроенной антенной на базе контроллеров CC2564;
  • CC26x – семейство малопотребляющих микроконтроллеров с 32-битным ядром ARM Cortex-M3, рабочей частотой до 48 МГц и поддержкой BLE;
  • CC2650MODA – семейство законченных BLE-модулей на базе микроконтроллеров CC26x.

Для ускорения разработки и отладки устройств на базе процессоров CC26x компания TI предлагает использовать отладочный набор SimpleLink™ CC2650 Wireless MCU LaunchPad™ Kit (наименование при заказе – LAUNCHXL-CC2650, рисунок 1). При этом кроме самой отладочной платы пользователь получает доступ к библиотекам и примерам, входящим в состав пакета ПО BLE-STACK-2-2-1. Однако еще более простым способом создания BLE-устройств является использование готовых модулей CC2650MODA.

Рис. 1. Внешний вид отладочной платы CC2650 LaunchPad™

Рис. 1. Внешний вид отладочной платы CC2650 LaunchPad™

Рис. 2. Внешний вид CC2650MODA

Рис. 2. Внешний вид CC2650MODA

Модуль CC2650MODA представляет собой законченное решение со встроенным микроконтроллером и антенной, и является идеальным выбором для быстрого создания BLE-устройств (рисунок 2). В нем установлена микросхема CC2650 в корпусе 5×5 мм. При использовании таких модулей самая сложная часть разработки, связанная с проектированием ВЧ-части радиопередатчика, уже решена. Проектировщикам остается только создать программный код и выбрать подходящую систему питания.

Модули CC2650MODA способны работать в двух режимах:

  • в качестве ведомого сетевого процессора, работающего под управлением внешнего микроконтроллера;
  • в качестве основного процессора системы.
Рис. 3. Внешний вид платы расширения CC2650 Module BoosterPack™ (BOOSTXL-CC2650MA)

Рис. 3. Внешний вид платы расширения CC2650 Module BoosterPack™ (BOOSTXL-CC2650MA)

Для разработки и отладки BLE-устройств на базе CC2650MODA применяется плата расширения TI SimpleLink™ Bluetooth® low energy CC2650 Module BoosterPack™ Plug-in Module (наименование при заказе – BOOSTXL-CC2650MA, рисунок 3). По умолчанию плата BOOSTXL-CC2650MA подразумевает совместную работу с наборами LaunchPad, например, c платой SimpleLink™ MSP432P401R LaunchPad™ Development Kit MSP-EXP432P401R. При этом модуль CC2650MODA выступает в качестве ведомого беспроводного процессора. Однако BOOSTXL-CC2650MA может использоваться самостоятельно для отладки BLE-приложений, в которых CC2650MODA является основным процессором. При этом отправной точкой для пользовательского кода могут стать доработанные примеры из BLE-STACK-2-2-1, изначально рассчитанные на исполнении в чипе СС2650 размером 7×7 мм.

Краткий обзор беспроводных модулей CC2650MODA

Модули CC2650MODA построены на базе малопотребляющих микроконтроллеров CC2650 с 32-битным ядром ARM Cortex-M3 и рабочей частотой до 48 МГц (рисунок 4). Помимо основного процессорного ядра, микроконтроллеры CC2650 имеют вспомогательное ядро ARM Cortex-M0 для управления радиопередатчиком и поддержки беспроводных протоколов. Также в состав модуля входит антенна и кварцевые резонаторы.

Рис. 4. Блок-схема модулей CC2650MODA

Рис. 4. Блок-схема модулей CC2650MODA

Таким образом, у CC2650MODA есть практически все, что нужно для создания Bluetooth-устройств. При этом типовая схема включения оказывается максимально простой — разработчику требуется всего лишь реализовать систему питания с единственным уровнем напряжения 1,8…3,8 В, а также добавить разъем программирования (рисунок 5). Программирование встроенного микроконтроллера осуществляется с помощью JTAG. Необходимо только добавить дополнительный подтягивающий резистор 100 кОм на выводе nRESET.

Рис. 5. Схема включения блока CC2650MODA

Рис. 5. Схема включения блока CC2650MODA

Даже при такой простой конфигурации пользователь получает доступ к 15 входам-выходам, восемь из которых могут быть использованы как аналоговые входы. Кроме того, благодаря богатому функционалу встроенного контроллера CC2650 разработчикам доступны четыре таймера, коммуникационные интерфейсы (SPI, I²C, UART), компараторы и другая периферия.

Главным достоинством CC2650MODA, конечно же, является поддержка протокола BLE и IEEE 802.15.4 MAC. Также модуль может быть использован для создания устройств ZigBee®, 6LoWPAN и ZigBee RF4CE™.

Для огромного количества приложений контроллер CC2650, который входит в состав модуля CC2650MODA, может выполнять функцию основного процессора. Поэтому разработчикам будет интересно иметь в распоряжении подходящую отладочную плату. Однако существующая плата расширения BOOSTXL-CC2650MA в первую очередь нацелена на совместное использование с наборами LaunchPad. Впрочем, BOOSTXL-CC2650MA без проблем может работать и самостоятельно.

Особенности работы BOOSTXL-CC2650MA

Чтобы оценить работу CC2650MODA в качестве ведомого процессора, разработчикам предлагается использовать плату расширения BOOSTXL-CC2650MA совместно с отладочными наборами LaunchPad.

В качестве примера можно рассмотреть подключение CC2650 Module BoosterPack к отладочной плате MSP432P401R LaunchPad™ (наименование MSP-EXP432P401R, рисунок 6). При этом к услугам разработчиков предоставляется не только базовый набор бесплатного ПО SimpleLink MSP432 Software Development Kit (SDK) (SIMPLELINK-MSP432-SDK), содержащий библиотеки и примеры, но и дополнительный пакет SIMPLELINK-SDK-BLUETOOTH-PLUGIN, в который, в частности, входят библиотеки и примеры для работы с ведомым модулем CC2650MODA.

Рис. 6. Подключение платы расширения BOOSTXL-CC2650MA к MSP432P401R LaunchPad

Рис. 6. Подключение платы расширения BOOSTXL-CC2650MA к MSP432P401R LaunchPad

По умолчанию BOOSTXL-CC2650MA поставляется с заранее зашитой программой для работы модуля CC2650MODA в режиме ведомого. Однако не стоит забывать, что CC2650MODA включает в себя полноценный микроконтроллер CC2650, который способен работать в качестве основного процессора системы.

Чтобы ускорить разработку и отладку BLE-устройств, в которых CC2650MODA выступает в качестве основного процессора, можно воспользоваться все той же платой BOOSTXL-CC2650MA. Для этого необходимо решить три задачи:

  • организовать подключение программатора для прошивки контроллера;
  • если это необходимо – выполнить незначительные доработки аппаратной части;
  • отредактировать примеры из пакета ПО BLE-STACK-2-2-1, чтобы их можно было использовать с CC2650MODA.

Рассмотрим каждую из них отдельно.

Особенности программирования платы BOOSTXL-CC2650MA

По умолчанию BOOSTXL-CC2650MA поставляется с заранее зашитой программой. Для перепрограммирования CC2650MODA в самом простом случае можно воспользоваться платой CC2650 LaunchPad, в которую интегрирован JTAG-программатор XDS110.

Изначально в CC2650 LaunchPad программатор XDS110 подключен к резидентному контроллеру CC2650 с помощью набора из 11 перемычек (джамперов). Если их удалить, то XDS110 можно использовать для программирования внешних контроллеров по JTAG.

Для программирования BOOSTXL-CC2650MA с помощью CC2650 LaunchPad следует выполнить четыре шага (рисунок 7):

Рис. 7. Схема подключения BOOSTXL-CC2650MA при программировании с помощью CC2650 LaunchPad

Рис. 7. Схема подключения BOOSTXL-CC2650MA при программировании с помощью CC2650 LaunchPad

  • удалить джамперы на плате CC2650 LaunchPad. Это требуется, чтобы отключить от JTAG-интерфейса расположенный на этой же плате штатный микроконтроллер CC2650;
  • подключить плату расширения к разъему JTAG-программирования XDS110 с помощью отладочного кабеля;
  • если используется CC2650 LaunchPad ревизии 1.2 или выше – подключить дополнительный подтягивающий резистор между выводом nRESET и выводом 3,3 В;
  • подключить плату CC2650 LaunchPad к компьютеру через USB. Это необходимо для программирования и питания.

После выполнения этих пунктов CC2650 Module BoosterPack готов к программированию (рисунок 8).

Рис. 8. Внешний вид используемой схемы включения

Рис. 8. Внешний вид используемой схемы включения

Корректировка файлов из BLE-STACK-2-2-1 для BOOSTXL-CC2650MA

Теперь, когда плата расширения готова к программированию, необходимо написать саму программу. На этом этапе можно значительно упростить себе жизнь, если воспользоваться примерами из пакета ПО BLE-STACK-2-2-1, которые были предназначены для CC2650 LaunchPad. Однако использовать эти примеры напрямую с BOOSTXL-CC2650MA без доработки нельзя.

Дело в том, что на плате CC2650 LaunchPad установлен процессор CC2650 с корпусным исполнением 7×7 QFN (31 I/O), в то время как в CC2650MODA используется процессор CC2650 с корпусным исполнением 5×5 QFN (15 I/O). Кроме того, характеристики ВЧ-трактов у этих отладочных плат различны. Поэтому, чтобы воспользоваться готовыми примерами от разработчика, требуется внести ряд изменений в конфигурационные файлы. Здесь стоит отметить, что аналогичную работу нужно проводить, если используется не BOOSTXL-CC2650MA, а плата собственной разработки (с чипом другого размера, иной схемой согласования с антенной и конкретным набором задействованных портов ввода-вывода).

Для начала в директории проектов BLE-STACK-2-2-1 находим файл CC2650_LAUNCHXL.h (по умолчанию — C:\ti\simplelink\ble_sdk_2_02_01_18\src\boards\CC2650_LAUNCHXL\CC2650_LAUNCHXL.h.). Далее – в нем необходимо изменить описание выводов и определить тип радиопередающего тракта (листинг 1).

Листинг 1. Исправленная версия файла CC2650_LAUNCHXL.h

/* RF Configuration definition */

#define CC2650EM_5XD /* RF Configuration for CC2650 Module */

// #define CC2650EM_7ID /* Default RF config for CC2650 LaunchPad */

/* Mapping of pins to board signals using general board aliases

* <board signal alias> <pin mapping>

*/

/* Discrete outputs */

#define Board_RLED IOID_4

#define Board_GLED IOID_2

#define Board_LED_ON 1

#define Board_LED_OFF 0

/* Discrete inputs */

#define Board_BTN1 PIN_UNASSIGNED

#define Board_BTN2 PIN_UNASSIGNED

/* UART Board */

#define Board_UART_RX IOID_1 /* RXD */

#define Board_UART_TX IOID_0 /* TXD */

#define Board_UART_CTS PIN_UNASSIGNED /* CTS */

#define Board_UART_RTS PIN_UNASSIGNED /* RTS */

/* SPI Board */

#define Board_SPI0_MISO IOID_12 /* RF1.20 */

#define Board_SPI0_MOSI IOID_11 /* RF1.18 */

#define Board_SPI0_CLK IOID_10 /* RF1.16 */

#define Board_SPI0_CSN PIN_UNASSIGNED

#define Board_SPI1_MISO PIN_UNASSIGNED

#define Board_SPI1_MOSI PIN_UNASSIGNED

#define Board_SPI1_CLK PIN_UNASSIGNED

#define Board_SPI1_CSN PIN_UNASSIGNED

/* I2C */

#define Board_I2C0_SCL0 PIN_UNASSIGNED

#define Board_I2C0_SDA0 PIN_UNASSIGNED

/* SPI */

#define Board_SPI_FLASH_CS PIN_UNASSIGNED

#define Board_FLASH_CS_ON 0

#define Board_FLASH_CS_OFF 1

Как видим, в первых трех строках кода мы должны закомментировать исходное определение CC2650EM_7ID и определить CC2650EM_5XD. Данные директивы в дальнейшем используются препроцессором компилятора для правильной настройки ВЧ-тракта микроконтроллера. Здесь стоит отметить, что компания TI предлагает к услугам разработчиков несколько референсных плат с готовыми решениями ВЧ-каналов. В частности – директива CC2650EM_5XD сообщает о том, что в BOOSTXL-CC2650MA используется такая же конфигурация ВЧ-тракта, как и у референсной платы CC2650EM-5XD-RD. Если проектировщик разрабатывает собственную плату, то ему стоит выбрать подходящую референсную схему, а в коде определить соответствующую директиву.

Также необходимо внести изменения в код программы, если в конченом устройстве будет другое назначение выводов. Неиспользуемые выводы должны быть определены как PIN_UNASSIGNED. В листинге 1 внесены изменения для перехода от CC2650 LaunchPad к BOOSTXL-CC2650MA.

Далее необходимо подправить файл CC2650_LAUNCHXL.c (по умолчанию он находится в директории C:\ti\simplelink\ble_sdk_2_02_01_18\src\boards\CC2650_LAUNCHXL\CC2650_LAUNCHXL.c). Изменения вносятся в таблицу конфигурации выводов PIN_Config BoardGpioInitTable[ ] (листинг 2).

Листинг 2. Исправленная версия таблицы конфигурации выводов из CC2650_LAUNCHXL.с

const PIN_Config BoardGpioInitTable[ ] = {

Board_RLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */

Board_GLED | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */

Board_UART_RX | PIN_INPUT_EN | PIN_PULLDOWN, /* UART RX via debugger back channel */

Board_UART_TX | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH | PIN_PUSHPULL, /* UART TX via debugger back channel */

Board_SPI0_MOSI | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI master out – slave in */

Board_SPI0_MISO | PIN_INPUT_EN | PIN_PULLDOWN, /* SPI master in – slave out */

Board_SPI0_CLK | PIN_INPUT_EN | PIN_PULLDOWN, /*SPI clock */

PIN_TERMINATE

};

Теперь примеры, предназначенные для CC2650 LaunchPad (чип 7×7 мм), будут работать на плате CC2650 Module BoosterPack (чип 5×5 мм). Если проектировщик создает плату с нуля, то вначале рекомендуется очистить таблицу из листинга 2, чтобы там остался всего один элемент PIN_TERMINATE, а затем, по мере необходимости, добавлять в нее выводы в соответствии с принципиальной схемой. Не стоит забывать, что у модулей CC2650MODA доступно только 15 линий ввода-вывода.

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

Заключение

Модули CC2650MODA значительно упрощают процесс создания Bluetooth-устройств. Для быстрого освоения этих модулей может потребоваться отладочная плата. В таких случаях самым простым и быстрым решением проблемы будет использование плат расширения BOOSTXL-CC2650MA.

Если BOOSTXL-CC2650MA используется как самостоятельная отладочная плата, то в качестве основы для написания кода следует взять доработанные примеры из пакета ПО BLE-STACK-2-2-1. Для программирования можно использовать плату из стартового набора CC2650 LaunchPad™ Kit (LAUNCHXL-CC2650). Аналогичный подход логично использовать для миграции программных примеров на платы собственной разработки.

Литература

  1. Using TI Certified Bluetooth® low energy Module (CC2650MODA) as Single-Chip Wireless MCU. Texas Instruments, 2017;
  2. Модули CC2650MODA;
  3. Отладочный набор CC2650 Wireless MCU LaunchPad™ Kit;
  4. Модули расширения CC2650 Module BoosterPack™;
  5. ti.com.
О компании Texas Instruments

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

Наличие на складах
Наименование Наличие Цена
CC2650MODAMOHT (TI) 6 681 9.3376 $ 567.96 руб. от 54 шт
CC2650MODAMOHR (TI) 3 592 12.06 $ 733.35 руб. от 500 шт
CC2650F128RGZT (TI) 12 916 4.1824 $ 254.40 руб. от 120 шт
CC2650F128RHBT (TI) 20 871 3.9140 $ 238.07 руб. от 128 шт
BOOSTXL-CC2650MA (TI) 48 38.58 $ 2347 руб. от 13 шт
CC2564MODNCMOET (TI) 18 814 8.5489 $ 519.99 руб. от 59 шт
CC2564MODACMOG (TI) 3 958 12.15 $ 739.29 руб. от 42 шт
CC2640F128RGZT (TI) 9 021 3.8888 $ 236.53 руб. от 129 шт
LAUNCHXL-CC2650 (TI) 797 36.76 $ 2236 руб. от 14 шт
MSP-EXP432P401R (TI) 2 055 16.78 $ 1020 руб. от 30 шт