How do you feel about this article? Help us to provide better content for you.
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
What do you think of this article?
Versatile single chip device integrates a microcontroller plus peripherals with support for basic and enhanced Bluetooth data rates, ultra-low power BLE, Bluetooth Mesh and more.
The CYW20819 (186-0727) from Cypress is a Bluetooth 5 single-chip solution targeted at applications including home automation, wearables and IoT, input devices and more. Supporting modes from ultra-low power BLE to EDR 3Mbps and, rather excitingly, Bluetooth Mesh 1.0.
In this post, we take a look at the CYW20819 device architecture and capabilities, before then moving on to the Evaluation Kit, software support and provided examples.
CYW20819 Key Features
So let’s start with the CYW20819 Bluetooth Core:
-
Complies with Bluetooth Core Specification version 5.0
-
Includes support for BR, EDR 2 Mbps and 3 Mbps, eSCO, BLE, and LE 2 Mbps.
-
Programmable TX Power up to +4 dBm
-
Excellent receiver sensitivity (-95.5 dBm for BLE 1 Mbps)
The BT Core is interfaced with a microcontroller sub-system that is based around an Arm Cortex M4 clocked at 96MHz, with 160KB RAM and 265KB secure flash. Interfacing is made possible courtesy of peripherals that include ADC, 40x GPIOs, PWM, IR, I2C master and slave, 2x UARTs and 2x Quad-SPI ports, with pin routing via an I/O multiplexer. No shortage of I/O then!
Audio applications meanwhile benefit from a PDM microphone interface, I2S and PCM interfaces.
So we have a feature rich BT core and a pretty versatile micro — what else? The device also integrates clocks and power management, plus a Coexistence Interface (CGI) that can be used to optimise the sharing of limited 2.4GHz spectrum when using a WLAN part from Cypress.
The microcontroller runs the Bluetooth stack in addition to the application code, but thanks to this residing in a 1MB ROM — which also supports OTA firmware updates and provides a root of trust — flash storage is kept free for application usage.
Bluetooth Mesh
Over the years Bluetooth has evolved from a standard that was originally developed for short range and reasonably low bandwidth phone/device communications, to supporting much higher data rates via EDR and a whole range of ultra-low power use cases thanks to Bluetooth Low Energy.
In the meantime alternative systems such as Zigbee have come along to address wireless sensor, IoT and building automation etc. applications. Some of which — Zigbee included — have benefited from mesh networking capabilities, whereby the effective range is extended by a peer-to-peer architecture in which mains powered nodes act as routers and relay messages between other nodes.
The advent of Bluetooth Mesh 1.0 means that we now also have a standards based approach for extending the range of Bluetooth devices. Albeit with the advantage of course being that far more devices have a Bluetooth radio. So for example, you might use a smartphone or tablet to initially configure a sensor node, following which it then goes on to join a mesh network; the same radio being used for configuration and data transfer, thereby removing the need to have two radios, else be faced with the added cost of extra physical controls and/or poor device usability.
Evaluation Kit
The CYW920819EVB-02 kit (186-0727) provides a convenient solution for evaluation and prototyping solutions. It’s equipped with a CYW20819 carrier module with integrated antenna, plus Arduino-compatible expansion headers, buttons, LEDs, thermistor, motion sensor and power subsystem. One interesting feature of the latter being the ability to power the module via a coin cell, which will prove particularly handy when you want to put BLE applications to the test.
There are also various pin headers for configuration and a USB UART for communication with a PC running the development tools.
Modus Toolbox
The development environment and SDKs are provided by Modus Toolbox, which is built on top of the extremely popular open source Eclipse IDE. A particularly nice discovery was that this is available not just for Windows operating systems, but for Linux and MacOS also. Once downloaded installation was simply a matter of extracting the archive, installing a single dependency and then running three shell scripts prior to launching the IDE.
A high-level view is shown above and note that an alternative development environment is also available via the Mbed platform. Key features of the Modus Toolbox SDK support include:
-
Dual-mode Bluetooth(BT)stack included in the device ROM (BR/EDR and BLE)
-
BT stack and profile level APIs for embedded BT application development(Host and Controller on the same device)
-
WICED™HCI protocol to simplify developing applications that require interfacing with more powerful processors
-
APIs and drivers to access on-chip peripheral blocks such as SPI, UART, and ADC.
-
Bluetooth protocols supported include Generic Access Profile (GAP), Generic Attribute Profile (GATT), Security Manager Protocol (SMP), Radio Frequency Communication protocol (RFCOMM), Service Discovery Protocol (SDP), and BLE Meshprotocol.
-
BLE and BR/EDR profile APIs, libraries,and sample applications
-
Support for Over-The-Air (OTA) upgrade
When creating a new project in Modus Toolbox it’s possible to select a demo application and these include a simple sensor app and client, datalogger, BLE beacon and Find Me profile (FMP) apps, keyboard, mouse and remote HID examples, plus a selection of mesh demo apps. These can also all be found on GitHub, together with many more smaller “snip applications” which clearly demonstrate specific features, including OTA firmware upgrade, for example.