CC26x0 to CC26x2¶
This section describes the main differences an application developer must be aware of between CC26x0 and CC26x2 devices along with a porting guide to demonstrate the migration effort.
Features and Benefits¶
Increased Processing Power and Scalability¶
The CC26x2 is a wireless MCU with a dedicated ARM Cortex-M4F application processor that is pin-to-pin compatible to the CC26x0 in the 7x7mm QFN package. More memory is available with an increase of non-volatile memory to 608kB. This breaks down into 352kB Flash memory + 256 KB ROM. RAM has also increased to 80 kB. The availability of this increased memory provides support for Over-the-Air Downloads (OAD), larger applications, and more simultaneous connections. An additional UART is also included.
Lower Power Operation and Zigbee Green Power Devices¶
A 50% reduction in standby current and 70% reduction in current consumption through the Sensor Controller allows for long-term operation from a single AA or coin-cell battery for sleepy end devices. If an end application project requires battery-less products, the CC26x2 will provide the ability to support both Green Power Source and Sink Devices.
Zigbee 3.0 enabled¶
If your project wasn’t already on the Zigbee 3.0 profile, the CC26x2 Z-Stack solution provides support of Zigbee 3.0. This includes features such as child aging, enhanced security, Base Device Behavior, and Green Power support. More information can be found in the What’s New in Zigbee 3.0 White Paper.
With additional hardware security accelerators for AES-128/256, SHA-256, and ECC, CC26x2 saves five times the processing time and current consumption for implementing security algorithms. This is critical to enable strong network security.
Porting Instructions from Z-Stack 1.2.2a to 3.1.0¶
The intention of these instructions is to help developers convert their legacy Zigbee projects to the SimpleLink CC26x2 SDK. This includes collecting all of the essential materials from the older Z-Stack project and recognizing the mesh network settings to which the new project must adhere. It will then require importing a SimpleLink SDK sample application, renaming all appropriate resources, changing mesh network configurations, and customizing the application files.
This module is intended to provide a process overview and does not go into specific detail about each conversion aspect that should be considered per application.
- Copy the project files. All significant application resources should be contained
inside of the C:\ti\simplelink\zstack_home_1_02_02a_44539\Projects\zstack\HomeAutomation\<Zigbee Project>\CC26xx
folder of the IAR project. For basic designs this will consist of
[application].c. All files should be copied to a location on the system that can be accessed for later review.
- Examine all configuration settings. Zigbee projects contain several options that
determine how the mesh network operates. To duplicate this behavior inside the new
project one must take note of the most important settings so that they may be
reformatted inside the SimpleLink Zigbee SDK. The description of the most crucial
variables are captured in Network Configurations and located in the following IAR
- Project Options → C/C++ Compiler → Preprocessor → Defined symbols
Some variables have been added to Z-Stack 3.0, hence these files should not be copied directly from a Z-Stack HA 1.2.2a project.
Z-Stack HA 1.2.2a is based off of the Zigbee PRO 2012 (r20) specification whereas Z-Stack 3.x.x follows Zigbee PRO 2015 (r21) and later. There are several significant changes between these specifications that greatly affect the behavior of the Zigbee mesh network, including child aging, enhanced security, BDB specification, and Green Power as described in the What’s New in Zigbee 3.0 White Paper. Caution should be taken to recognize these differences and the new/altered mesh network settings thereof.
- Import a SimpleLink CC26x2 SDK project into Code Composer Studio (CCS) or IAR. CCS
will be used for demonstrative purposes, use either of the following options inside
- View → Resource Explorer → Software → SimpleLink CC26x2 SDK → Connectivity → Examples → Development Tools → CC26x2 LaunchPad
- File → Import → C/C++ Project → CCS Project, search directory C:\ti\simplelink_CC26x2_sdk_x_xx_xx_xx\examples\rtos\CC26x2_LAUNCHXL\zstack
Import either the genericapp example or a sample application that reflects the desired application, such as switch for a light switch device. The Zigbee end device (ZED) node type project must be selected as this is the only one which was supported by the CC26x0. Make sure to build the project (Project → Build Project) before continuing and verify that all file paths resolve correctly as this will confirm the starting point for further code modifications.
- Alter project names so that all application-specific files and dependencies now match
the intended end application. Inside the Project Explorer, right-click on the
Project and choose Rename (or F2) to perform this task. The same should be done
Applicationfiles. Furthermore, it is good practice to replace the format of all functions, defines, etc. that use the old naming convention. Go to Edit → Find/Replace (or Ctrl+F), create the search parameters, and perform a Replace All for each application file.
A new Project Configuration name should be chosen (Project Properties → CCS General → Manage Configurations) and an entire project search (Search → File Search with Scope of Enclosing projects) will help verify that there are no old identities remaining. At this point, it is advised that the project be cleaned (Project → Clean Project) and re-built to confirm that nothing has broken while changing names. The original configuration build folder can now be deleted after the new one is generated.
Case sensitivity should be taken into account for each Find/Replace Search
and it is recommended to try multiple instances to make sure everything has been
correctly revised. The only name change required outside of the application files
zcl[Project]_task should be renamed
and the header include should be changed to
- Apply changes to the mesh network configuration files. The Network Configurations
section will further help complete this task. The most common variable
locations inside the CCS workspace are as such:
- Project Properties → CCS Build → ARM Compiler → Predefined Symbols
The preprocessor symbols in the SimpleLink CC26x2 SDK are different to those from
the TI-RTOS projects, however the most important ones to notice are documented in
the preprocessor section of the Z-Stack Quick Start Guide. The project Stack and Heap can also be
TI_RTOS_Configuration\app.cfg alongside other TI-RTOS settings.
- Make changes to the project files(
zcl_[application]_data.c) to support the application. This will include:
- Separating attributes and cluster initialization from
- Modifying initialization including endpoint, attribute, and cluster registration
- Changing Z-Stack and AF message handling
- Adding UI callback functions
- Updating cluster callback functions
- Separating attributes and cluster initialization from
Each of these points are detailed further in the Z-Stack 1.2.2a (CC26x0) to Z-Stack 3.1.0 porting guide. It is also recommended that difference comparison software be used to further understand the variation between the old and new Z-Stack project files.
- Build the project and address each issue that spawned due to the migration. Once no errors remain, the project itself will need to be further debugged to ensure that the application operates as expected.