NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. 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.
CC256x TI's Bluetooth Stack
Contents
Introduction[edit]
- TI’s Bluetooth stack is upper layer Bluetooth Protocol Stack implementation. The TI’s Bluetooth stack supports the MSP430, MSP432, Tiva and STM32 devices using either the CCS or IAR tool chains. The TI’s Bluetooth stack includes the core protocol stack with Low Energy support (BLE), the Serial Port Profile (SPP), the Generic Attribute Profile (GATT) and various Low Energy services. The software can be obtained from here
- The TI’s Bluetooth stack is a software solution that resides above the Physical HCI (Host Controller Interface) Transport Layer and extends through the Logical Link Control and Adaptation Protocol (L2CAP) and the Synchronous Connection-Oriented (SCO/eSCO) Link layers. In addition to basic functionality at these layers, TI’s Bluetooth stack provides implementations of the Service Discovery Protocol (SDP), Radio Frequency serial COMMunications port emulator (RFCOMM), and several of the Bluetooth Profiles. Program access to these layers, services, and profiles is handled via Application Programming Interface (API) calls.
MSP432P401R Lauchpad[edit]
To work with the CC2564C device with supported Bluetooth 4.2 support, please visit the MSP432 Getting Started Guide. The TI Dual-mode Bluetooth Stack for the CC2564C on MSP432 SDK can be found here (CC256XCMSP432BTBLESW).
To work with the MSP432P401R Launchpad board Texas Instruments provides the CC256x Booster Pack (BOOST-CC2564MODA) with TI Dual-mode Bluetooth Stack on MSP432 SDK (CC256XMSP432BTBLESW).
For older CC256x variants such as the CC2564B, visit the following Getting Started Guide.
To demonstrate Voice and Audio use cases, the CC3200 Audio Booster Pack (CC3200AUDBOOST) may be used (see below).
MSP430 EVM[edit]
The TI Bluetooth stack includes sample applications directory with source code which demonstrates the use of the TI’s Bluetooth stack. These sample applications are a simple, command line application which will display a list of available commands. Input and Output can be utilized by plugging in the MSP430 Experimenter board Serial to USB debugging connector to a PC.
For platform setup and Demo information please visit the MSP430 Getting Started Guide.
TM4C EVM[edit]
For platform setup and Demo information please visit the Tiva Getting Started Guide
Dk-TM4C123GX Board + CC2564x
Dk-TM4C129GX Board + CC2564x
STM32F4 EVM[edit]
The CC2564C device comes with Bluetooth 4.2 support and the TI Dual-mode Bluetooth Stack on the STM32F4 SDK (CC2564CSTBTBLESW). Please visit the STM432 Getting Started Guide.
To work with the STM32F4 EVM board Texas Instruments provides the CC256xBEM Bluetooth Adapter Kit and TI Dual-mode Bluetooth Stack on STM32F4 SDK (CC256XSTBTBLESW). For older CC256x variants, visit the following Getting Started Guide.
Input and Output can be utilized by plugging in the STM3240G-EVAL microUSB connector to a PC.
For hardware configuration of the boards visit the CC256xEM Bluetooth Adapter Kit User Guide
Architecture Overview[edit]
TI’s Bluetooth stack is designed such that the application programmer does not have to be aware of implementation details. To satisfy this requirement, TI’s Bluetooth stack is designed based on the following principles:
- Fully thread safe (threaded environments)
- Asynchronous event notification
- Fully Re-entrant
- Entirely self contained (threaded environments)
- The first item, being thread safe, means that multi-threaded applications can make TI’s Bluetooth stack calls without the need for synchronization events to guard access to the Bluetooth Protocol Stack (unless the application is designed such that it requires its own synchronization).
- The second item, aids multi-threaded applications in that making a TI’s Bluetooth stack API call does not block the calling thread for long periods of time and requires no polling. TI’s Bluetooth stack is designed such that the application is notified of asynchronous events via application installed callbacks. These callbacks are called at the time an event occurs.
- The third item, re-entrancy, means that all TI’s Bluetooth stack API calls are safe to be called from the asynchronous callback functions. This simplifies application development by not requiring the programmer to define messages or events based upon stack events (and having to notify the application of these events).
- The final item, entirely self contained, means that the programmer does not have to call any functions to cause TI’s Bluetooth stack to function. An example of this would be a function to ‘pump’ a state machine. TI’s Bluetooth stack requires no such actions when operating in threaded environments. When TI’s Bluetooth stack is operating in a single threaded environment, functions will need to be called to periodically to process the Bluetooth state machine.
Profiles, Protocols and Services[edit]
Bluetooth SIG Adopted Specifications
Note: The MSP432, STM32 and AM335x Bluetooth Stack software each have two releases, one of which is for the CC256X device variants, while the other can be used with the new CC2564C release. The MSP432 and STM32 columns below reflect these versioning differences as (CC256XBTSTACK/CC2564CBTSTACK).
Classic Bluetooth[edit]
Traditional Profiles[edit]
Profile | Version | Role | Core Stack | MSP430 CC256XMSPBTBLESW |
TM4C CC256XM4BTBLESW |
MSP432 CC256XMS432BTBLESW CC2564CMSP432BTBLESW |
STM32 CC256XSTBTBLESW CC2564CSTBTBLESW |
AM335x SDK Addon TIBTSTACKADDON |
---|---|---|---|---|---|---|---|---|
Advanced Audio Distribution Profile | A2DP 1.2 | Source Sink |
Supported | v1.5R2 (Assisted A2DP) | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Audio/Video Remote Control Profile | AVRCP 1.4 | Target Controller |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Device ID Profile | DI 1.3 | N/A | Supported | Not Available | Not Available | Not Available | Not Available | v4.0.1.4.2/v4.0.3.0.1.0 |
File Transfer Profile | FTP 1.1 | Server Client |
Supported | Not Available | Not Available | Not Available | Not Available | v4.0.1.4.2/v4.0.3.0.1.0 |
Generic Access Profile | GAP (BT 4.0) | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Generic Audio/Video Distribution Profile | GAVDP 1.2 | Initiator Acceptor |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Headset Profile | HSP 1.2 | Audio Gateway Headset |
Supported | Not Available | Not Available | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Health Device Profile | HDP 1.0 | Source Sink |
Supported | Not Available | Not Available | Not Available | Not Available | v4.0.1.4.2/v4.0.3.0.1.0 |
HandsFree Profile | HFP 1.6 | Audio Gateway Hands Free Unit |
Supported | v1.5R2 Hands Free Unit Role Only |
v1.2R2 Hands Free Unit Role Only |
4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Human Interface Device Profile | HID 1.0 | Host Device |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Message Access Profile | MAP 1.0 | Server Client |
Supported | Not Available | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Object Push Profile | OPP 1.1 | Server Client |
Supported | Not Available | Not Available | Not Available | Not Available | v4.0.1.4.2/v4.0.3.0.1.0 |
Personal Area Networking Profile | PAN 1.0 | Network Access Point PAN User Group Ad-hoc Network |
Supported | Not Available | Not Available | Not Available | Not Available | v4.0.1.4.2/v4.0.3.0.1.0 |
Phonebook Access Profile | PBAP 1.0 | Server Client |
Supported | Not Available | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Serial Port Profile | SPP 1.1 | Device A Device B |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Protocols[edit]
Protocol | Version | Role | Core Stack | MSP430 CC256XMSPBTBLESW |
TM4C CC256XM4BTBLESW |
MSP432 CC256XMS432BTBLESW CC2564CMSP432BTBLESW |
STM32 CC256XSTBTBLESW CC2564CSTBTBLESW |
AM335x SDK Addon TIBTSTACKADDON |
---|---|---|---|---|---|---|---|---|
Audio/Video Control Transport Protocol | AVCTP 1.3 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Audio/Video Distribution Transport Protocol | AVDTP 1.2 | Source Sink |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Logical Link Control and Adaptation Protocol | L2CAP (BT 4.0) | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
RFCOMM Protocol | RFCOMM (vTBA) | Device A Device B |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Service Discovery Protocol | SDP (BT 4.0) | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
MFi[edit]
Protocol | Version | Role | Core Stack | MSP430 CC256XMSPBTBLESW |
TM4C CC256XM4BTBLESW |
MSP432 CC256XMS432BTBLESW CC2564CMSP432BTBLESW |
STM32 CC256XSTBTBLESW CC2564CSTBTBLESW |
AM335x SDK Addon TIBTSTACKADDON |
---|---|---|---|---|---|---|---|---|
iAP | iAP 1 / iAP 2 | Server / Client | Supported | v1.5R2 | Not Available | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Bluetooth Low Energy[edit]
LE Profiles and Services[edit]
Profile/Service | Version | Role | Core Stack | MSP430 CC256XMSPBTBLESW |
TM4C CC256XM4BTBLESW |
MSP432 CC256XMS432BTBLESW CC2564CMSP432BTBLESW |
STM32 CC256XSTBTBLESW CC2564CSTBTBLESW |
AM335x SDK Addon TIBTSTACKADDON |
---|---|---|---|---|---|---|---|---|
Alert Notification Service | ANS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Alert Notification Profile | ANP 1.0 | Server Client |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Battery Service | BAS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Current Time Service | CTS 1.0 | N/A | Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
Cycling Speed and Cadence Service | CSCS 1.0 | N/A | Supported | Not Available | Not Available | v4.2.1.0 | v4.2.1.0 | Not Available |
Cycling Speed and Cadence Profile | CSCP 1.0 | Collector Sensor |
Supported | Not Available | Not Available | v4.2.1.0 | v4.2.1.0 | Not Available |
Device Information Service | DIS 1.1 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Find Me Profile | FMP 1.0 | Target Locator |
Supported | v1.5R2 | Not Available | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Generic Access Profile Service | GAPS (BT 4.0) | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Generic Attribute Profile | GATT 1.0 | Server Client |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Glucose Service | GLS 1.0 | N/A | Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
Glucose Profile | GLP 1.0 | Collector Sensor |
Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
Health Thermometer Service | HTS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Health Thermometer Profile | HTP 1.0 | Collector Thermometer |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Heart Rate Service | HRS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Heart Rate Profile | HRP 1.0 | Collector Sensor |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Human Interface Device Service | HIDS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
HID over GATT Profile | HOGP 1.0 | Host Device |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Immediate Alert Service | IAS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Link Loss Service | LLS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Next DST Change Service | NDCS 1.0 | N/A | Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
Phone Alert State Service | PASS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Phone Alert State Profile | PASP 1.0 | Server Client |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | Not Available |
Proximity Profile | PXP 1.0 | Monitor Reporter |
Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Reference Time Update Service | RTUS 1.0 | N/A | Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
Scan Parameters Service | SCPS 1.0 | N/A | Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
Scan Parameters Profile | SCPP 1.0 | Server Client |
Supported | Not Available | Not Available | Not Available | Not Available | Not Available |
TX Power Service | TPS 1.0 | N/A | Supported | v1.5R2 | v1.2R2 | 4.0.3.0/v4.2.1.0 | v4.0.2.2/v4.2.1.0 | v4.0.1.4.2/v4.0.3.0.1.0 |
Custom LE Profiles and Services[edit]
Profile/Service | Version | Role | Core Stack | MSP430 CC256XMSPBTBLESW |
TM4C CC256XM4BTBLESW |
MSP432 CC256XMS432BTBLESW CC2564CMSP432BTBLESW |
STM32 CC256XSTBTBLESW CC2564CSTBTBLESW |
AM335x SDK |
---|---|---|---|---|---|---|---|---|
TI - Accelerometer Service | TI-ACC 1.0 | N/A | Not Supported | v1.5R2 | Not Available | Not Available | Not Available | Not Available |
TI - Key Fob Service | TI-KFS 1.0 | N/A | Not Supported | v1.5R2 | Not Available | Not Available | Not Available | Not Available
|
Sample Applications[edit]
Bluetooth SDK[edit]
The TI’s Bluetooth stack includes sample applications directory with source code which demonstrates the use of the TI’s Bluetooth stack. These sample applications are a simple, command line application which will display a list of available commands. For more information on the available demos see the CC256X Demos and Sample Applications
Sample Application | Profile(s) - Role(s) | MSP430 EVM | MSP432 EVM | TM4C EVM | STM32F4 EVM |
---|---|---|---|---|---|
A2DP Demo | Sink Controller |
Not Supported | Not Supported | DK-TM4C129X (equivalent sample: AUD Demo) | Not Supported |
A3DPDemo_SNK | Sink Controller |
MSP-EXP430F5438 BT-MSPAUDSINK |
MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
A3DPDemo_SRC | Source Target |
MSP-EXP430F5438 BT-MSPAUD |
MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
A3DP MultiRoom Demo | Sink Controller |
MSP-EXP430F5438 BT-MSPAUD |
Not Supported | DK-TM4C123G DK-TM4C129X |
Not Supported |
ANP Demo | Server Client |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
AUD Demo | Source Sink |
Not Supported | Not Supported | Not Supported | STM3240G-EVAL (equivalent sample: A2DP Demo) |
FMP demo | Target Locator |
MSP-EXP430F5438 | MSP-EXP432P401R | Not Supported | STM3240G-EVAL |
HDP demo | Source Sink |
Not Supported | Not Supported | Not Supported | Not Supported |
HFPDemo_AG | Audio Gateway Hands-free unit |
Not Supported | MSP-EXP432P401R | Not Supported | STM3240G-EVAL (equivalent sample: HFPAGDemo) |
HFPDemo_HF | Audio Gateway Hands-free unit |
Not Supported | MSP-EXP432P401R | Not Supported | STM3240G-EVAL (equivalent sample: HFP Demo) |
HFP demo | Audio Gateway Hands-free unit |
MSP-EXP430F5438 | Not Supported | DK-TM4C123G DK-TM4C129X |
Not Supported |
HID demo | Host Device |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
HOGP Demo | Host Device |
Not Supported | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
HOGP Keyboard Demo | Host Device |
MSP-EXP430F5438 | Not Supported | Not Supported | Not Supported |
HRP Demo | Collector Sensor |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
HSP Demo | Audio Gateway Headset |
Not Supported | MSP-EXP432P401R | Not Supported | STM3240G-EVAL |
HTP Demo | Collector Thermometer |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
iBeacon Demo | Server Client |
Not Supported | MSP-EXP432P401R | Not Supported | STM3240G-EVAL |
iSPP Demo | Device A Device B |
MSP-EXP430F5438 | MSP-EXP432P401R | Not Supported | STM3240G-EVAL (add-on) |
KeyFob Demo | MSP-EXP430F5438 | Not Supported | Not Supported | Not Supported | |
MAP demo | Server Client |
Not Supported | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
PAN demo | Not Supported | Not Supported | Not Supported | Not Supported | |
PASP Demo | Server Client |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
PBAP Demo | Server Client |
Not Supported | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
PXP Demo | Monitor Reporter |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
SPP Demo | Device A Device B |
MSP-EXP430F5438 MSP-EXP430F5529LP |
MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
SPPLE Demo | Server Client |
MSP-EXP430F5438 | MSP-EXP432P401R | DK-TM4C123G DK-TM4C129X |
STM3240G-EVAL |
SPPLE Lite Demo | Server Client |
MSP-EXP430F5529 MSP-EXP430F5529 MSP-EXP430F5529LP |
Not Supported | Not Supported | Not Supported |
CSCP Demo | Server Client |
Not Supported | MSP-EXP432P401R | Not Supported | STM3240G-EVAL |