I²S/TDM controller (“master”) and target (“slave”)
VERSION | RELEASED | COMMENTS | DOCUMENTATION | SOFTWARE |
---|---|---|---|---|
6.0.1 | 2024-11-13 | VIEW HTML VIEW PDF | ZIP | |
3.0.0rc2 | 2018-12-06 | DOWNLOAD | ZIP | |
2.3.0rc1 | 2017-01-26 | DOWNLOAD | ZIP | |
2.2.0rc3 | 2016-11-29 | DOWNLOAD | ZIP | |
2.2.0rc2 | 2016-11-28 | DOWNLOAD | ZIP | |
2.1.1rc1 | 2016-01-07 | DOWNLOAD | ZIP | |
2.1.0rc1 | 2015-12-15 | DOWNLOAD | ZIP | |
2.0.1rc1 | 2015-05-28 | DOWNLOAD | ZIP | |
2.0.0rc2 | 2015-04-23 | DOWNLOAD | ZIP |
Summary#
I²S (Inter-IC Sound) is a digital serial protocol developed for transmitting high-quality audio data between components, like microcontrollers, audio codecs, and DSPs. It’s commonly used for PCM (Pulse Code Modulation) audio, which is the standard form for digital audio representation. I²S has three main lines: Serial Data (SD), Serial Clock (SCK) [1], and Word Select (WS) [2], with separate channels for clock and data, reducing jitter and ensuring synchronisation.
In TDM (Time-Division Multiplexing) mode, multiple audio channels can be sent over a single I²S data line, with each channel occupying specific time slots. This allows I²S to support multi-channel audio, useful for applications like surround sound.
lib_i2s
allows interfacing to I²S or TDM (time division multiplexed) buses via xcore ports
and can act either act as I²S controller (previously termed master) or target (previously termed
slave) or TDM controller.
Features#
I²S controller, TDM controller and I²S target modes.
Supports multiple input and output data lines.
standard I²S, left justified or right justified data modes for I²S.
Multiple formats of TDM synchronisation signal supported.
Sample rates up to 384 kHz (TDM limited to 192 kHz).
Up to 32 channels in/32 channels out (depending on sample rate and protocol).
Known issues#
I²S target cannot support > 96 kHz on a 4-bit port (#141)
Development repo#
Required tools#
XMOS XTC Tools: 15.3.0
Required libraries (dependencies)#
lib_xassert (www.github.com/xmos/lib_xassert)
Support#
This package is supported by XMOS Ltd. Issues can be raised against the software at www.xmos.com/support