Hello everyone.
We do use PCM3070 as a digital mixer that receives I2S mixes it with analog signal and outputs back to I2S.
We did generated a script for it via PurePath. It is all working great for all of the sampling rates up to 88.1k.
Unfortunately, at 96 and higher Fs it makes a loud noise. By doing debugging I have find out that if we not using PLL we have no noise.
However, I have not found correct register settings to made system work at lower Fs without PLL and give me quality sound.
Here is the settings that we use w/ PLL
( 0x30, 0x05, 0x91); // P=1, R=1
( 0x30, 0x06, 0x04); // J=4
( 0x30, 0x07, 0x00); // D=00 (MSB)
( 0x30, 0x08, 0x00); // D=00 (LSB)
( 0x30, 0x04, 0x13); // PLL_clkin = BCLK, codec_clkin = PLL_CLK
( 0x30, 0x0B, 0x81); // NDAC = 1, divider powered on
( 0x30, 0x0C, 0x88); // MDAC = 8, divider powered on
( 0x30, 0x0D, 0x00); // DOSR = 128 (MSB)
( 0x30, 0x0E, 0x80); // DOSR = 128 (LSB)
( 0x30, 0x12, 0x01); // NADC = 1, divider powered off
( 0x30, 0x13, 0x88); // MADC = 8, divider powered on
( 0x30, 0x14, 0x80); // AOSR = 128
MCLK = 128*Fs
BCLK = 64*Fs
Any suggestions?