ΣSigmaStudio Ask AI Русский Log in

ADAU1701 Setting up a serial output with SigmaStudio?

SigmaDSP & SigmaStudio MCastany Jun 21, 2015 00:00 1 replies Original on forum ↗
Subscribe
MCastany Question
Jun 21, 2015 00:00

Hi guys,

I want to create a serial output from the ADAU1701 to drive an S/PDIF Transmitter, but I have some doubts. The ADAU1701 will be working as the Master at 192KHz.

I thought that digital data just needed ONE data line, and LRCLK was used to determinate if the data was from the L or R channel, but in the ADAU1701 datasheet seems that it doesn't work that way. ("The flexible serial data input and output ports of the ADAU1701 can be set to accept or transmit data in 2-channel format (...)", Rev. B Page 45)

As I want to create a mono output, will I just need one of the MPx pins (MP6 to MP9), which I set up in SigmaStudio as the corresponding Digital Output? Could this create any conflict in the receiver, as there will be just the L data?

The LRCLK and BCLK will be generated automatically on MP10 and MP11 or they must be configured using SigmaStudio?

Thank you very much,

Marti

Audio Signal Processors

digital

serial

output

sigmastudio

SigmaDSP Audio Processors

adau1701

Show More

jon71 Reply
Jun 22, 2015 00:00

You need three lines to send I2S: SDOUT, BCLK, and LRCK. And of course a common MCLK. I2S and also SPDIF are normally stereo, LRCK tells the I2S receiver which channel data is transmitting. MP10 and MP11 have to be configured as clock outs in the Hardware Configuration/Register Control tab in SigmaStudio, because alternatively they can also be used as GPIOs. Also you will need to configure the SDOUT you are using (for example MP6 as SDOUT0).

When you route signal to a DIGOUT in SigmaStudio, you are sending a mono signal, but two DIGOUTS will map to a single SDOUT. For example, DIG0 and DIG1 map to SDOUT0. If you only send signal to one DIGOUT, one channel of the I2S stream will be blank. The SPDIF transmitter will thus also transmit with one channel blank.

There is a byte in the SPDIF channel status data that can be used to indicate the data is mono, but that's so rarely employed I'm not sure how various SPDIF receivers would decode that (decoding of SPDIF channel status is an issue because transmitters and receivers are very inconsistent in how that data is handled, if at all). You would also need to configure your SPDIF transmitter to set that byte in the channel status, which isn't going to be the default behavior or a function that is likely to be enabled with hardware flags on the SPDIF chip. You would thus need a software method of setting the SPDIF transmitter's channel status data. I've toyed around with programming an ADAU1701 to send those instructions to a CS8406 transmitter, but I've never actually tested it with hardware. That requires another serial data line to be used to program the transmitter.

Probably the safest bet would be to transmit your mono data in both left and right channels by sending the signal to two DIGOUTs (DIG0 and DIG1 for example) in your SigmaStudio schematic.