Hello,
we have two digital microphones sending out PDM data connected to the MICIN/JACKDET pin. We have an external MCLK of 49.152 MHz, we are not using the PLL, and we have set INFREQ in register R0 to 0x03, i.e. 1024 * f_s => f_s = 48 kHz. Since we are using digital microphones, the codec is running in main mode. I have a few questions regarding the datasheet, because we think we have either configured something incorrectly, or there are "bugs" in the datasheet:
- On page 55, under the description of register R19, it talks about the INSEL and ADCEN bits. First INSEL:
Digital microphone input select. When asserted, the on-chip ADCs are off, BCLK is main at 128 × fS, and ADC_SDATA is expected to have
left and right channels interleaved.
0 = digital microphone inputs off, ADCs enabled (default).
1 = digital microphone inputs enabled, ADCs off.
Since we use digital microphones, we set INSEL to 1. All good so far. The ADCEN:
00 Both off (default)
01 Left on
10 Right on
11 Both on
According to the description on INSEL, the ADCs should be off when INSEL=1. But we can not get any audio from the microphones if we don't set ADCEN = 0x03! Why do we need to enable both the ADCs when we are using digital microphones? - In the same description, it says that when INSEL=1, BCLK = 128 * f_s. But we also set BPF = 0 in register R16, meaning 64 bits per LRCLK frame. Since we also set CONVSR = 0 in register R17, it looks to me that the BCLK frequency should be 64 * f_s?
- What does the phrase "The serial port mirrors the converter rates set in this register" mean in the description of CONVSR? Does it mean that the LRCLK will have the frequency determined by the combination of CONVSR and f_s? I.e., with f_s = 48 kHz and CONVSR = 0x00, will LRCLK have a frequency of 48 kHz? And if f_s = 48 kHz and CONVSR = 0x01, will LRCLK have a frequency of 8 kHz?
- Regarding the bullet directly above, what is the meaning of the base sampling frequency, f_s, when it doesn't seem to determine the output speed/frequency of LRCLK/ADC_SDATA/DAC_SDATA?