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.

TLV320AIC3254: How to reduce audio delay of tlv320aic3254 when sampling audio with 8kHz

Part Number: TLV320AIC3254
Other Parts Discussed in Thread: TLV320AIC24K

I am using the TLV320AIC3254 in an audio design (connected to a TI DSP) and I run it with a sampling frequency of 8kHz. I measured a relatively long delay of about 11ms (Analog Audio in (Codec) -> McASP to an external DSP -> Loop back on DSP -> Analog Audio out (Codec).

I need a significantly lower delay (<2-3ms) for this loop (it is just a testloop, the usecase requires low delays on both ADC and DAC conversion on different TLV320AIC3254 chips)

Can you give advice, how to decrease the audio delay for the TLV320AIC3254?I understand, that the sigma-delta converter needs filtering, but I see no register settings to turn off the filters (A/B/C which add x/FS delay), or use faster IIR filters instead of (e.g. on old designs I used the TLV320AIC24K, which has a far shorter audio-delay by using IIR Filter).

 The TLV320AIC3254 also supports miniDSPs. Would it help to use these miniDSPs? E.g. can they be used instead of the decimation filters (ADC) and interpolation filters (DAC) and implement a faster IIR Filter?

  • Hello Norbert,

    Thanks for reaching our and welcome to E2E! 

    Assuming the default Processing Blocks are used, the codec will only account for ~2.1 - 5ms of the delay. Can you measure the Group Delay of just the CODEC (out of loop)? Some of this delay could be becoming from the other devices in the application. The decimation filters on the ADC and the interpolation filter of the DAC has a group delay of 17/fs and 18/fs respectively with lower options available by using a different filters/processing blocks. (ADC: Table 2-7. ADC Processing Blocks and 2.3.3.1.11 Decimation Filter)(DAC: Table 2-16. Overview – DAC Predefined Processing Blocks and 2.4.3 Interpolation Filters).

    In general, I believe this device to have lower delays than the TLV320AIC24K. 

    I hope this helps. I will also check internally to see if I can find more information. Let me know if you have further questions.

    Best,
    Andrew

  • Thanks a lot for there reply. I would like to split the question into 2 parts.

    1.) You mentioned, that the default Processing Blocks cause a delay of ~2.1 - 5ms -> How can I reduce this? I need a reduction to delay <1ms for this part.

    No processing block seems to results in a delay <1ms, when using 8kHz sampling rate.

    2.) The remaining delay: I will check this at our system.

    >In general, I believe this device to have lower delays than the TLV320AIC24K. 

    TLV320AIC24K has IIR filers (which are typically faster than FIR filters and which are sufficient for our purpose). On TLV320AIC3254 I do not see any configuration, which supports IIR filters.

  • Hello Norbert,

    1. The best way to reduce the group delay would be to select processing blocks with only the necessary decimation and interpolation filters (Table 2-7. ADC Processing Blocks and Table 2-16. Overview – DAC Predefined Processing Blocks). ADC PRB_R15 and DAC PRB_P17 blocks utilize the C filters which have lower group delay.
    2. These blocks also have an IIR and a FIR available as well. There are also blocks that bypass the IIR and FIR entirely if that is desired. 

    Best,
    Andrew

  • Hello Andrew,

    >There are also blocks that bypass the IIR and FIR entirely if that is desired. 
    I think this will help. When I understand it correctly I have to set register 60 and register 61 D4-0 to 0000: "The ADC miniDSP will be used for signal processing" 

    Is that correct?

    Then I have to implement short delay filter either in the miniDSPs or in my external DSP..

    Br
    Norbert

  • Hello Norbert,

    Your above comment is correct, by using the miniDSP you are able to bypass the processing blocks and program the miniDSP with a custom filter/algorithm. This process would utilize the AICPUREPATH_STUDIO IDE tool which may let you implement an algorithm with shorter delay. To use the miniDSP for signal processing set register 60 and register 61 D4-0 to 0000:

    The other option is to use the preconfigured processing blocks. The AIC3254 comes with the several filter and effect options based on the selected processing block. The ADC's decimation filter and the DAC's interpolation filter can be selected by processing block that best that bests suits the application (filters A, B, or C). Since you are looking for lowest group-delay the best filter in this case would be "C" for both the decimation and interpolation filters. 

    I hope this helps. 

    Best,
    Andrew

  • Hello Andrew,

    Thanks for your response. I also think that the solution will be the usage of the miniDSPs instead of the PRB.

    So we downloaded the PurePath Tool and looked into the building blocks. The first test would be just to forward the ADC values to the I2C, regardless of the audio signal quality, just to verify if we correctly start and load the miniDSP.

    However, according to their labeling, the input and output building blocks seem to contain Decimation "Dec1xIN" and Interpolation filters "Int2x". Could you please tell us, which group delay (x/fs) they have. We did not find any parameter to change them and if they add similar delay as the Filter_A/B/C of the PRBs, then we do not win anything in respect to shorter audio delays

    Thanks in advance

    Norbert

  • Hello Norbert, 

    Please allow me some time to look into this, I will have to ask the larger team for specifics here. I will get back to you tomorrow.

    Best,
    Andrew

  • Hello Norbert,

    I have confirmed that the PurePath Tool will have a group delay different than the Processing Block Filters. However, we don't have any data available at this time. I will be able to take a look at this and provide some measurements here hopefully by the end of the week. 

    Best,
    Andrew

  • Hello Andrew,

    Do you have news for me?

    Br Norbert

  • Hello Norbert, 

    So sorry for the delay, this got away from me. 

    Using the miniDSP (PPS flow attached) I was able to get a group delay of around 2.75ms. Unfortunately, it looks like they do add a similar delay. This may just be a limitation of the 8kHz sample rate since with faster sample rates this is not normally an issue.

    Delay_5F00_Bypass.pfw

    Let me know if you have any questions. 

    Best,
    Andrew