CC32XX SimpleLink Host Driver  1.0.0.1
 All Data Structures Functions Variables Typedefs Groups Pages
CC32XX SimpleLink Host Driver

Introduction

The SimpleLink CC32XX family allows to add Wi-Fi and networking capabilities to low-cost embedded products without having prior Wi-Fi, RF or networking expertise. The CC32XX is an ideal solution for sensor and control applications such as home appliances, home automation and smart metering. The CC32XX has integrated a comprehensive TCP/IP network stack, Wi-Fi driver, security supplicant and high-performance applications ARM Cortex-M4 MCU with ultra-low memory footprint, all without compromising the capabilities and robustness of the final application.Refer to the CC32XX Peripheral User Guide for application MCU peripheral APIs.

Modules

To make it simple, TI's SimpleLink CC32XX platform capabilities were divided into modules by topic (Silo). These capabilities range from basic device management through wireless network configuration, standard BSD socket and much more. Listed below are the various modules in the SimpleLink CC32XX driver:

  1. Device - controls the behavior of the CC32XX device (start/stop, events masking and obtaining specific device status)
  2. Wlan - controls the use of the WiFi WLAN module including:
    1. Connection features, such as: profiles, policies, SmartConfig
    2. Advanced WLAN features, such as: scans, rx filters and rx statistics collection
  3. Socket - controls standard client/server sockets programming options and capabilities
  4. Netapp - activates networking applications, such as: HTTP Server, DHCP Server, Ping, DNS and mDNS.
  5. Netcfg - controls the configuration of the device addresses (i.e. IP and MAC addresses)
  6. FileSystem - provides file system capabilities to TI's CC32XX that can be used by both the CC31XX device and the user.

Configuration

CC32XX SimpleLink driver is by default configured to support a wide range of application. User based on the application requirement can adjust these configurations. The guide takes you through this process step by step. Please notice that all modifications and porting adjustments of the driver should be made in the user.h header file only. Keep making any of the changes only in this file will ensure smoothly transaction to new versions of the driver at the future!

Modify user.h file

The first step is to modify user.h file that includes default configurations and adjustments.

Memory management model

The SimpleLink driver support two memory models:

  1. Static (default)
  2. Dynamic

CC32XX default configuration is Static. In the dynamic model it will use the malloc and free defined by supported Operating System. If one wishes to define its own memory management, they can define these interfaces

Asynchronous event handlers routines

The SimpleLink device generate asynchronous events in several situations. These asynchronous events could be masked. In order to catch these events you have to provide handler routines. Please notice that if you not provide a handler routine and the event is received, the driver will drop this event without any indication of this drop.

Interface communication driver

The SimpleLink device supports several standard communication protocol among SPI and UART. CC32XX Host Driver implements SPI Communication Interface The interface for this communication channel includes 4 simple access functions:

  1. open
  2. close
  3. read
  4. write

In CC32XX, SPI implementation uses DMA in order to increase the utilization of the communication channel. If user prefers to user UART, above interfaces need to be redefined

OS adaptation

The SimpleLink driver could run on two kind of platforms:

  1. Non-Os / Single Threaded (default)
  2. Multi-Threaded

CC32XX SimpleLink Host Driver is ported on both Non-Os and Multi Threaded OS enviroment. The Host driver is made OS independent by implementing an OS Abstraction layer. Reference implementation for OS Abstraction is available for FreeRTOS and TI-RTOS.

If you choose to work in multi-threaded environment under different operating system you will have to provide some basic adaptation routines to allow the driver to protect access to resources for different threads (locking object) and to allow synchronization between threads (sync objects). In additional the driver support running without dedicated thread allocated solely to the simple link driver. If you choose to work in this mode, you should also supply a spawn method that will enable to run function on a temporary context.

License

Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions 
are met:

  Redistributions of source code must retain the above copyright 
  notice, this list of conditions and the following disclaimer.

  Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the 
  documentation and/or other materials provided with the   
  distribution.

  Neither the name of Texas Instruments Incorporated nor the names of
  its contributors may be used to endorse or promote products derived
  from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

More Information


http://www.ti.com/product/cc3200
http://processors.wiki.ti.com/index.php/CC31xx_&_CC32xx