This note describes building an SPDIF/ADAT/I²S slave to I²S converter using ASRC
VERSION | RELEASED | COMMENTS | DOCUMENTATION | SOFTWARE |
---|---|---|---|---|
v1.1.0 | 2024-11-21 | VIEW HTML VIEW PDF | ZIP | |
1.0.1 | 2024-09-16 | DOWNLOAD ZIP | ZIP |
Overview#
This note describes the authoring of a ADAT/SPDIF/I²S to I²S converter/bridge. Asynchronous sample rate conversion (ASRC) is employed in order to bridge the two differing clock domains.
This note replaces AN00231: SPDIF Receive to I2S output using Asynchronous Sample Rate Conversion
Key features#
The documented application is designed to run on the XK-316-AUDIO-MC board and has the following key features:
- ASRC input interfaces:
S/PDIF Receive
ADAT Receive (including support for S/MUX)
I²S slave receive
- ASRC output interfaces:
I²S slave transmit
Additional ADAT/SPDIF transmitters are enabled in ADAT or S/PDIF mode (data derived from input received from the ASRC “output” I²S bus)
Support for the following sample frequencies: 44.1, 48, 88.2, 96, 176.4, 192 kHz
Sample latency of between 1.9 and 0.33 milliseconds (Higher sample rates -> lower latency) which can be lowered to between 1.1 and 0.24 milliseconds
Core power consumption between 126 and 205 mW depending on configuration
Provides similar functionality to the CS8422 device
Known issues#
None
Required tools#
XMOS XTC Tools: 15.3.0
Required libraries (dependencies)#
lib_src (www.xmos.com/file/lib_src)
lib_adat (www.xmos.com/file/lib_adat)
lib_spdif (www.xmos.com/file/lib_spdif)
lib_i2c (www.xmos.com/file/lib_i2c)
lib_i2s (www.xmos.com/file/lib_i2s)
lib_sw_pll (www.xmos.com/file/lib_sw_pll)
lib_logging (www.xmos.com/file/lib_logging)
lib_xassert (www.xmos.com/file/lib_xassert)
lib_xcore_math (www.xmos.com/file/lib_xcore_math)