TAS5760M: Using TAS5760M with TI MCU CC1310 I2S module

Intellectual 650 points

Replies: 9

Views: 102

Part Number: TAS5760M

Hello.

I come here after discussing this issue in the sub-1 GHz forum.

1. I would like to know if TAS5760M, TAS5766M and/or other TI amplifier model that meets my output power needs (40W in continuous mono operation with a 4 ohm speaker) can accept non-standard audio frequencies generated by the I2S module of CC1310 that are divisors of the 48MHz MCUCLK? (Say these ones: 15625 Hz, 31250 Hz, 37500 Hz, 46875 Hz, 50000 Hz)

2. I have a TAS5760xx EVM and a PurePath Console Motherboard (PPCMB) to test with the CC1310 LaunchPad. If I record some audio files in the PC with those sample rates and play them from the PC to the PPCMB, may I test this capability? Or the PPCMB will adapt the audio over/under sampling it before passing it to the TAS5760xx EVM?

3. If I try to program an audio sample rate into the CC1310 I2S module (say 44100 Hz and a theoretical 1,411,200 BCLK), the real BCLK the CC1310 will output will be: 48MHz / [BDIV=34] = 1,411,764.71 Hz. And the nearest MCLK I can get to the MCLK rate specified in the TAS5760M datasheet using fs x 512 (44100 x 512 = 22,579,200) will be: 48MHz / [MDIV = 2] = 24,000,000 Hz. If I use fs x 128 (44100 x 128 = 5,644,800) it will be: 48MHz / [MDIV=9] = 5,333,333.34 Hz. Would be these BCLK and MCLK valid for the TAS5760M?

If I use TAS5766M instead of TAS5760M:

4. In 3-wire I2S mode TAS5766M will accept the real CC1310 BCLK calculated in previous point 3?

5. If 3-wire mode is not valid to interface with the CC1310, I think I could make TAS5766M work as a clock master and feed the BCLK and RLCLK to the CC1310 I2S module, couldn't I?

6. If I don't need any PurePath Smart Amp capability in the TAS5766M, do I still need the Speaker Characterization Board or I could configure the TAS5766M without it?

7. If TAS5760M and TAS5766M aren't a solution for me, is there another TI amplifier solution that could fit for my needs?

Thank you very much.

Regards,

Juan Pablo Novo

