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.

TLV320ADC3101: Question of PurePath Studio GDE for TLV320ADC3101 MiniDSP for 4CH TDM Recording

Part Number: TLV320ADC3101

Hi Sirs,

We are supporting customer to generate a delay module with TV320ADC3101 for four-channel TDM recording. We can bring up the recording function with the TLV320ADC3101 control software, while the clock configuration was overwritten by the GDE. Would you pls advise how to configure the GDE to support the clock configuration? Our pfw profile was attached.

ASI Setup:




TLV320ADC3101 clock configuration:

CH1, CH2:


 
CH3, CH4:



ADC3101 MiniDSP GDE Setup (16kHz sample rate):



Time slots of TDM were overwritten by GDE (the GDE updates the slots to CH1 and CH3, while the correct setting should be CH3 and CH4).
How can we configure the clock configuration of GDE to align with the TLV320ADC3101 Codec control software?



ADC3101_Delay.pfw

Thank you and Best regards,

Wayne Chen
04/06/2021

  • Hi Wayne,

    When the GDE compiles the configuration, it runs a script according to the SystemSettingsCode contained in the properties for the framework.

    You could choose to modify this GDE script for the desired settings, or alternatively you can run the code from the GDE first and then use the ADC3101 GUI to configure the clocks as needed and overwrite the settings from the GDE config.

    Best,

    Zak

  • Hello Zak,

    Thanks a lot. I got no I2S output issue by updating registers in ADC3101's framework in PPS, while it works by reworking the CFG coefficients. Would you pls assist me in reviewing the enclosed CFGs of TDM slots 1, 2 and 3, 4 if there is any missing or mistake?

    Thank you and Best regards,

    Wayne Chen
    04/07/2021

    base_main_Rate16-CH12_Test.cfg
    base_main_Rate16-CH34_Test.cfg

  • Hi Wayne,

    Please give me some time to review and get back to you!

    Best,

    Zak

  • Hello Zak,

    Would you please provide guidance how to extract the MiniDSP settings from the PurePath Studio's CFG file without impact customer's Codec configuration (data format, clock, I/O and gain)? 

    PurePath Studio CFG
    8741.base_main_Rate48.cfg
    Customer's Codec Settup

    static const struct tlv320_i2c_config tlv320_i2c_configs[] = {
        /* {client id, {reg no, ...}, length, sleep(ms) } */
    	{TLV320_I2C_CLIENT_ADC0, {0x00, 0x04}, 2, 0},
    	{TLV320_I2C_CLIENT_ADC0, {0x0E, 0x7F, 0xA3, 0x80, 0x5D, 0x7F, 0xA3, 0x7F, 0xA3, 0x80, 0xBA, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 31, 0},
    	{TLV320_I2C_CLIENT_ADC0, {0x2C, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 21, 0},
    	{TLV320_I2C_CLIENT_ADC0, {0x4E, 0x7F, 0xA3, 0x80, 0x5D, 0x7F, 0xA3, 0x7F, 0xA3, 0x80, 0xBA, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 31, 0},
    	{TLV320_I2C_CLIENT_ADC0, {0x6C, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 21, 0},
    	{TLV320_I2C_CLIENT_ADC0, {0x00, 0x00}, 2, 0},
    
    	/* Add for 4 Mic */
    	{TLV320_I2C_CLIENT_ADC1, {0x00, 0x04}, 2, 0},
    	{TLV320_I2C_CLIENT_ADC1, {0x0E, 0x7F, 0xA3, 0x80, 0x5D, 0x7F, 0xA3, 0x7F, 0xA3, 0x80, 0xBA, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 31, 0},
    	{TLV320_I2C_CLIENT_ADC1, {0x2C, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 21, 0},
    	{TLV320_I2C_CLIENT_ADC1, {0x4E, 0x7F, 0xA3, 0x80, 0x5D, 0x7F, 0xA3, 0x7F, 0xA3, 0x80, 0xBA, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 31, 0},
    	{TLV320_I2C_CLIENT_ADC1, {0x6C, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 21, 0},
    	{TLV320_I2C_CLIENT_ADC1, {0x00, 0x00}, 2, 0}
    };



    Thank you and Best regards,

    Wayne Chen
    04/12/2021




  • Hi Wayne,

    The easiest thing to do would be to configure the device per the customer settings within the PPS GUI so that the .cfg file will contain all of the desired register writes. Otherwise I would suggest copying all of the writes in the .CFG file except for the Page 0 and Page 1 writes since these are device config settings. Pages 32-47 are the DSP instructions.

    Best,

    Zak

  • Hello Zak,

    Is there requirement of programming sequence of MiniDSP programming? Should we program the page 0 and page 1 before or after page 32-47? Do we need to update any parameters of ASI components (Dec4XIN and I2S_out) in GDE to support 4 channel TDM?



    Does BU have plan to refresh PurePath Studio to combine Codec Control and GDE together which can provide better control of ASI and clock scheme to prevent mistakes? 

    Thank you and Best regards,

    Wayne Chen
    04/15/2021

  • Hey Wayne,

    There is not a required sequence, but I would recommend placing the PGA and ADC powerup and unmute writes at the end of the sequence to avoid glitches in the data while configuring the ADC and DSP. The blocks in PPS are purely functions existing within the DSP, so if you have formatted the data as TDM in page 0 it will be output from the DSP as such.

    The tool is fully capable of programming the ADC and the DSP inside the device and as mentioned it is possible to use PPS and the GDE together. This is not something we plan to refresh.

    Best,

    Zak

  • Hello Zak,

    Thank you for your suggestion. I can write a tool to combine page 0, 1, 4  of customer's CFG and page 32~47 of MiniDSP's CFG to a single driver package for customer.

    Would you pls confirm if I can program the ADC3101 with the order of page 32~47, page 4, page 1, page 0. Can I apply the same rule to all MiniDSP based Codec devices?

    Thank you and Best regards,

    Wayne Chen
    04/15/2021

  • Hey Wayne,

    I would recommend starting with the Page 0 clock configuration as this is when you typically select which ADC processing block will be used and you want to select "ADC miniDSP programmable instruction mode enabled" in register 61 to make sure that the DSP values are written. After that the sequence you have suggested would be fine. Also note that it is possible to have PPS generate a .h file if this is the preferred format. Here is another post for reference: https://e2e.ti.com/support/audio/f/audio-forum/773065/faq-tlv320aic-codecs-how-to-transfer-a-completed-design-from-pure-path-studio-pps-into-the-tlv320aic3254-device

    The exact registers that apply for other miniDSP codec devices will of course differ, but generally yes there should not be any problems loading the DSP config first as long as you have set the device to use programmable instruction mode.

    Best,

    Zak

  • Hello Zak,

    Thank you for your advise. Should I write 0x3d (61) = 0x00 to enable the MiniDSP?



    Thank you and Best regards,

    Wayne Chen
    04/16/2021

  • Hey Wayne,

    Yes that is the correct register and value to write to use the miniDSP.

    Best,

    Zak