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

ADAU1701: working at 96Khz

SigmaDSP & SigmaStudio andrea.labhf Jul 13, 2010 00:00 8 replies Original on forum ↗
Thread Summary

Thread Summary

The user asked about configuring the ADAU1701 for 96 kHz sample rate with a 24.576 MHz XTAL and self-booting via I2C EEPROM. The final answer confirmed that the PLL should be set to 256 x Fs mode (12.288 MHz) and the core to double rate (96 kHz). However, the user found that the DSP core control register (0x081C) SR bits were incorrectly set to 48 kHz during self-boot, requiring manual correction. The number of available MIPS is halved to 512 at 96 kHz, and this can be verified in the compiler_output.txt file.
AI Generated Content
Subscribe
andrea.labhf Question
Jul 13, 2010 00:00

Hi at all.

I need a clarification about 96Khz mode using ADAU1701.

My system is composed by one adau1701 and one AK4620 codec, plugged toghether via I2S (ADAU is MASTER)

The adau1701 is configured for selfbooting via I2C.

The desired sample rate is 96Khz

1. Can I use a standard EEPROM for SB or I must use only 1Mhz I2C eprom? (I2C speed in ADAU is determined by FS, and with a FS of 96Khz I2C clock is 696Khz)

2. Can I use a 24.576Mhz XTAL ? (this frequency is required by codec for properly work at 96Khz). In the adau Datasheet I can't find any specification regarding maximun XTAL frequency.

3. If PLL_MODE pins are configured for working at 48Khz (calculating FS by a known MCLKI clock) but in SigmaStudio project I select an FS of 96Khz; How does it appens? The ADAU is working at 96Khz or 48Khz? I've tred and all works good but I can't verify the effective internal FS frequency.

4. In sigmastudio there is a message that advise if the project is too big and DSP run out of Mips.

I've verified that this advise ignore the selected Sampling Frequency and ever consider the maximum instruction number aviable if you run at 48Khz.

If you run a project at 96khz, and the project exceed the mips aviable, you can't see any error but the DSP doesn't work.

Is there a way to see the Instruction cycle used in the "compiler outputs" like you can do with the ADAU1446?

ps: I doesn't use internal ADC or DAC, so I only consider the computational sampling frequency.

Thanks in advance

Andrea

Audio Signal Processors

adau1446

SigmaDSP Audio Processors

adau1701

ADIApproved Reply
Jul 14, 2010 00:00

Hello,

1. We typically use the selfboot function with a 1 MHz EEPROM as on the evaluation board, but any EEPROM that meets the size requirements and has sufficient speed should work.

2. Please use 12.288 MHz in this case.

3. Please set the PLL pins for 256 mode (as you would normally in 48 kHz mode).

4. The number of available MIPS will be cut in half. Instead of 1024 instructions, you will only be able to use 512 instructions. The total number of instructions used will appear in an output file - compiler_output.txt - which can be found in the project's directory after compilation.

The reason why you should leave the XTAL frequency and PLL mode the same as you would in 48 kHz is that all of the internal clocks will be actually running at the same rate. We simply double the rate of the sample clock in the DSP core and the serial ports (of course, in the serial ports the BCLK rate is also doubled). The logic is that most customers use the ADAU1701 at 48 or 44.1 kHz, and therefore we designed the system to run at its maximum allowable rate (using the common 12.288 MHz crystal frequency) at these sample rates. By doubling or quadrupling the core rate (thereby halving or quartering the allowable instructions), higher sample rates are allowed.

andrea.labhf Reply
Jul 14, 2010 00:00

Thanks a lot.

1: Ok, I will use a 1Mhz I2C EEPROM

2,3: I've tried with a 12.288Mhz xtal, setting PLL pins for 48Khz, and setting 96khz in Sigmastudio but I'm not able to obtain an effective computational 96khz sampling rate (DSP program works properly also using 1024 instruction per sample)

Using a 24.574Mhz XTAL all worls ok (only 512 instruction are allowed and I measure an effective 40Khz bandwith).

Do you confirm that a 24.574Mhz XTAL is not usable with ADAU1701?

4: Ok, I've noted the file.

andrea.labhf Reply
Jul 15, 2010 00:00

Hi Brett.

Today I made more tests with ADAU1701 and selfboot at 96khz.

