• Resolved

TLV320AIC3111: Facing problems using custom board based on TLV320AIC3111

Intellectual 365 points

Replies: 3

Views: 92

Part Number: TLV320AIC3111

Hello all,

After testing our application on the TLC320AIC3111-EVM board, we have decided to make our own custom board for the same codec. We're using a microcontroller to push the instructions over I2C into the codec board and we were getting satisfactory filtering and amplification on the EVM board. However, we're facing difficulty for the same on the custom board we designed. I2C is successfully pushing the instructions and we are able to change the gain of the amplifiers (I'm able to change the volume by adjusting the gain by register [1][38] for Analog vol to SPL) but it looks like the filtering isn't working or it is working like an all-pass filter.

Input - We've connected an analog microphone across MIC1LP and GND.

Output - We've connected a 3.5 headphone jack across HPL and HPR. We've connected a speaker across SPLP and SPLM.

Our observation is that the instructions seem to be passing across I2C. We are getting audio output but filtering is not happening. The same code when run on the EVM works fine.

I've also uploaded the instructions we're passing to the codec (all generated using PurePath Studio GDE). Please find it attached below. As reference for board design  I used http://www.ti.com/lit/ug/slau285/slau285.pdf.

Codec Startup Instructions.txt

  • Souvik, 

    it sounds like you made your own processing flow,  would you be willing to share that?   you can PM me if you would prefer to keep it out of the public eye.

    -Steve wilson

  • In reply to Steve-Wilson:

    Yes sure.

  • In reply to Steve-Wilson:

    Hey Steve,

    UPDATE - 

    We realized we weren't giving a MCLK, BCLK and WCLK to the codec. Hence we used our controller PWM module to generate necessary clock signals to the codec. Our sampling rate is 16KHz, MCLK - 4.096Mhz, BCLK - 1.024MHz.

    However, the filter is not attenuating as per code made on PurePath.

    Connections between codec and controller - 

    SDA, SCL - I2C

    MCLK, BCLK, WCLK - Clock timer

    RST - Reset


    What else are we missing? I'm sure there is no issue with the code as it is working when the USB MODEVM INTERFACE is used as a clock source.

    Is there any connection we're missing? Is there any specific startup order for the clocks and I2c that needs to be followed?