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

ADAU1401 MCLK and BCLK

SigmaDSP & SigmaStudio Scorch May 16, 2020 00:00 11 replies Original on forum ↗
Subscribe
Scorch Question
May 16, 2020 00:00

I am currently working on a project with the adau1401. I going to be using an spdif receiver connected to an ASRC and then to the ADAU1401. The ADAU1401 will be doing some filtering and outputting i2s to a set of three DACs. I'm having an issue conceptually. So, if the ADAU1401 is the master, then the BCLK pin will be outputting the MCLK rather than the BCLK and I need to find a way to create the BCLK? Or, would it be better to have an external clock generator create the master clock and the ADAU1401 will not be the master device?

Audio Signal Processors

adau1401

SigmaDSP Audio Processors

Scorch Reply
May 16, 2020 00:00

Should also clarify, using the MCLKI pin is not an option as this is connected to a 12.288MHz oscillator

CopperMaze Reply
May 17, 2020 00:00

ADAU1401 serial audio input => LRCLK and BCLK are "slave" only. (datasheet p.46).

I see some options:

- Generate MCLK with a dedicated chip and push that into both the ASRC and the ADAU1401, and use the ASRC to generate BCLK and LRCLK.

- Generate all the clocks needed between ASRC and ADAU on a dedicated clock generator chip (including MCLK).

- Use an ASRC with PLL able to generate its own MCLK from BCLK, and get BCLK and LRCLK from the ADAU1401 output. ADAU is making MCLK with an Xtal in this case.

pastedimage1589693119421v1.png
pastedimage1589693119421v1.png
CopperMaze Reply
May 17, 2020 00:00

Why not using a DSP a bit beefier with SPDIF inputs and ASRC already integrated? Budget? You are already adding 3 more DACS to the ADAU, might as well get a nice CODEC, an ADAU145x and get rid of the SPDIF/ASRC thing altogether...

Scorch Reply
May 17, 2020 00:00

Thanks. I already considered that. I ordered a beefier one. however the board isn't going to be here for quite a while. Thanks for the answer as well, that was what I was thinking of doing, but just wanted to verify it.

Scorch Reply
May 17, 2020 00:00

specifically an adau1446

Scorch Reply
May 17, 2020 00:00

Ok, so this is my plan: I will use a asrc between the spdif receiver and the DSP, and then use a pll to generate the MCLK from BCLK. Does this seem reasonable?

CopperMaze Reply
May 17, 2020 00:00

What ASRC are you using exactly? I need to take a peek in the datasheet.

Scorch Reply
May 17, 2020 00:00

I was looking at using the cs8421:

https://www.cirrus.com/products/cs8421/

I was also wondering, could I just use a clock generator to generate the mclk if the frequency is fixed?

Scorch Reply
May 17, 2020 00:00

I am currently looking at using the cs8421 from cirrus logic. Was also wondering if I could just use a clock generator rather than a pll to generate a fixed MCLK if the sampling frequency is fixed?

CopperMaze Reply
May 17, 2020 00:00

No need PLL or external clock, CS8421 can work as a slave or master on both serial input and output. So you can generate the clock with an xtal on the CS, and feed MCLK out of the CS to the ADAU.

DaveThib Reply
May 20, 2020 00:00

Hello Scorch,

We have used the CS8416 and it has a clock output which is 128x fs or 256 x fs once the PLL locks to the incoming signal. It also will also switch to a system clock if the PLL is not locked.

This is what should drive the master clock input of the DSP.

I did not look at the CS8412 but it looks like CopperMaze did. The key is you have to have a master clock that is derived from the incoming clock on the SPDIF signal. Then you will not need a sample rate converter because the DSP will just follow the sample rate of the incoming SPDIF signal.

The only problem is if you are planning on using higher sample rates above 48kHz. Then it starts getting tricky.

I also recommend you move to the ADAU145x family of parts with SPDIF and ASRCs built in. They are so much more powerful and you can do a lot more with them without the need of a controller.

Dave T