50.5.6 TDM Audio Stream Management
When a TDM audio stream (more than two audio sources: “2.1”, “5.1” etc.) is provided on a transmit channel, the ASRC automatically distributes the audio sub-streams into several DSPs (maximum 2 sub-streams per DSP). After resampling by DSP, the different sub-streams can be merged into a single receive channel or split into several receive channels.
When several audio input sources of equal or different sampling rates are provided to the ASRC through several transmit channels, it is possible to merge the resulting resampled sub-streams into a single TDM audio stream channel.
To manage various cases, ASRC_RHRx and ASRC_THRx can be associated with one or more DSP by configuring ASRC_CH_CONF.THROPMODE and ASRC_CH_CONF.RHROPMODE.
When ASRC_CH_CONF.THROPMODE=0, each ASRC_THRx is associated to only one DSP. In this mode of operation, up to four fully independent stereo streams can be processed. If one or more DSPs are configured in “mono” format, the stream received, processed and written by the DSP is “mono”.
When the ASRC_CH_CONF.THROPMODE=1, data written to ASRC_THR0 are respectively distributed to DSP0 and DSP1. Thus, if both DSP are configured in Stereo mode, two stereo audio data streams are processed and if the ASRC_CH_CONF.RHROPMODE=1, the ASRC_RHR0 provides a resulting, resampled audio stream (TDM frame with four sub-streams). When one ASRC_RHR is configured to read data from multiple DSPs, the output frame rate of the DSP read must be the same. If the ASRC_CH_CONF.RHROPMODE=0, the stereo sub-streams are split between ASRC_RHR0 and ASRC_RHR1 and the output frame rate of each DSP may differ. If DSP1 is configured in mono, the transmit audio stream must be of type “2.1” oriented, that is, three audio sub-streams.
The configuration ASRC_CH_CONF.THROPMODE=1 or ASRC_CH_CONF.RHROPMODE=1 is optimal for processing audio streams embedding three or four audio input sources (for example, “2.1, 2.2, 3.1” type audio streams) and that are transmit via ASRC_THR0 and read via ASRC_RHR0.
When ASRC_CH_CONF.THROPMODE=1 or ASRC_CH_CONF.RHROPMODE=1, ASRC_THR1/RHR1 is dedicated to DSP2 and ASRC_THR2/RHR2 is dedicated to DSP3. Thus, up to two fully independent stereo (or mono) audio streams can be processed at the same time as the audio stream processed by DSP0 and DSP1.
When two audio streams of type “2.1, 2.2, 3.1” must be resampled, ASRC_CH_CONF.THROPMODE/RHROPMODE must be written to 2. ASRC_THR0/RHR0 manages the transfer channels for the first audio stream processed by DSP0 and DSP1 while ASRC_THR1/RHR1 manages the transfer channels for the second audio stream processed by DSP2 and DSP3.
When an audio stream embedding more than four and fewer than seven sub-streams (“4.1, 5.1, etc) must be resampled, the ASRC_CH_CONF.THROPMODE/RHROPMODE must be written to 3. ASRC_THR0/RHR0 manages the transfer channels for the audio streams by distributing the audio sub-streams to DSP0, DSP1 and DSP2. DSP3 can be written and read by ASRC_THR1/RHR1 to manage an additional fully independent stereo stream.
For audio stream with seven or eight audio input sources (“6.1”, “7.1”, etc.), the ASRC_CH_CONF.THROPMODE/RHROPMODE must be written to 4. ASRC_THR0/RHR0 manages the transfer channels for the audio streams. Other transmit and receive holding registers have no effect and are not used.
The configuration to associate transmit holding registers to DSPs (ASRC_CH_CONF.THROPMODE) can differ from the configuration to associate receive holding registers to DSPs (ASRC_CH_CONF.RHROPMODE). Depending on the different configurations, the ASRC splits, merges or resamples audio streams.
For all possible configurations, see the figures below.