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.

How to configure the aic3007 audio codec as an I2S slave device?

Hi,  I am trying to configure the aic3007 as slave in my system. And I already configured the master side and checked the clocks, the MCLK(12288K), BCLK(3072K) and WCLK(48K).

Word length = 24bits,  WS pulse width = 32bits. I2S mode, continued-transfer mode

And also configured the related registers as the following table {reg, value}
{0x00, 0x00}

{0x01, 0x80}

{0x02, 0x00}

{0x07, (0x03 << 3) | (0x03 << 1)}

{0x09, (0x02 << 4)}

{0x0A, 0x01}

{0x0F, 0x01 << 7}

{0x11, 0x0F}

{0x19, (0x03 << 6)}

{0x1A, (0x01 << 7)}

{0x25, (0x01 << 7) | (0x01 << 6)}

{0x2B, 0}

{0x2C, 0}

{0x2F, (0x01 << 7)}

{0x33, (0x01 << 3) | (0x01 << 2) | 0x01}

{0x40, (0x01 << 7)}

The other regs which are not mentioned here is configured as default. But I can get the beep noise when plug in the 3.5mm audio cable. 

And my codec related audio codec is  as below pic, please help me check what's wrong with my configuration?  Many thanks.

- Andrew

  • Hi, Andrew,

    Welcome to E2E and thank you for your interest in our products!

    I already reviewed your schematic and your register configuration. Your schematic seems to be all in order, so the problem must be related with the register configuration.

    If my understanding is correct, you're configuring the codec to route the Left-DAC to the HPLOUT. Left-DAC datapath plays mono mix to left and right channel input data (page 0 / register 7). MIC3L is routed to the left-ADC (page 0 / register 17). But left- ADC is not powered on (page 0 / register 19) and it is muted (page 0 / register 15).

    The HP output is configured correctly. However, I noticed that your clock settings are not being configured. Page 0 / Register 101 and 102 configures the clock inputs. The PLLDIV_OUT is being used as CODEC_CLKIN, but the PLL is not enabled. I suggest to write a 0x01 in register 101 to use CLKDIV_OUT instead the PLLDIV_OUT.

    I hope this helps you. Please let me know if the problem persists.

    Best regards,
    Luis Fernando Rodríguez S.