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.

TAS5760M: Using TAS5760M with TI MCU CC1310 I2S module

Part Number: TAS5760M
Other Parts Discussed in Thread: CC1310, TAS5766M, TAS5805M, PCM9211, CC1312R, CC3200, TAS5780M, TCA6424

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

  • 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 

  • 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

  • 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 

  • 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

  • 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 

  • 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 (which 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

  • 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 

  • 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), which 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", which 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, which 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

  • 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 

  • Hi, Carolina.

    As I told you before, that is not possible as there are no probing points in the TAS5760M EVM nor in the PPCMB (I2S ext probe is only an input to feed external I2S)

    Nevertheless I received the order with the TAS5780M EVM, the TAS5805M EVM and the CC3200 audio booster pack (an AIC3254 based booster pack for CC13xx LaunchPADS). And as those EVMs have probing points for I2S incoming signals I could take the measures.

    TAS5805M

    a) USB input: No matter the sample frequency of the audio I select in the PC, I2S LRCLK fs signal in the amplifier is always 44.1kHz, SCLK is fs x 64 and the audio sounds perfect.

    b) PSIA input: All I2S signal in the amplifier are the expected for each audio fs I provide from the CC1310. Unfortunately, with 37,5kHz there was no sound and with the rest of fs I tested (44.1kHz, 32kHz, 31.25kHz, 16kHz, 15.625kHz and 8kHz) I got sound in the speaker but with the same glitches I found with the TAS5760M

    TAS5780M and PPCMB

    a) USB input: No matter the sample frequency of the audio I select in the PC, I2S LRCLK fs signal in the amplifier is always 48kHz, SCLK is fs x 64, WCLK is fs x 256 and the audio sounds perfect. This behaviour is documented in the TAS5780M APP of the PPC3 platform. And this explains my question about 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 glitches: The USB interface of the PPCMB resamples all audio incoming from USB to 48kHz.

    b) PSIA input: I could not try this in an easy way as the TAS5780M APP only allows to configure an external 4-wire PSIA with a limited number of fs. And I just know the MCLK the CC1310 can provide is not valid for standard audio frequencies. I know I could change this through modifying manually the registers, but as this needed some time investment, I preferred to test the CC3200 audio booster pack before as it has a very similar clock capabilities and I had the tools to easily configure it through the CC1310 API.

    CC32200 audio booster pack (AIC3254)

    a) PSIA input: I had the same glitches problem I had with the TAS5760M and the TAS5804M. But as I knew it should work with the CC1310 and a 3-wire I2S configuration, I compiled the i2sEcho example and I could verify it worked perfectly.

    So at this point, I was quite sure the glitches problem was not related to the amplifiers but to something I was doing wrong with the CC1310 I2S API.

    I don't want to extend here with the problem I had (I will explain it in detail in this thread of SUB-1Ghz forum for users interested in), but the end is that I managed to remake the player function and make it work correctly so I got perfect sound with every amplifier and codec: AIC3254 (44.1kHz), TAS5805M (44.1kHz) and TAS5760M (37.5kHz) (with TAS5780M I didn't test it, but I assume it would work). Good news: I can choose any amplifier that meets my power needs!

    So to answer my own questions from the first post of this thread:

    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)

    Yes, TAS5760M will accept 37500Hz and other non-standard audio frequencies while MCLK is a valid multiple of LRCLK and BCLK.

    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?

    No, it can't be tested because PPCMB USB interface will resample the audio input to a unique frequency which is delivered to the amplifier under test.

    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?

    No, it doesn't work. MCLK must be a perfect multiple of LRCLK and BCLK.

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

    Based on the TAS5805M and AIC3254 behaviour: yes, it will accept near perfect standard audio frequencies for LRCLK and BCLK.

    Hope this may help other users with similar problems.

    One last thing: the TAS5780M EVM is making a small hissing sound when outputting sound. Initially I believed it was from the speakers but paying more attention I noticed it is coming from the EVM itself. Perhaps a component vibrating. It is quite disturbing and the audio quality perceived with that noise is bad. How could I get it replaced with a new one as I bought it from TI store? Thank you.

    Best regards,

    Juan Pablo Novo

  • Happy to hear the problem was resolved. I have emailed you.