Running Software Examples on the CC13x1x3 or CC26x1x3

Porting Software Examples for the CC13x1x3 or CC26x1x3

The CC13x1x3 or CC26x1x3 devices are pin compatible with their respective CC13x2x1 or CC26x2x1 devices but with only one UART and SSI, 32KB + 8KB GP cache SRAM (with parity removed), and 40 kB of ROM. The following features and peripherals have also been removed entirely:

  • IEEE 754-compliant single-precision Floating Point Unit (FPU)

  • Memory Protection Unit (MPU)

  • AES 256-bit crypto accelerator

  • ECC and RSA Public Key Hardware Accelerator

  • SHA2 Accelerator

  • Sensor Controller with 4KB of SRAM

Note

CC13x1x3 or CC26x1x3 devices offer a software implementation of the AES, ECC, RSA, and SHA2 functions with a similar API as the one available on CC13x2x1 or CC26x2x1. Refer to the TI Drivers API Reference for additional details.

It is not possible to use the Hardware View tool to change the device types of projects using CC13x2x1 or CC26x2x1 to CC13x1x3 or CC26x1x3. Developers are strongly encouraged to import a project which contains the correct settings for their target device and port the stack application accordingly. Example projects can be found from the following location: <SDK_DIR>\\examples\\rtos\\<LaunchPad variant>\\<stack>\\<application>\\tirtos\\<ccs/iar>

CC1311R3

For CC1311R3 development, the recommended approach is to start with the CC1311P3 LaunchPad. The main difference between the CC1311R3 and CC1311P3 devices is the high PA on the CC1311P3. You can read details about this in the device data sheets.

Software Development

For software development, use a CC1311P3 LaunchPad.

CC1311R3 Evaluation

When you have CC1311R3 devices that you want to test, you can follow this guide. If you are using a custom board, you can disregard this guide and instead look at the Custom Hardware section.

Please follow the steps below to migrate a CC1311P3 LaunchPad software example to CC1311R3. The assumption here is that you have a CC1311R3 device mounted on a LaunchPad. CC1311R3 is pin compatible with CC1312R and CC1312R7 devices, so a CC1312R LaunchPad or CC1312R7 LaunchPad should be used.

  • First, navigate to the board metadata folder located in: <SDK_DIR>\\source\\ti\\boards\\.meta. Note: This folder is hidden by default on Windows OS. If you do not see this directory, please show “Hidden Items” to view the folder. You can do this by going to the View tab in Windows Explorer and checking the “Hidden items” check box inside the “Show/Hide” panel.

  • In the same directory, make a copy of the board file corresponding to your LaunchPad board. E.g. if you are using a CC1311R3 on a CC1312R7 LaunchPad, make a copy of LP_CC1312R7.syscfg.json. Rename the file to LP_CC1311P3.syscfg.json. This file is used by the SysConfig tool and specifies board related configuration metadata.

  • Open the newly created LP_CC1311P3.syscfg.json file and change the following fields to point to the LP_CC1311R3:

    • Change the name field to "LP_CC1311R3"

    • Change the displayName field to "CC1311R3 LaunchPad"

    • Change the device field to "CC1311R3RGZ"

  • Import a CC1311P3 LaunchPad project into CCS or IAR.

  • Open the .syscfg file with a text editor. Make the following edit to replace LP_CC1311P3 with LP_CC1311R3 in the first line. This will tell SysConfig of the new board type to be used.

    Listing 42. Replace SysConfig board type
    * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    */
    // @cliArgs --board /ti/boards/CC1311R3 --rtos tirtos7
    
  • Clean and build the project to confirm that no errors exist

CC2651R3

