Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TLV320AIC3268: Using 2 AIC3268 to process a 16 Channel TDM Stream

Part Number: TLV320AIC3268
Other Parts Discussed in Thread: MSP430FR6989, , CC3235SF

Dear people,

Continuing with my project involving 16 Digital Mics sending a TDM-Stream which I want to process, I have designed and built a controller using two AIC3268 which I now have to bring to life.

By now I am using the PPS Portable Audio (without the TLV320AIC3268EVM-U) to make my signal flow and trying to use a MSP430FR6989 Launchpad to control the AICs via I2C.

The infos I found in www.ti.com/.../slaa605a.pdf and the scripts from PPC2 on TLV320AIC3268 Scripts (Rev. A) are the basis I am using now, together with a I2C-Demo for the MSP430FR6989.

I was hoping to have an easier start using this Launchpad, but the final goal is to use one of the SimpleLink MCUs (either the CC3235 or the CC1352, not sure yet), for which, of course, there is the SimpleLink Audio Plugin.

But first I need to get the mics and the codecs to talk and by now I have a "salad" of different program examples I am struggling to clean up to suit my needs...

This is a thing I am afraid from asking, but if you think you could help me generate one very simple working CCS-Project to "talk" to the two AIC3268 together, it would be great!

This means: Each AIC have to read 8 of the 16 channel-TDM-Stream (first 8 to AIC nr1, the others to AIC nr2), reducing them to a (mono or stereo) signal for the LineOut and leaving for later the possibility of porting this to a SimpleLink Processor, to use their I2S and Wireless capabilities.

The hardware I have built is very flexible and has all the in and output possibilities from the two AIC3268 open.

Best regards and thanks,
Gustavo

  • Hi Gustavo,

    Please give us some time and we will put a simple project together that will include the AIC writes needed.

    Best,

    Zak

  • Hi Zak,

    This would be really great, thank you!

    By the way,
    I am, by now, analysing the Audio-Projects for the CC3235SF in the SimpleLink Audio Plugin, to see if I can pick up what I need, but It is rather complex and I cannot yet see the convenience of using the one or the other.

    Also I was making a TLV320AIC3268.h file to replace the one for the AIC3254. 
    I understand that I have to point to this new files, change the names of the Register Definitions on the files where needed and add my own functions.

    It is there where I get blocked, in doubt where to begin or continue with.
    That is why I went to use the MSP430FR6989 as temporary "easier" solution and why I ask for a very simple project as basis, where I can further build on.

    Thanks for the huge help, you are all really a formidable team!
    Gustavo

  • Hey Gustavo,

    I just wanted to give you a quick update, I've gotten the AIC3268EVM working on a TDM16 bus and mixing 8 of the channels into a mono signal that is output on LOR and LOL pins. The next step is to get this put into a CCS project and I think we should be able to provide this by early next week!

    Best,

    Zak

  • Gustavo,

    I have taken Zak's 8 channel mixer header and created a MSP430FR6989 based on the OutOfBox Project that uses S1 and S2 to change different modes. Unfortunately, I do not have that specific MSP430 Launchpad, so I cannot test this program. But this builds on other I2C driver example code and the AIC3254 code to load the settings from PPS. I have put this altogether in this CCS project. You can import it into your CCS.

    Given that we do not have the same hardware, we won't be able to debug this for you, but at least you have a starting point to test your system and continue from there.

    Best regards,
    Pedro

    8chMixerAIC3268_MSP430FR6989.zip

  • Hola Pedro, hi Zak.

    Thank you very much for this, it points me on the good direction!
    I now understand some things on the configuration and how to pass it to the AIC much better.
    When I have adapted it for my hardware (I still have 2 AICs on it), I will tell you about my progress Slight smile

    However, I have some things I still need to ask you:

    - Do you have the ProcessFlow.pfw file available? I still have to add some steps in the process and I would like to do it in pps, if possible.

    Regarding pps, I have more questions:

    - How do I configure the analog outputs such line, headphone and speaker outputs?

    This Post says: "The analog outputs such line, headphone and speaker outputs are configured with the Int2xOut / Int4xOut / Int8xOut blocks for two channels and MonoInt2xOut / MonoInt4xOut / MonoInt8xOut for one channel."

    However, I cannot find where to do this on the GUI.

    - The same question regarding configuring the reg[0][4][x] registers
    The GUI Properties for the Multi_Channel_Digi don't have this option

    I guess, I should write those options manually in the SystemSettingsCode Editor. I am correct?

    And one last question:
    - The iDSP_A_D and iDSP_D_A components can have up to 16 in and output-channels. Since the AIC only works with 8, what is the purpose of this?

    Thanks again for the huge help,
    Gustavo

  • Gustavo,

    Sorry, I forgot to attach the process file for 8 channel mixer in PPS that Zak developed.

    8channel mixer.zip

    PPS has a mux/mixer module block that you drag intro the Workspace to configure the inputs and outputs. I am not as familiar with PPS and AIC3268, so I would defer to Zak's expertise on those.

    Best regards,
    Pedro

  • Hey Gustavo,

    The purepath studio GUI only handles the flow of data from the ADC through the DSPs and to the DAC input. Which inputs are used and which outputs are routed to is controlled by the register writes you set up and not something that is configured in the purepath flow. 

    To edit the device registers in PPS you need to click on the framework and click the 3 dots next to SystemSettingsCode. It's the same like you said for the ASI configuration in the page 4 registers. Note that the reg[0][4][x] format is in decimal form, but the values you write to these register need to be hex numbers. 

    I'm not sure why 16 connections are allowed for the interprocessor components, but Imagine this expands your options so that you can pass data back and forth for multiple channels, which might be useful depending on the kind of algorithm you are implementing.

    Best,

    Zak

  • Hi Zak,

    thanks, I think, I have the information I need and can now further.
    Yours and Pedro's help have been invaluable for me.

    Wish you a nice summer!

    Gustavo