9 Replies

  • Hello Juan Pablo, 

    You may connect external I2S to the motherboard to see if it is compatible. 

    Please follow the attached ppt. ExternalI2S.pptx

    All the best, 
    Carolina 

  • In reply to Caro Gomez:

    Hello, Carolina.

    Thank you for the document. I were going to study the PPCMB documentation to learn how to connect the CC1310 I2S to the EVM, so I have taken a look at the ExternalI2S.pptx

    First of all, I don't understand why a HW modification in the PPCMB is needed in order to get the external I2S into the amplifier EVM. I don't have the tools to solder and unsolder SMD components. I think many customers want the PPCMB to test their systems not only test audio from USB or the other sources of the PPCMB. So if there is only a HW way to let I2S external to the EVM, I think there should be an easier way (like a simple jumper in the board) than soldering and unsoldering resistors EACH time the I2S source is needed to be changed...

    Beside that, looking at the PPCMB documentation I see MUX8 controlling the MUX4-6:

    So I think there must be a SW way to enable the I2S external. When I was looking for documentation to choose the amplifier, I took documents from several threads in the forum. One of them is this file that seems to explain how to do just that:

    2604.External I2S (PSIA).pptx

    Can you confirm this way to enable external I2S?

    Despite all said, please, I need all seven questions of my previous post answered.

    I am learning on the one hand how to manage the CC1310 I2S module and on the other hand how to use the amplifier. If I just connect both sides and (most likely) nothing works, I won't know if it is my fault programming the I2S driver of the CC1310 (or doing wrong whatever else) or there is really an incompatibility problem between the devices.

    I must be sure from the beginning if it can be done or not.

    I think my questions are very direct about the functionality of TAS5760M, TAS5766M and PPCMB.

    And the questions about TAS5766M are important in the way to determine if I should invest in purchasing its EVM (and the Speaker Characterization Board if really needed) in case the TAS5760M is not a solution. I don't want to waste time and money in something that won't work from the beginning.

    And so it is the last question about other possibilities.

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hey Juan Pablo, 

    I understand your concerns but am having a hard time understanding exactly what you would like to do. 

    If I am to understand correctly, you would like to use CC1310 to communicate via I2S to an audio amplifier to produce these frequencies (15625 Hz, 31250 Hz, 37500 Hz, 46875 Hz, 50000 Hz) at the output?

    All the best, 
    Carolina 

  • In reply to Caro Gomez:

    Hi, Carolina.

    Sorry, I thought it was explained in the original thread I opened in Sub-1GHz forum and I linked in the first post of this thread: original thread.

    I will try to summarize here:

    I am expanding a custom CC1310 project that now needs the capability of producing sound. For this task I selected the TI TAS5760M because it meets my basic requirements: I2S interface for 44.1kHz 16bits mono audio and 40W in continuous mono operation with a 4 ohms speaker.

    So my first objective was communicate CC1310 via I2S to the TAS5760M using 44.1kHz sample rate.

    But after reading more carefully the CC1310 I2S interface documentation and the TAS5760M datasheet I noticed one possible problem related to the MCLK and BCLK needed by the amplifier and the ones supplied by the CC1310:

    The CC1310 I2S module has both MCLK and BCLK set through a divider of the 48MHz MCUCLK:

    MCLK = MCUCLK / MDIV [Hz]
    BCLK = MCUCLK / BDIV [Hz]

    So it is impossible the CC1310 I2S module can generate the exact frequencies to set 44.1kHz (or any other standard audio) sample rate for the amplifier clocks.

    At this point I need the functionality of TAS5760M and related amplifiers clarified:

    Questions 1-2: About the possibility of accepting non-standard audio frequencies generated by the CC1310 I2S module.

    Question 3-4: About the possibility of accepting pretty near but non-exact audio frequencies (the nearest frequencies the CC1310 I2S 48MHz MCUCLK dividers allow).

    Question 5: About the possibility of using an audio amplifier with master clock functionality, if none of the previous assumptions are true, and make CC1310 I2S module slave.

    Question 6: About the tools needed to program a TAS5766M in case I could use it, taking into account I don't need PurePath Smart Amp capabilities.

    Question 7: Other recommended choices in case TAS5760M and TAS5766M are not suitable for me.

    Hope this helps you understand my needs.

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan Pablo, 

    Q1-Q3:

    TAS5760M.xlsx

    I have attached an excel that should help find which sampling frequency gets to the closest with the divisions. It won't be exact, as previously discussed, but should help. It would seem that fs=44.1kHz gets you the closest. 

    I am not sure if it will work, if you do not have the correct clock ratio, a clock fault will appear. Please use the external I2S instructions attached earlier to test it. 

    Q4: I2S 3 wire is supported in our devices.

    Q5: The TAS5760M does not support I2S master function. Since the audio is coming from processor, it is required for the host processor to be master. 

    Q6/Q7: TAS5766M requires you to use the smart amp feature. Since you are not interested in the smart amp feature, I recommend you use TAS5805M (I2S 3 wire is supported). 

    All the best, 
    Carolina 

  • In reply to Caro Gomez:

    Hi, Carolina.

    I have been able to connect CC1310 LaunchPAD I2S module to the PPCMB I2S Ext (PSIA) using the software method I attached before instead of the hardware method of unsoldering and resoldering resistors.

    I made 2 audio files: one with 44.1kHz fs (standard audio fs but I can't get this exact with CC1310) and the other with 37.5kHz (non standard audio fs but exact fs I can get with CC1310)

    I first tried to play the audio from the PC through USB: in both cases the audio was played by the speaker without problem (attached file good audio)

    37_5kHz PC USB - Good audio.zip

    Second I tried to play the audio from the CC1310 I2S module: The 44.1kHz wasn't played at all (only silence). In the other hand the 37.5kHz was played but with a lot of audio glitches (attached file bad audio)

    37_5kHz CC1310 I2S - Bad audio.zip

    What I think it could be happening is:

    1. 44.1kHz from CC1310 I2S is not being played because I can not feed a MCLK proportional to BCLK

    2. 37.5kHz form CC1310 I2S is being played because I can feed a MCLK proportional to BCLK but the TAS5760M can not play well a non standard fs

    What I don't understand is why the 37.5kHz audio passed from PC USB is played without problem. If TAS5760M can't play well that fs, how is it possible? Perhaps any of the earlier stages of the PPCMB (TAS1020, PCM9211 or AIC3262) resamples the audio? As there is no probing points in the TAS5760M EVM nor in the PPCMB (I2S ext probe is only an input to feed external I2S) I can't see the I2S signals delivered to the TAS5760M in the oscilloscope.

    I have studied the case of CC1312R MCU (the successor of CC1310 with more memory and better core but with the same I2S module) and the CC3200 Audio BoosterPack (witch has an AIC3254 DAC for audio input/output) that it is known to work in a 3-wire I2S mode.

    I have seen that TAS5780M meets my power needs and it has a built-in PLL similar to the AIC3254 with a great bunch of possibilities to configure the clocks (4-wire, 3-wire, master, slave...) so I think it can be a very good candidate to work in my project.

    Also the TAS5805M you told me about could be a good candidate. It hasn't got the clock possibilities the TAS4880M has, but I think that the 3-wire PLL functionality is enough as I saw in the working case that the configuration of the AIC3254 is made as if the CC1312R sends a perfect 44.1kHz audio.

    Nevertheless I have just ordered a TAS5780M EVM and a TAS5805M EVM, so I will be capable to test both of them and choose the best fit to my project.

    To finish, could you try to explain me why the 37.5kHz audio passed to the TAS5760M from PC USB is played without problem while the one passed from the CC1310 I2S is played with a lot of glitches? Thank you.

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan Pablo,

    The software change only implements the correct MCLK from an external source. 

    Since the hardware change was not implemented on the PP-MB, BCLK (SCLK), WCLK (LRCLK), and SDIN are all still from USB source. The external audio experiences many faults because it is receiving I2S from both sources (USB + external). 

    I have included the below picture with the highlighted connections. 

    The TAS5805M will not experience this problem as it does not use the PP-MB. 

    All the best,
    Carolina 

  • In reply to Caro Gomez:

    Hi, Carolina.

    After looking again to the PPCMB schematics I think I can't agree with you.

    The software change made by the script has two parts:

    First part:

    # Change to GPIO mode
    i gpio
    # Set bank 0
    w 99 04 01
    # Clear bits (command 01) with mask 20 - clears P1.5 of Bank 0
    w 99 01 20
    

    This sets pin29 (P1.5) of TAS1020 to "0", so USB-GPIO2 is "0" and this is the MUX8 output (as MSP430 is not active), witch sets LOW the select pin of MUX4-6 and therefore their outputs (BCLK (SCLK), WCLK (LRCLK), and SDIN) are PSIA signals and not 3262 signals.

    Second part:

    # Go back to I2C mode
    i i2cfast
    # Set pins 21-24 as outputs
    w 44 0E 0F
    # Set pin 23 high (MCLK-MUX = PSIA)
    w 44 06 7F
    

    This sets pin 23 (P26) of TCA6424 (IO Expander) to "1", so MCLK_MUX-CTRL is "1", witch sets HIGH the select pin of MUX3 and therefore its output (MCLK) is PSIA signal and not 3262 signal.

    So the 4 signals passed to EVM connector are PSIA signals, not a mixture.

    And even in the rare case that the software changes only the MCLK to PSIA, then it is completely impossible that I could get any sound in the speaker: I am not feeding audio through USB, I am feeding audio through PSIA (I2S Ext) with the CC1310.

    So if I can listen anything in the speaker is because the SDIN passed to TAS5760M is the SDIN from PSIA, witch is the only audio source I am using.

    Then I have the same question as before: why the 37.5kHz audio passed to the TAS5760M from PC USB is played without problem while the one passed from the CC1310 I2S is played with a lot of glitches?

    Regards,

    Juan Pablo Novo

  • In reply to Juan Pablo Novo:

    Hello Juan Pablo, 

    Can you please check with an oscilloscope the I2S clocks at the edge of the PPCMB? 

    Specifically, what is highlighted in this picture? 

    All the best,
    Carolina