.. highlight:: text

Proprietary RF Quick Start Guide
================================

This short tutorial gets you started with the |SDK| eco system.

0. Basics
---------
The |DEVICEAND| combines a flexible, very low-power RF transceiver with a powerful 48-MHz Arm® Cortex®
-|MX| microcontroller in a platform supporting multiple physical layers and RF standards. A dedicated Radio Controller (Cortex®
-M0) handles low-level RF protocol commands that are stored in ROM or RAM. To be able to provide low power and high functionality,
power domains and modules on the chip have to be turned on and of in a correct sequence. Using the TI provided drives achieves this.
It is also recommended that |DEVICEAND| runs an OS to schedule access to the peripherals on the chip.
TI provides the following in the SDK:

.. only:: not sdk_targets_cc23xx

    - TI-RTOS
    - noRTOS
    - FreeRTOS

.. only:: sdk_targets_cc23xx

    - noRTOS 
    - FreeRTOS

You can find chapters on all of these in the Proprietary RF User's Guide.

.. only:: not sdk_targets_cc2640

     Other community developed OSes are also available

      - `Contiki NG <http://contiki-ng.org/>`_


1. Get the |SDK|
----------------

It is recommended to download the |SDK| via the resource explorer in |CCS|.

.. only:: not sdk_targets_cc23xx

  .. figure:: resources/ccs-sdk-download.png
     :align: center

     The resource explorer in CCS.

.. only:: sdk_targets_cc23xx

  .. figure:: resources/ccs-sdk-download-cc23.png
     :align: center

     The resource explorer in CCS.

Or alternatively, download the |SDK| manually from the TI website.

The |SDK| contains:

.. only:: not sdk_targets_cc23xx

  - **Libraries**

    - TI-RTOS kernel (previously named SYS/BIOS)
    - TI-Drivers (high-level hardware abstraction)
    - DriverLib (low-level hardware abstraction)

.. only:: sdk_targets_cc23xx

  - **Libraries**

    - TI-Drivers (high-level hardware abstraction)
    - DriverLib (low-level hardware abstraction)

.. only:: sdk_targets_cc13xx_cc26xx

    - TI 15.4 Stack
    - TI BLE-Stack for CC1352XX.

.. only:: sdk_targets_cc13x0

    - TI 15.4 Stack
    - TI BLE-Stack for CC1350. The CC1350 does not have enough resources to run
      two stacks. If full BLE is wanted together with sub 1 GHz it's recommended
      to look into the CC13x2 family.

.. only:: sdk_targets_cc2640

    - TI Bluetooth® Low Energy (BLE) software stack
    - TI Bluetooth® Low Energy 5 (BLE5) software stack


.. only:: not sdk_targets_cc23xx

  - **Resources**

    - Example projects for the TI-RTOS kernel and TI-Drivers
    - User guides
    - API references

.. only:: sdk_targets_cc23xx
  
  - **Resources**

    - Example projects for FREERTOS and TI-Drivers
    - User guides
    - API references


2. Bookmark the SDK Documentation Overview
------------------------------------------

The :docs_root:`documentation overview page <Documentation_Overview.html>` is
the entry point for all SDK-related documentation and it is highly recommended
to bookmark it in the browser.

#. Go to http://dev.ti.com/tirex/
#. Software ``-->`` |SDK| ``-->`` ``Documentation Overview``

.. only:: not sdk_targets_cc23xx

  .. figure:: resources/tirex-documentation-overview.png
     :align: center

     The SDK documentation overview page on the TI Resource explorer.

.. only:: sdk_targets_cc23xx

  .. figure:: resources/tirex-documentation-overview-cc23.png
     :align: center

     The SDK documentation overview page on the TI Resource explorer.

It is also available offline in the Resource Explorer of CCS.


3. Try out the SDK Example Projects
-----------------------------------

The |SDK| contains a set of proprietary RF examples for creating a
Proprietary RF protocol with |DEVICE|. All the RF driver examples have
support for the CCS and IAR IDE.

.. only:: not sdk_targets_cc23xx

    .. figure:: resources/tirex-examples.png
       :align: center

       CCS Resource Explorer Examples

.. only:: sdk_targets_cc23xx

    .. figure:: resources/freertos-examples.png
       :align: center

       CCS Resource Explorer Examples

For more information about the different examples provided, see the Proprietary
RF Examples Guide.


4. Follow the SimpleLink Academy Trainings
------------------------------------------

`SimpleLink Academy`_ contains multiple tutorials for all SimpleLink devices.

  .. figure:: resources/simplelink-academy.png
     :align: center

     SimpleLink Academy.


5. Read the User’s Guides
-------------------------

All software concepts are explained there. You will find all user's guides
mentioned on the documentation overview page of the SDK:

.. only:: not sdk_targets_cc23xx

    - |TI-RTOS_UG|
    - |POWER_MANAGEMENT_UG|
    - |SYS_ANALYZER_UG|
    - Proprietary RF User's Guide

.. only:: sdk_targets_cc23xx

    .. toctree::
        :titlesonly:
      
        /freertos/power.rst 

    - Proprietary RF User's Guide

6. Watch the Kernel Workshop Videos
-----------------------------------

.. |tirtos-online-videos| image:: resources/tirtos-online-videos.jpg
    :target: https://training.ti.com/ti-rtos-workshop-series

.. only:: not sdk_targets_cc23xx

  If you have never used TI-RTOS before, these `online video workshops
  <https://training.ti.com/ti-rtos-workshop-series>`_ give you a fast start.

  |tirtos-online-videos|

.. only:: sdk_targets_cc23xx

  TI offers many workshops on `online video workshops
  <https://www.ti.com/video/library.html>`_ to give you a fast start
  when using TI devices. 

7. Look into the API References
-------------------------------

The API references explain details about all functions and types in the SDK.
They can be reached from the documentation overview page of the SDK:

.. only:: not sdk_targets_cc23xx

  - |TI-RTOS_API|
  - |TI_DRIVERS_API|
  - |DRIVERLIB_API|

.. only:: sdk_targets_cc23xx

  - |TI_DRIVERS_API|
  - `Driverlib23xx`_


8. Consult the Technical Reference Manual
-----------------------------------------

The |TRM| describes the |DEVICEAND| family in more detail. It is helpful when
extending and writing TI Drivers.


9. Ask for support on E2E
-------------------------

Search for similar questions on E2E : https://e2e.ti.com/support/

**When asking a question:**

- Compress information: Do not write essays, but be precise.
- Describe: What do you want? What did you try? What is the error?
- Essential facts: What SDK version are you using? What device and board? What
  example project is your project based on?

**When contacting TI customer support:**

- Isolate the problem first.
- Provide a minimal working example application.
- This saves time for you and us and will lead to better response times.