NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
CC2640 BLE Network Processor
This page will describe how to use the CC2640/CC2650 as a Bluetooth low energy (BLE) wireless network processor. A wireless network processor(WNP) setup is a dual MCU solution, where an external MCU such as the MSP432 manages the Bluetooth application layer (Profiles and Services) and sends commands to the CC2640/CC2650 BLE wireless MCU over a serial interface. In the NWP configuration, the BLE Host and Controller protocol stack elements reside on the wireless MCU. Adding BLE to your existing MCU with, for example, a small module such as the CC2650MODA, quickly enables IoT capability in an existing closed/cabled design.
Note: A Network Processor is not the same as a HCI LE Controller-only configuration, such as supported by CC2564 and WiLink8 controllers. The CC2640/CC2650 wireless MCU does not support a standalone LE Controller-only configuration since the TI BLE Stack (Host and Controller) executes on the CC2640.
Serial Interface (NPI)
The serial connection between the Application Processor(AP) and Network Processor(NP) is handled through TI's Network Processor Interface(NPI). NPI is compile time configurable and currently supports UART and SPI. There are two versions of NPI. While they share a lot of similarities, there are important differences that must be accounted for when developing a dual MCU solution.
To learn more about the NPI interface that each NP solution uses, follow the links below.
Note: The Unified NPI interface is shared by multiple RF stacks within TI, this explains any non BLE references on this page.
TI BLE Wireless Network Processor Example Projects
TI offers two Wireless Network Processor (WNP) example projects in the BLE-Stack v2.x SDK to quickly add BLE to your existing MCU/SoC architecture. To assist with finding the right WNP application for your Bluetooth low energy (BLE) design, the table below shows some of the benefits and trade offs associated with each WNP example. These sample projects can be found under the examples folder in the BLE-Stack v2.2 SDK.
|SimpleNP (SNP)||An easy to use BLE network processor solution and default SW offering for the TI CC2650 Module (CC2650MODA). HCI layer is abstracted away, interface with NP via remote procedure calls.||Unified NPI||Only a handful of commands are required to start sending data over BLE. Since most Bluetooth related processing is handled by the SNP, freeing up the application processor (AP) for other tasks. Lightweight interface library for the Application MCU (SAP) is provided in source. LE Security, including LE Secure Connections is supported as of BLE-Stack v2.2.0||Peripheral + Broadcaster GAP role support only.|
|HostTest||A network processor solution that interfaces with TI's controller and host using HCI and HCI Vendor Specific commands||NPI||Configurable, supports all controller and host roles and features from the BLE-Stack SDK. Includes support for performing all regulatory testing (i.e., FCC & RF-PHY)||Requires external MCU to implement the TI Vendor Specific HCI layer, handling all commands and events generated|
TI recommends using the CC2650 Module BoosterPackTM (BOOSTXL-CC2650MA) for network processor development.
SimpleNP is for developers who want to easily add a simple and reliable BLE interface/subsystem to an existing MCU. Using the BLE-Stack v2.2 simple network processor mode allows for quick and easy addition of secure Bluetooth low energy wireless connectivity to any embedded system by providing a simple API (SAP) to drive the CC2640 wireless MCU from a host microcontroller. The complete Bluetooth low energy controller, host and a simple network processor interface layer resides on the CC2640 wireless MCU, while a light network processor driver library resides on an external MCU connected to CC2640 device via a standard serial connection. Developers can leverage this mode to reuse years of technology developed on embedded MCUs and easily add wireless connectivity to their system without going through the learning curve of Bluetooth low energy wireless protocol and software stacks. All SNP & SAP project code is provided in full source form (except for the core BLE Stack), so the developer can easily port or customize these projects to work with other application processor MCUs.
The Simple Network Processor API guide found in the documents folder of the SDK explains how to interface with the SNP project running on the CC2640.
However, it is recommended to reference the following wiki which has the most up-to-date SNP info and updates to errata identified after release:
The following guides/projects have been created to simplify getting started with the SNP.
- MSP432 Connectivity Library as the application MCU can be found here.
- Connecting TI's SimpleAP to SimpleNP: SimpleAP+SNP out of the box demo
Developers should consider HostTest for developing a dual-MCU BLE solution if they need to support the Central or multiple GAP roles and are familiar with the HCI and Vendor-Specific (VS) HCI protocol implementation. The TI VS API guide can be found in the BLE-Stack SDK documents folder.
A combination of HCI and VS HCI commands/events form the interface to the HostTest app from the application processor. HostTest uses NPI (non Unified version, see link above) to send a receive raw HCI-formatted commands over the serial interface, and pack/unpack them for the BLE stack to process. At the NPI layer all HCI packets are queued up asynchronously. NPI primarily serves to pack and unpack the HCI data structures into byte arrays, all HCI packets are sent in a FIFO manner.
The HCI/HCI Vendor Specific interface is described in the TI_BLE_Vendor_Specific_HCI_Guide included in the Documents folder of the SDK. See this document for more information about the TI Vendor Specific (VS) HCI interface.
For examples on how to manage the GATT layer, please see the link below from the CC254x.
Due to the flexibility afforded by HostTest, please note that TI cannot support custom application processor development with the HostTest project. Implementation of BLE features/layers on the AP is implementation specific and thus left up to the developer for integration. Working examples using the HostTest project include BTool (bundled in the BLE-Stack SDK), BLE Device Monitor & the HCI Tester Windows PC applications.