I want to start by saying that:

- I've used a fast EEPROM (24FC128)

- I've used a 24.574 XTAL beacause in the datasheet (page 15, table 11, Power up time) is given the powerup time with an MCLKI input frequency of 24.576Mhz. So I assume that 24.576Mhz is a valid frequency for MCLKI.

- Using Link-compile-download my application works properly at 96Khz

- PLL_CONFIG pin are correctly configured for working at 96khz with an XTAL of 24.576

- In SigmaStudio project, in Hardware Configuration form, I've correctly set "program Lenght" to "2x 512 Instruction) as required for propery working at 96khz.

- If I program and verify EEPROM with sigmastudio and then restart the DSP, selfboot doesn't work (with the same circuit and program, at 48khz it work)

I noticed the following points:

- 1: Monitoring SCL pin during selfboot I've noted that the SCL frequency of selfboot isn't 768khz (96khz*8, by datasheet SamplingFreq*8) but is 384khz (48Khz*8).

- 2: After selfboot I've readed some DSP register using an I2C debugging tool.

I've noted that all register are configured properly (as selected in my sigmastudio program) but DSP doesn't output any audio signal.

On DSP CORE CONTROL REGISTER 0x081C the SR bits are readed as 00 (1024 Instruction that is correct for 48khz SR) instead of 01 (512 Instruction that is correct for 96khz SR).

If I manually write 01 in SR bits the DSP start to working properly.

It therefore seems that at 96khz selfboot is effectively done, but SR bits in DSP core control register are incorrectly configured for 48khz.

It's possible that the selfboot eprom file generated by sigmastudio doesn't properly set the SR bit for 96Khz?

I encountered a similar problem with the selfboot of adau1446 and the problem was solved with the latest sigma studio release.

Link of the discussion: https://ez.analog.com/thread/1646?start=0&tstart=0

ADIApproved Reply
Jul 16, 2010 00:00

The base sample rate of the device, which is used by the ADCs, DACs, and PLL, is called Fs. The ADAU1701’s design was based around the concept that Fs should equal either 48 kHz or 44.1 kHz. A control register allows the DSP core and serial ports to run at 2 x Fs or 4 x Fs, independently of all other functional blocks in the system. So, even when running the serial ports and core at double or quadruple rates, the frequencies of other clocks in the system, notably the MCLK input, should not change from their values when the core and serial ports are running at the normal base rate.

Therefore, there are four choices for the PLL configuration and master clock frequency of your 96 kHz system:
Input MCLK in 64 x Fs PLL mode is 3.072MHz
Input MCLK in 256 x Fs PLL mode is 12.288 MHz
Input MCLK in 384 x Fs PLL mode is 18.432 MHz
Input MCLK in 512 x Fs PLL mode is 24.576 MHz

Remember, Fs in these cases equals 48 kHz, or the "base" sample rate.

In all cases, you need to configure the core to run in double (96 kHz) mode. Essentially, the core is running at double the base rate.

For the ADAU1701’s PLL, we do explain this in the datasheet. On page 16, there is a paragraph that explains the table of PLL modes is for 48 kHz and that these multipliers will be cut in half (or quartered) if running the part in dual or quad speed modes.

Thanks for your comment about the selfboot causing an issue at 96 kHz mode. I'll look into how that register's value is being saved in the EEPROM. Perhaps it's simply not being loaded with the proper value - I'll ty to figure this out!

andrea.labhf Reply
Jul 16, 2010 00:00

Ok, now it is clear

Thanks a lot for your very comprehensive explanation.

bcoquille Reply
Sep 12, 2011 00:00

Hello,

to be sure that I understood, if I use an oscillator at 24.576 MHz on MCLKI (I need that frequency for a Class D amp - TAS5010), and if I put PLL_MOD0 PLL_MOD1 to 1, I have well functioning correct with a 192KHz sampling rate?

thanks a lot

ADIApproved Reply
Sep 13, 2011 00:00

Setting PLL_MODE1 and PLL_MODE0 to 1 will set the PLL for a 512 x Fs rate, which is 24.576 MHz. So yes, this is correct.

You also need to make sure to follow these steps to make sure your SigmaDSP is set to run a quad rate (192 kHz).

bcoquille Reply
Sep 13, 2011 00:00

ok, thanks