There are so many sample rates. I’m puzzled about the relationship among the sample rates, interpolation and decimation.
I configurate the NADC, MADC, AOSR to get the first sample rate, ADC_Fs.
And configurating the NDAC, MDAC, DOSR, I get the second sample rate, DAC_Fs.
In the PPS, there is the third sample rate, CurrentRate.
On WCLK pin, there is the forth sample rate, WCLK, which is I2S sample rate.
I guess that:
ADC_Fs / decimation = DAC_Fs / interpolation = CurrentRate = WCLK.
Is that right?
I want the ADC_Fs = 192kHz, WCLK = 44.1kHz.
As for DAC_Fs, 192kHz or 44.1kHz is OK.
How can I set those sample rate, interpolation and decimation?
In fact, I got some noise from my device with the process flow which was work well on the EVM.
These are 3 differences between the EVB and my device.
- On the EVM, the input channels are IN1L/R. On my device, they are IN3L/R. I’ve changed the routing register in my code.
- The XTAL oscillator on EVB is 12.288MHz, which on my device is 24MHz. I’ve changed the J=8, D=1920, P=2, R=1 to make the PLL_CLOCK = 98.304MHz, which was same as PLL_CLOCK on EVM.
- The BCLK on EVM is 2.822 4MHz, and the BCLK on my device is 1.411 2MHz. I read the register 27 on page 0, and the value is 0x00, which means I2S 16bit, no matter on EVM or on my device. On EVM, although the BCLK=2*32*WCLK, the least 16bit on DIO is always 0x00.
Which can cause the noise? Or something else I missed?