Overview

The software development kit directory structure is broken down into a few major directories at the root to allow easy differentiation between documentation, examples, and other source code. From the root directory, the sub-directories are:

  • docs/: All documentation for the SDK
  • examples/: Source code and project definitions for example projects in the SDK
  • source/drivers/net/wifi: Source code for the cc33xx Wi-Fi driver (and pre-built libraries)
  • source/net/wifi_interface: Wi-Fi stack API (see wlan_commands.h)
  • source/third_party: 3rd party software
  • tools/: CC33xx firmware and programming scripts

System Architecture

This figure shows a block diagram of the CC33xx + Sitara MCU solution at a high level. For MCU hosts, this CC33XX package introduces the Thick-MAC concept where the WPA Supplicant and the connection management are implemented within the CC33XX device. This configuration reduces the footprint of the host application and simplifies the Wi-Fi control. Note that having the Supplicant inside the device is different from the Linux Transceiver partitioning used by the MPU based hosts.

../../_images/BD-CC33XX-ThickMAC1.png

Fig. 3 Thick MAC block Diagram

In this solution, there is an external serial flash that stores the Sitara AM243x application image. Upon boot, the application image will be copied to the host’s internal RAM and run from it. The CC33XX firmware and bootloader code are also stored on the flash. The CC33xx host driver will install the firmware on the CC33XX device whenever the application turns on Wi-Fi. Check CC33XX Getting Started Guide for more details on running an application. The AM243x communicates with the CC33xx over SPI. For more details on the host interface, see the CC33XX Host-Driver Porting Guide.

Host Driver Architecture

The CC33xx Wi-Fi stack is composed of 3 components (and libraries):

  • Wi-Fi Stack Interface is handling the user API for controlling and configuring the wifi and the data-path interfaces (interfaces to the network-stack), The “stack interface” implements the Thick MAC interface (in which the connection manager and hostapd are implemented in the device) and is mostly used to build (serialize) the user commands in format accepted by the FW. The component is also responsible the init sequence (fw download etc) and TX flow control.
  • Wi-Fi Host Driver handles the transport layer (i.e. the logical interfaces towards the CC33xx FW) which defines how to send a generic command (or transmit an Ethernet packet) to the FW and how to receive a command response, asynchronous event or RX (ethernet) frame.
  • Wi-Fi Platform Driver is an abstraction driver that handles the cc33xx-specific initialization requirements and the different bus options (specifically it is adding the wSPI logic on top of SPI that imitates the SDIO operation by making similar memory mapping) . Using SDIO or wSPI is configurable when building the library.

The following block diagram presents the CC33xx Wi-Fi host driver components.

../../_images/BD-HostDriver-1.png

Fig. 4 Host Driver Block Diagram