Examples Users Guide

The Proprietary RF examples are split in to 2 types:

  • RF Driver Examples
  • EasyLink Examples

The RF driver offers very low-level API’s to run radio operation commands on the RF core and send and receive raw packets.

The EasyLink layer is an abstraction layer above the RF driver API’s for the more convenience. It uses the RF driver and executes radio operation commands. The EasyLink library was developed to be simple enough for developers to extend for their needs and should be seen as a starting point for adding an API on top of the RF driver. The EasyLink examples show how to develop an RF application on top of the EasyLink API.

RF Driver Examples

RF driver examples are available for the TI-RTOS kernel, but can also be used without any RTOS at all. That is possible with the NoRTOS Driver Porting Layer.

The RF Driver examples can be imported from the SDK directory: C:/ti/simplelink_cc13x0_sdk_${VERSION}/examples/rtos/<PLATFORM>/drivers/

Packet RX/TX:

Shows how to send and receive packets using the RF driver. The PHY/RF settings can be modified using SmartRF Studio. Commands exported and used directly in code. Out of the box IEEE 802.15.4g GFSK 50kbps is used. Easy to change to e.g. Long Range Mode or custom PHY settings.

Synchronized Packet RX/TX:
 

In this example you will learn how to build a time-synchronized connection between one transmitter and a receiver. This leads to the lowest possible power consumption on both sides. Time synchronization builds also the foundation for Frequency and Time Division Multiple Access, FDMA and TDMA respectively.

Wake On Radio RX/TX:
 

These examples showcase the Wake-on-Radio (WoR) functionality of the CC13X0 family to significantly lower the power consumption of an RF link by duty cycling the RF core. It shows how to use the RF Driver to schedule automatic wake-ups and send messages with long preambles.

Listen Before Talk:
 

The Listen Before Talk (LBT) TX example illustrates how to implement a simple, proprietary LBT algorithm using the command chaining feature of the CC13X0 family.

Packet Error Rate:
 

System example that showcases all available PHY configurations in one application. Multiple packets are transmitted or received and the packet error rate is calculated. The result is shown on the Display as well as a VT-100 compatible UART console.

Carrier Wave:

Basic example for RF performance measurements and testing, written directly on top of the TI-RTOS RF driver. Set the radio into various test modes. Transmission of modulated or unmodulated signal. Easy to change radio configuration. Use radio settings exported from SmartRF Studio.

Running examples in Code Composer Studio (CCS)

The following walks through importing and building one of the proprietary RF examples using the CCS IDE and the TI Resource Explorer.

  1. If CCS v7 is not already installed; download and install CCS from here: https://processors.wiki.ti.com/index.php/Download_CCS.

    If it is installed it is recommended that you install the available updates (Arm 16.9.0.LTS or higher is required).

  2. Download and install the CC13x0 MCU SDK from https://www.ti.com/product/CC1310/toolssoftware#softTools.

    This step is recommended, but optional as the TI Resource exploerer can download the examples from the resource explorer server. The rest of this section will assume that you have downloaded the SDK.

  3. Open CCS, and use the menu option View-> Resource Explorer.

  4. Browse to the example of interest in the Resource Explorer.

    ../../_images/trex-examples.PNG

    Figure 5. CCS Resoure Explorer Examples

    Note

    EasyLink examples can be found in the EasyLink folder and the RF Driver examples can be found in the TI Drivers directory.

  5. Select the CCS or GCC compiler, we recommend using the CCS compiler, but compiling with GCC in the CCS IDE is also possible. Then select the example name and click the CCS icon in the top left to import it into your workspace.

    ../../_images/trex-import.PNG

    Figure 6. CCS Project Selection

    You will notice that 2 projects have been included in the workspace:

    • rfEasyLinkTx_CC1310_LAUNCHXL_tirtos_ccs
    • tirtos_builds_CC1310_LAUNCHXL_release_ccs

    As well as the example selected there is also the tirtos_builds project which is a platform and compiler specific TIRTOS build. This will only build once and is shared by all the projects for that platform and compiler in your workspace.

    ../../_images/projectworkspace.PNG

    Figure 7. CCS Project workspace

  6. Build and download and debug the project by clicking on the ‘bug’. The first time it will take some time due to the TI-RTOS build.

    ../../_images/bug.PNG

    Figure 8. CCS Debug

  7. Click run to run the example.

    ../../_images/run.PNG

    Figure 9. CCS Run

