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: Can't change filter coefficients

Part Number: TLV320AIC3254

Hi 

We try to change/update the filter coefficients, but sometimes we can't change the filter coefficients.

please help to check the following step: 

Update Success Example

 1.  Power down ADC

 2.  Enable Adaptive Filtering.

 3.  ADC Signal Processing Block PRB_P2

 4.  Power up ADC

 5.  Start I2S playback/recording

 6.  Delay 600mS 

 7.  Write Coeff_NEW to Buffer A

 8.  Switch buffers command

 9.  Check if buffer-switch is complete (P8_R1_B0 == 0)

 10.  Re-Write Coeff_NEW to Buffer A

 

Update Fail Example #1

 1.  Power down ADC

 2.  Enable Adaptive Filtering.

 3.  ADC Signal Processing Block PRB_P2

 4.  Power up ADC

 5.  Start I2S playback/recording

 6.  Delay 500mS 

 7.  Write Coeff_NEW to Buffer A

 8.  Switch buffers command

 9.  Check if buffer-switch is complete

We try to decrease the delay time, In step #9,  (P8_R1_B0 == 1) always keep to 1, 

 

Update Fail Example #2

 1.  Power down ADC

 2.  Enable Adaptive Filtering.

 3.  ADC Signal Processing Block PRB_P2

 4.  Power up ADC

 5.  Start I2S playback/recording

 6.  Delay 30S 

 7.  Write Coeff_NEW to Buffer A

 8.  Switch buffers command

 9.  Check if buffer-switch is complete

We try to remove step #5, and to increase the delay time to 30 seconds, In step #9,  (P8_R1_B0 == 1) always keep to 1, 

Do you have any suggestions to us?

Thanks.

BR

Trevor

  • Hi

    Update some information:

    This problem only occurs for the first time, if we can change the filter for the first time, there is no need to add delay time when switching the new filter.


    BR

    Trevor

  • Dear TI team, 

    Do you have any update?

    BR

    Trevor

  • Hi Trevor,

    The procedure for updating adaptive coefficients is documented in the application Report : https://www.ti.com/lit/pdf/slaa425

    The procedure you are following is mostly correct.

    Firstly note that it is applicable only after the ADCs are powered up. Power-up time depends on a whole lot of factors like the divider, PLL, soft-stepping options, charging time etc.  To check the power up status of the left and right ADCs, read Page 0 / Register 36 (ADC Flag Register).

    You should attempt to change the adaptive buffer coefficients only after power up.

    The second aspect that you need to address is regarding the switch buffers command.

    How do you implement the switch buffers command? Please note that P8_R1_D1 is a read-only bit.

    So to implement the switch buffer command, the steps would be to

    (1) Read 8 bits of P8_R1

    (2) Assert that P8_R1_B0 is zero (else it is an error condition)

    (3) if P8_R1_B0 is 0 then set it to 1 

    (4) Write the new value to P8_R1

  • Hi Diljith,

    We check the  ADC Flag Register in the following steps: 

    Update Success Example

     1.  Power down ADC (ADC Flag Register = 0x0)

     2.  Enable Adaptive Filtering.

     3.  ADC Signal Processing Block PRB_P2

     4.  Power up ADC (ADC Flag Register = 0x44)

     5.  Start I2S playback/recording(Start I2S clock)

     6.  Delay 600mS  (ADC Flag Register = 0x4C)

     7.  Write Coeff_NEW to Buffer A

     8.  Switch buffers command

     9.  Check if buffer-switch is complete (P8_R1_B0 == 0)

     10.  Re-Write Coeff_NEW to Buffer A

     


    So it looks like that if you don't start I2S clock, the ADC Flag Register will always remain 0x44.

    When the ADC Flag Register becomes to 0x4C, we can successfully apply the new coefficients.

    Do you have any comments?

  • Hi Trevor,

    Does it remain at 0x4C or does it become 0xCC? Are you using only the right ADC? If you are using both ADCs then it is better to wait until the flag becomes 0xCC. Without clocks, the device will be in an error state and only after clocks are provided will the device power-up proceed. One of the last steps in that process is the gain ramp-up (or soft stepping) and therefore it is better to wait until that point to change any of the filter coefficients.

    Best Regards.