I2S LibraryΒΆ

A software defined library that allows you to control an I2S (Inter-IC Sound) bus via xcore ports. I2S is a digital data streaming interfaces particularly appropriate for transmission of audio data. The components in the library are controlled via C and can either act as I2S master or I2S slave.

And archived version of the original I2S specification can be found here:



The TDM protocol is not yet supported by this library.

I2S is a protocol between two devices where one is the master and one is the slave . The protocol is made up of four signals shown in I2S data wires.

Table 10 I2S data wiresΒΆ


Clock line, driven by external oscillator


Bit clock. This is a fixed divide of the MCLK and is driven by the master.


Word clock (or word select). This is driven by the master.


Data line, driven by one of the slave or master depending on the data direction. There may be several data lines in differing directions.

All I2S functions can be accessed via the i2s.h header:

#include <i2s.h>