Part Number: TLV320AIC3111
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  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
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.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Steve-Wilson:
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?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.