Example Summary

Example that uses the I2S driver to echo the audio received from the Line In (Audio source) over the Line Out (headphones|speakers). This example shows:

Peripherals & Pin Assignments

When this project is built, the SysConfig tool will generate the TI-Driver configurations into the ti_drivers_config.c and ti_drivers_config.h files. Information on pins and resources used is present in both generated files. Additionally, the System Configuration file (*.syscfg) present in the project may be opened with SysConfig’s graphical user interface to determine pins and resources used.

BoosterPacks, Board Resources & Jumper Settings

This example requires a CC3200 Audio BoosterPack

For board specific jumper settings, resources and BoosterPack modifications, refer to the Board.html file. Due to the required jumper wires, some boards will not use the CC3200AUDBOOST hardware component in SysConfig but will instead assign the I2S pins manually.

If you’re using an IDE such as Code Composer Studio (CCS) or IAR, please refer to Board.html in your project directory for resources used and board-specific jumper settings.

The Board.html can also be found in your SDK installation:

<SDK_INSTALL_DIR>/source/ti/boards/<BOARD>

Example Usage

If you halt the target during execution of this example, and then run again, the echoing will not resume. You will need to reload the program.

Application Design Details


    `i2sReadList`          `treatmentList`          `i2sWriteList`
    [Transaction] ... (1)   [Transaction] ... (2)   [Transaction]....  (3)
    [Transaction]   :......>[Transaction]   :       [Transaction]   :
    [Transaction]                           :       [Transaction]   :
 ..>[Transaction]                           :......>[Transaction]   :
 :                                                                  :
 :..................................................................:

(1) The read interface systematically fills the buffer contained in the head transaction of the i2sReadList. When the buffer held by this transaction is full, the transaction is dequeued from the i2sReadList and queued as the tail of the treatmentList. The read interface continues receiving data by using the next transaction of the i2sReadList.

(2) The treatment function treats the sample data contained by the transactions queued in the treatmentList. The transaction treated is the head transaction of the treatmentList. Once this transaction is treated, the transaction is dequeued from the treatmentList and queued in the i2sWriteList.

(3) The write interface systematically sends out the buffer contained in the head transaction of the i2sWriteList. When the buffer held by this transaction has been completely sent out, the corresponding transaction is dequeued from the i2sWriteList and queued in the i2sReadList . The write interface continues sending out data by using the next transaction of the i2sWriteList.

The drivers by default are non-instrumented in order to limit code size.

FreeRTOS: