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.

TAC5112: Headphone Amp App note & multiple codecs on same TDM bus

Part Number: TAC5112
Other Parts Discussed in Thread: TAC5242, , TAS2505, TLV320AIC3100, TLV320AIC3120, TAC5142

Tool/software:

Our customer is considering use of TAC5112 or possible TAC5242 and has a few questions: 

  1. Are there any suggestions, best practices, or app notes when using the on-board headphone amplifier to drive headphones directly?
  2. How can I use several of these parts on the same TDM audio bus? Is there a limit to how many I can use? I need at least 4. Maybe 5. Each will individual audio channels. The datasheet alluded to this being possible, but it isn’t super clear to me how this is done.
  3. Lastly, we need to drive a speaker as well… Legacy could drive 2W into a 4ohm speaker. What is the right way to do that? Should I use the TAC5xxx + a dedicated analog speaker amp? Or do you have a DAC with a  small speaker amp built in? the curveball to that route is it needs to live on the same TDM audio bus, so multi-channel compatibility is necessary.

Thank you!

  • Hi,

    So sorry about the delay. To use the headphone amplifier, make sure the channel that you want to send to the headphone is set to the headphone driver, which is set in registers OUT1x_CFG1, OUT1x_CFG2, OUT2x_CFG1, OUT2x_CFG2 for the 4 output channels. Then, enable the DAC and you should get the input to that DAC channel routed to the headphones. If you want to use headset detection/jack detection, you can check out this app note: https://www.ti.com/lit/an/slaaeg7/slaaeg7.pdf

    You can also find example scripts in the EVM user guide: https://www.ti.com/lit/ug/slau902a/slau902a.pdf , if you search "headphone" you will see example headphone output scripts.

    You could use up to 32 audio streams (or 16 channels, since 2 PDM microphone streams per channel) in one TDM bus, and if you had 2 outputs per device, this would be up to 8 devices. You can select which TDM "slot" the device uses with registers 0x1e-0x25. Remember all the devices need to have the same word length (bit depth), sample rate, and then the BCLK will be fs * word length * number of channels.

    To drive a speaker, I would recommend using a small amp such as the TAS2505. We also have some older codecs with integrated speaker amplifiers, like the TLV320AIC3100 or the TLV320AIC3120 (and a few others). Any of these codecs with integrated speaker amplifiers may be able to be on the same TDM bus, it just will be slightly harder to specify which slot it would be on, so I would recommend trying to keep that codec as slots 1/2. The AIC3100 has a "data-slot offset programmability" which is where you can specify how many BCLK cycles the signal is offset. I think using an amplifier would be a simpler option, and potentially cheaper as well. One more thing of note is that the TAC5142, which is the hardware controlled version of the TAC5112, can only support 4 different slots, so I don't think you can mix and match TAC5112 and 5142 if you want more than 4 slots in your system. Let me know if you need more help.

    Best,
    Mir