This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCM3794A problem in I2S SLAVE mode

Other Parts Discussed in Thread: PCM3794A

I have encountered a problem when interfacing PCM3794A codec to an FPGA. The codec is working in I2S SLAVE mode and all the timing is controlled by the FPGA. I need to have 8 kHz sampling rate and my system clock is 12.288 MHz.

With the following configuration:

fLRCLK = 8 kHz

fBCLK = 32 fLRCLK

fSCKI = 1536 fLRCLK = 12.288 MHz 

I get very distorted sine signal at the output:

System clock rate selection is set as recommended in the datasheet: MSR[2:0] = 111 and NPR[5:0] = 000000.

Changing MSR value has no effect on the output waveform. Changing NPR value results in shape change of the sine but none is perfect. I have also modified my FPGA interface to clock data bits at 64 fLRCLK rate but there is no difference.

After decreasing SCKI frequency to 6.144 MHz (12.288 MHz / 2) the signal at the output looks as expected:

fLRCLK = 8 kHz

fBCLK = 32 fLRCLK

fSCKI = 768 fLRCLK = 6.144 MHz

MSR[2:0] = 110 and NPR[5:0] = 000000

Changing MSR value has no effect. Changing NPR value results in shape distortion of the sine (only 000000 value gives correct signal).

I have also tried to clock the codec with fSCKI = 256 fLRCLK = 2.048 MHz and it works correctly.

The question is: why doesn't it work correctly with fLRCLK = 8 kHz and fSCKI = 1536 fLRCLK = 12.288 MHz in I2S SLAVE mode? What am I missing?