ADAU1442 time multiplexed audio

I have an application where I am sending/receiving audio from a E1 comms link in TDM8 format. Since the E1 comms link is a 256bit packet at 8kHz rate I need to assemble/reassemble my audio stream into a 24-bit 24kS/s stream.

A 24kS/s stream is represented in the TDM8 packet as three 24-bit samples all arriving/sent in the same packet (9 bytes total).

For sending, I was going to use

the form az + az-1 + az-2

i.e convert to 24kh and then use single sample delays to create 3 outputs and then output in my TDM8 stream.

But receiving is much more difficult to me to visualise.

The input port can be delayed in reverse order to align the three samples but I uncertain how I would convert three samples received at the same time into three sequential samples and upscaled to 48kS/s (all internal processing is at 48kS/s)?

I'm not too concerned about delays in the system. I've looked at the Feedback module but don't think that will do it. I wondered about using some form of counter to use as a index to insert into a stream.

I think that there's a misunderstanding of how the serial port's input signals are sent to the SigmaDSP core. If you have a multi-channel TDM data stream on the ADAU144x's input pins, the separate channels will all appear as discrete inputs in the SigmaDSP core (and the SigmaStudio project). This is what I meant that the serial port's channel setup is handled in hardware before the data is passed to the SigmaDSP.

So, if you have a TDM stream with three data slots populated (say, slots 0-2). The first channel would come in on channel 0 in the SigmaStudio project, the next on channel 1, and the last on channel 2, as shown below.

Even with this setup, I'm not sure that you could simply re-assemble the data stream from three inputs into a single data stream. I'd have to think about that one.

I don't think I'm completely clear on what your input data format and desired output data format looks like. It's likely that the ADAU1442 should be able to support what you need with its serial ports, and sample rate converters, but I need a clearer description of exactly what you're looking to do before we can give you a complete answer. The serial ports' data format is completely handled in these hardware blocks, so you probably won't have to do any processing in the SigmaDSP core to make this work. Do you think you could upload an illustration of the data format you have (along with the associated clocks)? I think that a picture would help tremendously in trying to understand this.

What is the word length of the data you're processing? You mention that you have 3 24-bit samples for 9 bytes total, but I assume that your data word isn't 72 bits wide. What am I missing here?

Attachments

I think that there's a misunderstanding of how the serial port's input signals are sent to the SigmaDSP core. If you have a multi-channel TDM data stream on the ADAU144x's input pins, the separate channels will all appear as discrete inputs in the SigmaDSP core (and the SigmaStudio project). This is what I meant that the serial port's channel setup is handled in hardware before the data is passed to the SigmaDSP.

So, if you have a TDM stream with three data slots populated (say, slots 0-2). The first channel would come in on channel 0 in the SigmaStudio project, the next on channel 1, and the last on channel 2, as shown below.

Even with this setup, I'm not sure that you could simply re-assemble the data stream from three inputs into a single data stream. I'd have to think about that one.