Давно хотел написать про Bluetooth LE (4.0-4.1) кит (CY8CKIT-042-BLE) от Cypress Semiconductor.
Вообще-то планы были написать подробнее другой кит, поверхностный обзор которого я публиковал ранее. Но так и не собрался с мыслями, а тут появилось кое-что более интересное.

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

Аппаратная часть


Толковой фотографии у меня не получилось, ограничусь картинкой из пресс-релиза:

Комплект поставки:
  • Материнская плата
  • Плата (модуль) с CY8CKIT-142 PSoC 4 BLE
  • Плата (модуль) с CY5671 PRoC™ BLE
  • USB-BLE донгл (о нём подробнее далее)
  • Набор кабелей
  • Батарейка
  • Инструкця
  • USB кабель

То есть в комплекте два модуля с похожими, но всё-таки разными чипами.
Стоит отметить, что донгл может быть использован только с ПО от Cypress, средствами ОС с ним не сделать, ну кроме как использовать каким-то образом UART.
Каждый из модулей может быть как использован как самостоятельно, так и использоваться вместе с материнской платой, которая является и программатором.

CY8CKIT-142 PSoC 4 BLE

Этот модуль интересен тем, что тут больше аналоговой и цифровой периферии (выдержки из пресс-релиза):
  • 48-MHz ARM® Cortex™-M0 CPU
  • 128 KB Flash and 16 KB SRAM
  • Bluetooth LE (Smart) connectivity with Bluetooth 4.1 (2.4-GHz Bluetooth LE radio; -92-dBm Rx sensitivity, up to +3-dBm Tx power)
  • Programmable analog (4 x Op-amps; 1 x 12-bit, 1-Msps SAR ADC; 2 x Low-Power Comparators; 1 x Cypress CapSense™ touch controller with SmartSense™ Auto-Tuning)
  • Programmable digital (4 x universal digital blocks; 4 x 16-bit configurable Timer/Counter/PWM blocks; 2 x configurable serial communication blocks)
  • Flexible Low Power Modes: (1.3-?A Deep-Sleep Current; 150-nA Hibernate Current; 60-nA Stop Current
  • Wide Operating Range 1.7 – 5.5 V (Radio operational 1.9 V onwards)
  • 56-QFN (7 x 7 x 0.6 mm), 68-ball WLCSP (3.9 x 3.5 x 0.55 mm)

Мне же был интересен больше следующий модуль:

CY5671 PRoC™ BLE

Для меня интересен он был тем, что с ним можно было использовать библиотеку для распознавания жестов на панели ёмкостного тачпада, которого, кстати, нету в комплекте:
  • 48-MHz ARM® Cortex™-M0 CPU
  • 128 KB Flash and 16 KB SRAM
  • Bluetooth LE (Smart) connectivity with Bluetooth 4.1 (2.4-GHz Bluetooth LE radio; -92-dBm Rx sensitivity, up to +3-dBm Tx power)
  • Flexible Low Power Modes: (1.3-?A Deep-Sleep Current; 150-nA Hibernate Current; 60-nA Stop Current
  • Analog and digital peripherals (One 12-bit, 1-Msps SAR ADC; Four 16-bit TCPWM blocks; Two SCBs, configurable as I2C, SPI or UART; I2S for audio input)
  • Integrated library support for one- and two-finger gestures
  • 56-QFN (7 x 7 x 0.6 mm), 68-ball WLCSP (3.9 x 3.5 x 0.55 mm)

Стоимость кита – 49$ плюс доставка.

Разработка приложений


Как я уже писал, Cypress Semiconductor предоставляет бесплатную IDE – PSoC Creator. Отдельно хотелось бы остановиться на части, которая помогает получить от BLE то, что нужно, иными словами сконфигурировать BLE Stack + Application layer. Я сейчас не хочу углубляться в то, чем является Bluetooth Low Energy (aka BLE). Информации про это есть много, в том числе и на хабре.

PSoC Creator

Актуальная версия на данный момент – 3.2 доступна для скачивания на оф. сайте: www.cypress.com/psoccreator после регистрации. Среда разработки не подверглась значительным изменениям с момента написания прошлой статьи, так что особо углубляться не вижу смысла, напомню только что вся разработка базируется на понятии компонент – библиотек которые реализуют тот или иной функционал.

BLE стек (компонента BLE)

Тут я бы хотел поподробнее остановиться на описании не самой компоненты BLE, а, скорее на примерах, которые доступны в PSoC Creator:

Каждый из этих примеров это простой проект, который показывает реализацию того или иного профиля. Для данной статьи я планировал использовать BLE_HID_Mouse, но по ряду причин, основная из которых то, что у меня нету тачпада, который я мог бы использовать, чтобы обойтись без симуляции (в примере курсор просто «рисует» квадрат) я решил использовать пример BLE_HID_Keyboard. Забегая вперёд скажу, что там тоже «симуляция» клавиатуры, но так нагляднее.

Итак, откроем пример BLE_HID_Keyboard:



Сам проект содержит ЦАП (измерение уровня батареи), COM порт для дебага, светодиодные индикаторы (3х цветный светодиод на плате кита), и вотчдог в режиме обычного таймера.

Откроем конфигурацию BLE компоненты:



Вкладка конфигурации профилей:



Кроме профиля клавиатуры тут также присутствуют сервисы BAS (Battery Service), DIS (Device Information Service), SCPS (Scan Parameter Service). В принципе, при желании можно добавить любой сервис, как стандартный, так и свой:



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

Каждый из сервисов можно сконфигурировать, например DIS сервис, поле с названием производителя:



Или же имя устройства:



Попробуем запрограммировать кит и включив BLE 4.0-совместимый адаптер начать поиск новых устройств:



То же самое с телефона:



Ну и если подключиться к устройству от «клавиатуры» начнут приходить данные:











К чему это я



Ну, во-первых, как просто и легко можно окунуться в мир BLE. Есть статьи были и описывали решения от Nordic, TI, но вот упоминания Cypress Semiconductor не было, вот я и решил исправить это. Для меня был интересен еще и тот факт, как сравнительно просто, можно сделать самостоятельно устройство, которое не только будет иметь беспроводную связь, а еще и будет поддерживаться современными ОС «из коробки» и без лишних костылей.

Во-вторых, я давно хотел бы попробовать сделать самостоятельно пульт ДУ для ПК. Собственно для этого я заказал кит и начал с ним разбираться. По что с китом определился, но открыт вопрос про тачпад. Как вириант – заказать еще один кит от Cypress с таким шилдом. Ну или попробовать развести самостоятельно, но тут не факт, что хватит энтузиазма и знаний. Кто знает какие-то еще варианты, напишите в комментариях. Нужен шилд для ёмкостного тачпада хотя бы 5х5.
Еще один интересный кит, который, возможно, подходил бы больше под мои цели:
CY5672 PRoC™ BLE Remote Control Reference Design Kit (RDK)
Но по-моему куда интереснее сделать самому, тем более, когда есть возможность возможность делать всё не спеша, в удовольствие.
Нужен ли подробный обзор компоненты BLE и её возможностей от Cypress?

Проголосовало 137 человек. Воздержалось 67 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Комментарии (7)


  1. Jeditobe
    28.06.2015 01:40
    -11

    Для тех, кто хотел бы приобрести подобный девайс:

    image CYPRESS SEMICONDUCTOR CY8CKIT-042 EVAL BRD, PSOC 4, PIONEER KIT


    1. xsemperx Автор
      28.06.2015 01:51
      +1

      Во-первых — Девайс вы указали не тот.
      Во-вторых — Это вы к чему? Цена там выше, чем у оф. дистрибюторов.


      1. Jeditobe
        28.06.2015 02:04
        -6

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

        Please place an order now and Cypress will deliver the kits within a lead time of 4 weeks.


        1. xsemperx Автор
          28.06.2015 03:50

          Да, только еще два нюанса:
          1) Тот же кит который продаеться по линку на амазоне — на оф. сайте 25$ и без каких-либо ограничений
          2) Кита, о котором идёт речь в посте на амазоне я не нашёл. Не только не нашёл у того продавца, вообще не нашёл. Возможно, «Limited Stock» как-то связан с тем, что кит новый?

          Вообще наш с вами диалог напоминает ситуацию когда я рассказываю, как мне понравилась, например, груша, а вы говорите где купить яблок. Не находите?


          1. nochkin
            28.06.2015 09:14
            +8

            Не надо обращать внимание. Jeditobe обычно просто постит реферальные ссылки на Amazon и поэтому они часто не по теме.
            Достаточно пробежаться по его комментариям.


  1. serafims
    28.06.2015 15:24

    А в чем суть материнской платы для модуля и usb-донгла? На офф. сайте продается сам модуль за 10 баксов — можно ли его запрограммировать через адаптер RS-232TTL-USB? По какой цепочке происходит программирование?


    1. xsemperx Автор
      30.06.2015 14:13

      Насколько я могу судить, так не получиться потому что программируется он только через программатор. В данном случае, это материнская плата. Теоретически, можно купить только модуль и программатор, но он стоит 89$ (http://www.cypress.com/?rID=38154&source=shop)…