Post Go back to editing

ADAU1977/ADAU1978/ADAU1979 PLL and Clock settings, when sampling rate is lower than 32kHz

Hi,

Please let me ask how to configure PLL and Clock when the sampling rate is lower than 32kHz.

For example, when sampling rate is 16kHz on the ADAU1978,
how can we decide SAI_CTRL0.FS and PLL_CONTROL.MCS values, and MCLKIN frequency?

Depending on the sampling rate that can be set on SAI_CTRL0.FS[2:0],
the PLL_CONTROL.MCS[2:0] should be set based on the Table 9 "Required Input Master Clock Frequency for Common Sample Rates" in the data sheet,
I understand.

But there are not descriptions for low sampling rates.

ADAU1978 data sheet (rev.A)
https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1978.pdf

  • Euglena,

    At 16kHz, the FS bits should be set to [16kHz to 24kHz], or 001. 

    The MCS bits will depend on the MCLK input frequency.  The lowest MCS bit setting available is [128xFs at 32kHz to 48kHz], or 000.  Note this setting is 128xFS at 32kHz to 48kHz.  So at 16kHz this corresponds to an actual ratio of 256xFs MCLK.  Because this is the lowest ratio available, this means the MCLK input needs to be at least 4.096MHz (256x16kHz).  If the MCLK input frequency is a higher rate of 8.192Mhz for example, then the MCS bits would be set to [256xFs at 32kHz to 48kHz] or 001, which corresponds to an actual ratio of 512xFs MCLK.  

    Also note that MCLK mode PLL operation is needed when LRCLK = 16kHz.  This is because the LRCLK is lower than the minimum 32kHz needed for LRCLK mode PLL operation.  

    Attached is an .xml file with register settings for LRCLK = 16kHz, BCLK = 4.092MHz.  Note the addresses are in decimal format.  Please let me know if there are any questions.

    Thanks,

    PG

    <?xml version="1.0" standalone="no"?>
    <ROM>
      <page modetype="Mode 0">
        <action instr="writeXbytes" len="2" addr="0" ParamName="M_POWER">01</action>
        <action instr="writeXbytes" len="2" addr="1" ParamName="PLL_CONTROL">C0</action>
        <action instr="writeXbytes" len="2" addr="4" ParamName="BLOCK_POWER_SAI">3F</action>
        <action instr="writeXbytes" len="2" addr="5" ParamName="SAI_CTRL0">01</action>
        <action instr="writeXbytes" len="2" addr="6" ParamName="SAI_CTRL1">00</action>
        <action instr="writeXbytes" len="2" addr="7" ParamName="SAI_CMAP12">10</action>
        <action instr="writeXbytes" len="2" addr="8" ParamName="SAI_CMAP34">32</action>
        <action instr="writeXbytes" len="2" addr="9" ParamName="SAI_OVERTEMP">F0</action>
        <action instr="writeXbytes" len="2" addr="10" ParamName="POSTADC_GAIN1">A0</action>
        <action instr="writeXbytes" len="2" addr="11" ParamName="POSTADC_GAIN2">A0</action>
        <action instr="writeXbytes" len="2" addr="12" ParamName="POSTADC_GAIN3">A0</action>
        <action instr="writeXbytes" len="2" addr="13" ParamName="POSTADC_GAIN4">A0</action>
        <action instr="writeXbytes" len="2" addr="14" ParamName="MISC_CONTROL">02</action>
        <action instr="writeXbytes" len="2" addr="25" ParamName="ASDC_CLIP">00</action>
        <action instr="writeXbytes" len="2" addr="26" ParamName="DC_HPF_CAL">00</action>
      </page>
    </ROM>

  • Hi galvinpjg,

    Thank you very much for your quick reply and providing the xml file.


    I clearly understand.
    Based on them, we will try here !