Running examples in IAR

  1. If IAR ARM Workbench v7.80.3 or higher is not already installed, download and install IAR Workbench for ARM from http://www.iar.com .

  2. Download and install the CC13x0 MCU SDK from https://www.ti.com/product/CC1310/toolssoftware#softTools .

  3. Open IAR and create a new workspace with the menu option File -> New  -> Workspace

    You can use this workspace for one or more examples.

  4. Import the IAR Custom Argument Variables file with the menu option Tools -> Configure Custom Argument Variables. The location and file to be imported is C:/ti/simplelink_cc13x0_sdk_1_xx_xx_xx/tools/iar/SIMPLELINK_CC13XX_CC26XX_SDK.custom_argvars.

    ../../_images/iar-argvars.PNG

    Figure 10. Custom Argument Variables

  5. Save the Workspace with the menu option File -> Save Workspace As....

  6. To enable the Custom Argument Variables for this workspace close and open the workspace with the menu options File -> Close Workspace and File -> Open -> Workspace.

  7. Select the menu option Help -> Information Center and select the Integrated Solutions icon:

    ../../_images/iar-integratedsolutions.PNG

    Figure 11. Integrated Solutions

  8. Select the Texas Instruments Example projects and then click on the example applications link.

    ../../_images/iar-ti.PNG

    Figure 12. Texas Instruments Examples

  9. Follow the instructions on this page to import and build the project.

  10. When you click on one of the examples, it will ask you to place a copy of the project file in another folder. Save it in a sub-folder of your workspace. If you are going to import only one example into your workspace, you can put the project file into the same folder as the workspace file.

  11. Download and debug the example with the menu option Project -> Download and Debug.

Building the examples from command line

All examples can be built from command line using plain makefiles in 3 steps:

  1. Configure the toolchain paths
  2. Build the kernel (only when using TI-RTOS kernel)
  3. Build the example

Note

To avoid problems with spaces in paths, it is recommended to use a Unix shell like Bash as command line environment instead of the native command interpreter cmd.exe in Windows.

The toolchain paths are configured in a imports.mak in the SDK installation root folder. Open the file in an editor and modify the toolchain install paths lines depending on which toolchain you are going to use and where they are installed on your system.

# The shown versions are just examples.
XDC_INSTALL_DIR        ?= c:/ti/xdctools_3_50_03_33_core

CCS_ARMCOMPILER        ?= c:/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.3.LTS
GCC_ARMCOMPILER        ?= c:/ti/ccsv7/tools/compiler/gcc-arm-none-eabi-6-2017-q1-update
IAR_ARMCOMPILER        ?= c:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/arm

Once that is done, the TI-RTOS kernel can be built. This step is not necessary for No-RTOS examples. In order to build the kernel, select a specific development board and build the release configuration. The makefile can be found in the folder <SDK_INSTALL_DIR>/kernel/tirtos/builds/<BOARD>/release/<TOOLCHAIN>. Example:

$ cd /c/ti/simplelink_cc13x0_sdk_1_xx_xx_xx/kernel/tirtos/builds/CC1310_LAUNCHXL/release/gcc
$ make

Finally, the examples can be built. Navigate to the desired example and invoke make:

$ cd /c/ti/simplelink_cc13x0_sdk_1_xx_xx_xx/rtos/CC1310_LAUNCHXL/drivers/rfSynchronizedPacketRx/tirtos/gcc
$ make -j4

The resulting .out file is a regular ELF file that can be flashed to the device or converted into a binary or an Intel Hex file for other purpose, for instance, over-the-air download. Example for objcopy from the GNU binutils package:

$ arm-none-eabi-objcopy -S --gap-fill 0xff -O binary rfSynchronizedPacketRx.out rfSynchronizedPacketRx.bin
$ arm-none-eabi-objcopy -S -O ihex rfSynchronizedPacketRx.out rfSynchronizedPacketRx.hex