SimpleLink Audio Plugin Users Guide
Table of Contents
Introduction
The SimpleLink Audio Plugin is a companion software package to the device SDKs that enables audio functionality. The plugin contains a toolbox of various audio modules. These modules can be used to build sound related sample applications that realize a given use-case.
The plugin is loosely inspired by the Advanced Linux Sound Architecture: ALSA (HAL based on index of sound cards, stream manager, etc)
Prerequisites
The intent of the this document is to serve as a developer’s guide the various components of the SimpleLink Audio Plugin. It is expected that the reader has already
Read the release notes, purchased support kit(s), and installed required software
Completed the Quick Start Guide for their target development platform, performing all hardware modifications if necessary
Architecture
The following image describes the architecture of the SimpleLink Audio Plugin as well as the various components that are included. Each component will be discussed briefly below, with its major elements covered in Doxygen.
TI Components
The following components of the SimpleLink Audio Plugin are created by TI in order to enable audio application development:
- AudioHAL
- Packetizer
- Board files
Developers using these components in their application should refer to their landing page in Doxygen here: TI Audio Doxygen where all components are described at a high level. Addition information will be provided in this User’s Guide. However, primary documentation of each component resides in its Doxygen.
AudioHAL
The plugin includes a AudioHAL layer that abstracts the hardware to a PCM interface at the application layer.
For more information refer to the AudioHAL Doxygen
AudioHALCodec
AudioHALCodec
is the AudioHAL implementation that works on top of I2S, for use with external codecs. This code supports the TLV320AIC3254, but can be easily adapted to any external codec that use the I2S interface for audio streaming, and I2C for control. This implementation is compatible with the CC3200AUDBOOST.
The CC3200 Audio BoosterPack includes a TLV320AIC3254 audio codec, this is a premium high performance model with many optional features. However, most of these features are not required for use of the HAL. When selecting a codec for production hardware, the HAL requires the following minimum specifications:
- 1x ADC
- 1x DAC
- 1x bidirectional I2S port (Din, Dout)
- 1x I2C control port
Features such as the miniDSP, headphone amp, and speaker amp are optional and may or may not be needed for a given use case.
Packetizer
The SimpleLink Audio Plugin includes a Packetizer module that wraps the encode and decode functionality as well as sequence number management for each of the supported compression codecs that are described above. This allows the developer to easy support multiple codecs in their application.
For more information refer to the Packetizer Doxygen
The application is responsible to provide the correct data structure for the codec chosen. For usage information, see Packetizer.h
.
The Packetizer supports the following codecs:
Board Files
The AudioHAL
places an object definition inside the device’s board files much the way TI-Drivers do. For this reason, applications that use the AudioHAL must have a custom board file. These are shipped with the SimpleLink Audio Plugin in the source/ti/boards
and source/ti/ble5stack/boards
folders.
Example Applications
In order to bootstrap audio application development TI has included sample applications that demonstrate audio streaming using the following stacks
- BLE5-Stack
- SimpleLink Wi-Fi
- Proprietary-RF