The CC2651P3 LaunchPad is highly recommended for evaluating CC13x1x3 or CC26x1x3 solutions. As the CC2651R3 is pin compatible with CC2652R or CC2652R7 variants, either of these LaunchPad options must be considered as candidates for swapping the on-board device. Yet the CC2651R3 is functionally identical to the CC2651P3 device for non-PA operation and thus CC2651P3 software examples should be referenced after making the following changes.

  • First, navigate to the board metadata folder located in: <SDK_DIR>\\source\\ti\\boards\\.meta. Note: This folder is hidden by default on Windows OS. If you do not see this directory, please show “Hidden Items” to view the folder. You can do this by going to the View tab in Windows Explorer and checking the “Hidden items” check box inside the “Show/Hide” panel.

  • In the same directory, make a copy of LP_CC2652R7.syscfg.json and rename it to LP_CC2651R3.syscfg.json. This file is used by the SysConfig tool and specifies board related configuration metadata.

  • Open the newly created LP_CC2651R3.syscfg.json file and change the following fields to point to the LP_CC2651R3:

    • Change the name field to "LP_CC2651R3"

    • Change the displayName field to "CC2651R3 LaunchPad"

    • Change the device field to "CC2651R3RGZ"

  • Import a CC2651P3 project into CCS or IAR

  • Open the .syscfg file with a text editor. Make the following edit to replace LP_CC2651P3 with LP_CC2651R3 in the first line. This will tell SysConfig of the new board type to be used.

    Listing 43. Replace SysConfig board type
    * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    */
    -// @cliArgs --board /ti/boards/LP_CC2651P3 --rtos tirtos
    +// @cliArgs --board /ti/boards/LP_CC2651R3 --rtos tirtos
    
  • Clean and build the project to confirm that no errors exist

If a CC13x1x3 or CC26x1x3 hardware is not available, developers could begin evaluation using CC13x2x1 or CC26x2x1 LaunchPads and devices. However, the following should be accounted for when starting development using CC13x2x1 or CC26x2x1 projects with the intent of migrating to the CC13x1x3 or CC26x1x3:

  • RAM_SIZE defined in cc26x2lp.cmd should be reduced from 0x14000 to 0x8000 to account for the SRAM reduction. FLASH_SIZE should likewise be reduced from 0x52000 to 0x42000 since the BLE and 15.4 stacks will be moved from ROM to Flash to account for the decrease in ROM. This is a worst-case scenario as additional flash requirements range from ~28 to 63 kB based on application. FLASH_LAST_BASE should remain the same as it will still contain the CCFG and BIM (if applicable).

  • Follow all Using the Cache as RAM instructions and disable NVOCMP_GPRAM in nvocmp.c (only pertaining to projects using the multi-page NV driver). Be aware that the program will need to run at a slightly reduced speed which will increase the device power consumption in sleep as noted in the User’s Guide. This difference can be further investigated using the Power Consumption → Power Modes table in the device datasheet

Beyond these feasible software changes, it should be noted that additional radio patches are required for the CC13x1x3 or CC26x1x3 that cannot be emulated with a CC13x2x1 or CC26x2x1 device. These changes are not expected to have a significant effect on radio performance and are thus inconsequential for initial evaluations.

The on-board devices can be swapped for the desired variant since they are pin compatible. As mentioned previously, the correct example project must be selected for the specific device being used.

Using a different package variant

The CC13x1x3 or CC26x1x3 devices are available with two RoHS-compliant package variants.

  • 7-mm × 7-mm RGZ VQFN48 (31 GPIOs)

  • 5-mm × 5-mm RKP VQFN40 (23 GPIOs)

See the datasheet for all the package options and IO descriptions.

Warning

Only the 7-mm × 7-mm RGZ VQFN48 (31 GPIOs) variant of the CC13x1x3 or CC26x1x3 devices are pin compatible with their respective CC13x2x1 or CC26x2x1.

The different package variants are binary compatible as long as the software does not access a non-existing IO on the considered package. For the 5x5 package, the available IOs are between IOID_0 and IOID_22. The Hardware View instructions should be used to change from the RGZ package to the RKP, which will also require selecting Use Custom Board as directed in Custom Hardware since the CC13xx or CC26xx LaunchPad hardware uses the RGZ variant.

Moving From LaunchPad to Custom Board

You can find instructions on how to design and configure a custom board in the Custom Hardware chapter.