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.

TAS5825M: EQ Calculation

Part Number: TAS5825M

Tool/software:

Hello 

I am creating EQ bands on LCD screens and based on slider values I am setting EQ of TAS5825M. I have total 7 EQ sliders on GUI Screen( 3 Bass, 1 Mid, 3 Treble). We are using TAS5825M for our custom hardware design.Could you please explain and give some reference code so based on the slider value we can calculate the coeffiecient and write the TAS register. Also I am not sure which register should I write and how to calculate the values.

  • Hi Sagar,

    The best way to configure the biquads is to use the GUI for the EVM. This will let you configure the biquads however you want and then output the configuration script with the biquads configured. The GUI has multiple filter options and a plot to help give a visual of what the frequency response will be. For more information on how the data is stored, you can refer to this tuning guide and this app note. The tuning guide explains the register format and the app not has a section that describes the biquad configuration and variable definitions.

    Regards,

    Ramsey

  • Hello Ramsey,

    I understand PPC can generate the registers file that I can write. But I have a different queries like
    1. I have a slider on GUI, which value should I change with respect to slider( frequence, bandwidth, Gain)
    2. PPC3 generates header file but slider can be changed at runtime so how to calculate parameters at runtime and write i2c registers ?
    3. Also which I2C registers are used for EQ calculation. I am very new to Audio domain so please provide me more information.

  • Hi Sagar,

    When doing tuning with the biquads, the slider chosen will depend on what your goal is. For example let's say I wanted to add a high pass filter with a cutoff frequency of 100Hz. To do this, I would select one of the high pass filter options and then move the slider of "frequency" down to 100Hz. If I wanted to add gain to this, I would then adjust the gain. Different filter types may have different parameters like the notch which has a frequency and bandwidth parameter that dictate the notch frequency and the wideness of the notch.

    To generate a script to change a parameter after initialization, you can click on the I2C button on the bottom of the PPC3 window to open the I2C monitor. From there, go to the log page and click the circle to begin logging I2C commands. Any action you now do in the PPC3 will have the corresponding I2C code logged in the monitor that you can then use in your system.

    Each biquad has a few registers associated with them for the filtering. The app note I linked previously has a register map for every process flow that tells you which register corresponds to which biquad.

    Regards,

    Ramsey

  • Hello Ramsey,

    I am very new to Audio related things. I have studied lot of documents but still the things are not very much clear to me. What I understood is I wanted to create 7 Band equalizer to I will select 7 different frequencies like 100, 300, 600, 100, 3000, 6000, 12000. 

    I will consider Q value as 1 fixed. and change the Gain from -20 to +20 range with respect to Slider value on GUI. I will calculate coefficient as per below code. After calculation these registers need to be written on some address. Could please let me know how to find that address?

     Please correct me if anything wrong in below code. 

    void updateBiquadFilter(int band, float f0, float gain, float Q) {
        // Calculate coefficients based on given formula
        float A = pow(10, gain / 40);
        float omega0 = 2 * PI * f0 / 48000.0; // Assuming fs=48000Hz
        float alpha = sin(omega0) / (2 * Q);
        
        float b0 = 1 + alpha * A;
        float b1 = -2 * cos(omega0);
        float b2 = 1 - alpha * A;
        float a0 = 1 + alpha / A;
        float a1 = -2 * cos(omega0);
        float a2 = 1 - alpha / A;
        
        float A0 = b0 / a0;
        float A1 = b1 / a0;
        float A2 = b2 / a0;
        float B1 = a1 / a0;
        float B2 = a2 / a0;
        
        // Write these coefficients to the TAS5825M
        writeBiquadCoefficients(band, A0, A1, A2, B1, B2);
    }
    

  • Hi Sagar,

    The code looks good in terms of calculation, though you may want to rename the final coefficients such that the A and B terms are swapped (A1 becomes B1 and same the other way). This will match better with the definition in the documentation I have previously pointed to. The registers will depend on what process flow is selected from the device. The register map for each process flow is found in the app note I linked to previously. To convert the values to the I2C data, you will need to make a function to convert the decimal data to binary data. Each coefficient is 4 bytes long and is stored in a 5.27 data format which is explained in the tuning guide and app note as well.

    Regards,

    Ramsey

  • Hello Ramsey,

    I have calculated coefficient with above code for Fs = 100 Hz, Q = 0.4 and Gain 20 db. I received below values. 
    B0 = 1.046327
    B1 = -1.989535
    B2 = 0.943378
    A1 = -1.989535
    A2 = 0.989705
    Biquad Coefficients (5.27 format):
    0x085EE0DF
    0xF0156EE7
    0x078C0999
    0x0FEA9119
    0xF8151588

    I have done same on PPC tool and received below values as per image.



    could you please why this difference is there on PPC and my calculation?

  • Hi Sagar,

    The numerical difference is likely due to some rounding that is being done. The negative signs on A1 and A2 are absorbed in the coefficients of the device, so the variables should be -1*A1 and -1*A2.

    Regards,

    Ramsey

  • Hello Ramsey,

    Does it mean, I need to change the calcualation in above code ? and invert the A1 and A2 ?

  • Hi Sagar,

    The resulting filter will be almost the exact same with the rounding differences. Yes, A1 and A2 should be inverted to match PPC3.

    Regards,

    Ramsey

  • Hello Ramsey,


    I have tested below code. "calculate biquad" is called when slider is changed. The range of Gain is -20 to +20 dB.  We followed the sequence like Started Music -> Go to Screen and Change the slider. As soon as slider value is changed Music stopped playing. Could you please review code and tell what can be wrong? 

    Initially, we change the Gain 0, 1 and 20 in PPC and observed that some register values were changing. Based on that we are writing these register. Please comment on it.

    // Convert floating-point to Q5.27 fixed-point format
    static int32_t float_to_5_27(float value) {
        return (int32_t)(value * (1 << 27));
    }
    
    // Function to calculate biquad coefficients for a peaking filter
    static void calculate_biquad(float fc, float gain_db) {
        float A = pow(10, gain_db / 40.0);
        float omega = 2.0 * PI * fc / FS;
        float alpha = sin(omega) * (Q / 2.0);
    
        // Compute biquad coefficients
        float B0 = 1 + alpha * A;
        float B1 = -2 * cos(omega);
        float B2 = 1 - alpha * A;
        float A0 = 1 + alpha / A;
        float A1 = -2 * cos(omega);
        float A2 = 1 - alpha / A;
    
    //  double A = pow(10, Gain / 40.0);
    //	double omega = 2.0 * M_PI * Fc / SAMPLE_RATE;
    //	double alpha = sin(omega) / (2.0 * Q);
    //
    //	double b0 = 1 + alpha * A;
    //	double b1 = -2 * cos(omega);
    //	double b2 = 1 - alpha * A;
    //	double a0 = 1 + alpha / A;
    //	double a1 = -2 * cos(omega);
    //	double a2 = 1 - alpha / A;
    
        // Normalize coefficients
        float b0 = B0 / A0;
        float b1 = B1 / A0;
        float b2 = B2 / A0;
        float a1 = A1 / A0;
        float a2 = A2 / A0;
    
        // Convert to fixed-point Q5.27 format
        int32_t b0_fixed = float_to_5_27(b0);
        int32_t b1_fixed = float_to_5_27(b1);
        int32_t b2_fixed = float_to_5_27(b2);
        int32_t a1_fixed = float_to_5_27(a1);
        int32_t a2_fixed = float_to_5_27(a2);
    
        // Print results
        PRINTF("f_c = %.1f Hz, Gain = %.1f dB\n", fc, gain_db);
        PRINTF("b0 = 0x%08X\n", b0_fixed);
        PRINTF("b1 = 0x%08X\n", b1_fixed);
        PRINTF("b2 = 0x%08X\n", b2_fixed);
        PRINTF("a1 = 0x%08X\n", a1_fixed);
        PRINTF("a2 = 0x%08X\n\n", a2_fixed);
    
        // TODO: Send coefficients to TAS5825M via I²C
        uint8_t data[21];
        memset(data, 0x00, sizeof(data));
        data[0] = 0x30;
        for (int i = 0; i < 5; i++) {
    		data[1 + (i * 4)] = (coeffs[i] >> 24) & 0xFF;
    		data[2 + (i * 4)] = (coeffs[i] >> 16) & 0xFF;
    		data[3 + (i * 4)] = (coeffs[i] >> 8) & 0xFF;
    		data[4 + (i * 4)] = (coeffs[i]) & 0xFF;
    	}
    
        cfg_reg config_reg =
        {
    		{ 0x00, 0x00 },
    		{ 0x7f, 0xAA },
    		{ 0x00, 0x01 },
        };
    
        for(int i = 0; i < 3; i++)
        {
        	ret = tas5825_write(config_reg[0].command, (unsigned char *)&config_reg[0].param, 1);
    		if(ret != kStatus_Success)
    		{
    			PRINTF("TAS I2C register write error");
    			break;
    		}
        }
    
        ret = tas5825_write(data[0], (unsigned char *)&data[1], 20);
    	if(ret != kStatus_Success)
    	{
    		PRINTF("TAS I2C register write error");
    		break;
    	}
    
    }

  • Hi Sagar,

    Can you send me the I2C writes that are causing the device to not output? In addition, can you read registers 0x70 to 0x73 to see if a fault was thrown?

    Regards,

    Ramsey

  • Hello Ramsey,


    Please see attached log file. 

    TAS Read Value indicate the 0x70 to 0x73 register value. Please check and suggest.

    f_c = 60.0 Hz, Gain = 2.5 dB<LF>
    b0 = 0x080250A0<LF>
    b1 = 0xF00E01E0<LF>
    b2 = 0x07EFCDB0<LF>
    a1 = 0x0FF1FE20<LF>
    a2 = 0xF80DE1B0<LF>
    <LF>
    Register Data : 30 08 02 50 A0 F0 0E 01 E0 07 EF CD B0 0F F1 FE 20 F8 0D E1 B0 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 0.2 dB<LF>
    b0 = 0x08002F30<LF>
    b1 = 0xF00FF710<LF>
    b2 = 0x07EFF9F0<LF>
    a1 = 0x0FF008F0<LF>
    a2 = 0xF80FD6D8<LF>
    <LF>
    Register Data : 30 08 00 2F 30 F0 0F F7 10 07 EF F9 F0 0F F0 08 F0 F8 0F D6 D8 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -5.2 dB<LF>
    b0 = 0x07FB2388<LF>
    b1 = 0xF015B580<LF>
    b2 = 0x07EF4720<LF>
    a1 = 0x0FEA4A80<LF>
    a2 = 0xF8159558<LF>
    <LF>
    Register Data : 30 07 FB 23 88 F0 15 B5 80 07 EF 47 20 0F EA 4A 80 F8 15 95 58 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -7.4 dB<LF>
    b0 = 0x07F8FB30<LF>
    b1 = 0xF0189B10<LF>
    b2 = 0x07EE89E0<LF>
    a1 = 0x0FE764F0<LF>
    a2 = 0xF8187AE8<LF>
    <LF>
    Register Data : 30 07 F8 FB 30 F0 18 9B 10 07 EE 89 E0 0F E7 64 F0 F8 18 7A E8 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -7.8 dB<LF>
    b0 = 0x07F89410<LF>
    b1 = 0xF0192C10<LF>
    b2 = 0x07EE5FF8<LF>
    a1 = 0x0FE6D3F0<LF>
    a2 = 0xF8190BF8<LF>
    <LF>
    Register Data : 30 07 F8 94 10 F0 19 2C 10 07 EE 5F F8 0F E6 D3 F0 F8 19 0B F8 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -8.2 dB<LF>
    b0 = 0x07F82BF0<LF>
    b1 = 0xF019C090<LF>
    b2 = 0x07EE33A0<LF>
    a1 = 0x0FE63F70<LF>
    a2 = 0xF819A068<LF>
    <LF>
    Register Data : 30 07 F8 2B F0 F0 19 C0 90 07 EE 33 A0 0F E6 3F 70 F8 19 A0 68 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -8.3 dB<LF>
    b0 = 0x07F811C8<LF>
    b1 = 0xF019E610<LF>
    b2 = 0x07EE2840<LF>
    a1 = 0x0FE619F0<LF>
    a2 = 0xF819C600<LF>
    <LF>
    Register Data : 30 07 F8 11 C8 F0 19 E6 10 07 EE 28 40 0F E6 19 F0 F8 19 C6 00 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -8.7 dB<LF>
    b0 = 0x07F7A858<LF>
    b1 = 0xF01A7EE0<LF>
    b2 = 0x07EDF8E8<LF>
    a1 = 0x0FE58120<LF>
    a2 = 0xF81A5EB8<LF>
    <LF>
    Register Data : 30 07 F7 A8 58 F0 1A 7E E0 07 ED F8 E8 0F E5 81 20 F8 1A 5E B8 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -8.6 dB<LF>
    b0 = 0x07F7C2C8<LF>
    b1 = 0xF01A5860<LF>
    b2 = 0x07EE04F8<LF>
    a1 = 0x0FE5A7A0<LF>
    a2 = 0xF81A3838<LF>
    <LF>
    Register Data : 30 07 F7 C2 C8 F0 1A 58 60 07 EE 04 F8 0F E5 A7 A0 F8 1A 38 38 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 0.4 dB<LF>
    b0 = 0x08005E70<LF>
    b1 = 0xF00FC8D0<LF>
    b2 = 0x07EFF8F0<LF>
    a1 = 0x0FF03730<LF>
    a2 = 0xF80FA8A0<LF>
    <LF>
    Register Data : 30 08 00 5E 70 F0 0F C8 D0 07 EF F8 F0 0F F0 37 30 F8 0F A8 A0 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 6.2 dB<LF>
    b0 = 0x0805D8E0<LF>
    b1 = 0xF00B5A10<LF>
    b2 = 0x07EEED40<LF>
    a1 = 0x0FF4A5F0<LF>
    a2 = 0xF80B39D8<LF>
    <LF>
    Register Data : 30 08 05 D8 E0 F0 0B 5A 10 07 EE ED 40 0F F4 A5 F0 F8 0B 39 D8 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 10.4 dB<LF>
    b0 = 0x080A3170<LF>
    b1 = 0xF008F240<LF>
    b2 = 0x07ECFC90<LF>
    a1 = 0x0FF70DC0<LF>
    a2 = 0xF808D200<LF>
    <LF>
    Register Data : 30 08 0A 31 70 F0 08 F2 40 07 EC FC 90 0F F7 0D C0 F8 08 D2 00 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 12.9 dB<LF>
    b0 = 0x080D0C60<LF>
    b1 = 0xF007C420<LF>
    b2 = 0x07EB4FC8<LF>
    a1 = 0x0FF83BE0<LF>
    a2 = 0xF807A3E0<LF>
    <LF>
    Register Data : 30 08 0D 0C 60 F0 07 C4 20 07 EB 4F C8 0F F8 3B E0 F8 07 A3 E0 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 14.0 dB<LF>
    b0 = 0x080E6320<LF>
    b1 = 0xF0074C50<LF>
    b2 = 0x07EA70E0<LF>
    a1 = 0x0FF8B3B0<LF>
    a2 = 0xF8072C10<LF>
    <LF>
    Register Data : 30 08 0E 63 20 F0 07 4C 50 07 EA 70 E0 0F F8 B3 B0 F8 07 2C 10 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 14.4 dB<LF>
    b0 = 0x080EE340<LF>
    b1 = 0xF00722B0<LF>
    b2 = 0x07EA1A50<LF>
    a1 = 0x0FF8DD50<LF>
    a2 = 0xF8070268<LF>
    <LF>
    Register Data : 30 08 0E E3 40 F0 07 22 B0 07 EA 1A 50 0F F8 DD 50 F8 07 02 68 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 14.2 dB<LF>
    b0 = 0x080EA2F0<LF>
    b1 = 0xF0073760<LF>
    b2 = 0x07EA45F8<LF>
    a1 = 0x0FF8C8A0<LF>
    a2 = 0xF8071718<LF>
    <LF>
    Register Data : 30 08 0E A2 F0 F0 07 37 60 07 EA 45 F8 0F F8 C8 A0 F8 07 17 18 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 11.6 dB<LF>
    b0 = 0x080B88A0<LF>
    b1 = 0xF0085BC0<LF>
    b2 = 0x07EC3BE0<LF>
    a1 = 0x0FF7A440<LF>
    a2 = 0xF8083B88<LF>
    <LF>
    Register Data : 30 08 0B 88 A0 F0 08 5B C0 07 EC 3B E0 0F F7 A4 40 F8 08 3B 88 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 7.2 dB<LF>
    b0 = 0x0806D760<LF>
    b1 = 0xF00AB9B0<LF>
    b2 = 0x07EE8F28<LF>
    a1 = 0x0FF54650<LF>
    a2 = 0xF80A9980<LF>
    <LF>
    Register Data : 30 08 06 D7 60 F0 0A B9 B0 07 EE 8F 28 0F F5 46 50 F8 0A 99 80 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 2.8 dB<LF>
    b0 = 0x08029850<LF>
    b1 = 0xF00DC540<LF>
    b2 = 0x07EFC298<LF>
    a1 = 0x0FF23AC0<LF>
    a2 = 0xF80DA510<LF>
    <LF>
    Register Data : 30 08 02 98 50 F0 0D C5 40 07 EF C2 98 0F F2 3A C0 F8 0D A5 10 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -0.7 dB<LF>
    b0 = 0x07FF5AC0<LF>
    b1 = 0xF010CDC0<LF>
    b2 = 0x07EFF7C0<LF>
    a1 = 0x0FEF3240<LF>
    a2 = 0xF810AD88<LF>
    <LF>
    Register Data : 30 07 FF 5A C0 F0 10 CD C0 07 EF F7 C0 0F EF 32 40 F8 10 AD 88 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -4.7 dB<LF>
    b0 = 0x07FB9E18<LF>
    b1 = 0xF0151980<LF>
    b2 = 0x07EF6890<LF>
    a1 = 0x0FEAE680<LF>
    a2 = 0xF814F968<LF>
    <LF>
    Register Data : 30 07 FB 9E 18 F0 15 19 80 07 EF 68 90 0F EA E6 80 F8 14 F9 68 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -5.8 dB<LF>
    b0 = 0x07FA8F20<LF>
    b1 = 0xF01676A0<LF>
    b2 = 0x07EF1A58<LF>
    a1 = 0x0FE98960<LF>
    a2 = 0xF8165680<LF>
    <LF>
    Register Data : 30 07 FA 8F 20 F0 16 76 A0 07 EF 1A 58 0F E9 89 60 F8 16 56 80 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -5.9 dB<LF>
    b0 = 0x07FA7650<LF>
    b1 = 0xF0169770<LF>
    b2 = 0x07EF1270<LF>
    a1 = 0x0FE96890<LF>
    a2 = 0xF8167748<LF>
    <LF>
    Register Data : 30 07 FA 76 50 F0 16 97 70 07 EF 12 70 0F E9 68 90 F8 16 77 48 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 6.0 dB<LF>
    b0 = 0x0805A6A0<LF>
    b1 = 0xF00B7B40<LF>
    b2 = 0x07EEFE50<LF>
    a1 = 0x0FF484C0<LF>
    a2 = 0xF80B5B08<LF>
    <LF>
    Register Data : 30 08 05 A6 A0 F0 0B 7B 40 07 EE FE 50 0F F4 84 C0 F8 0B 5B 08 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 12.1 dB<LF>
    b0 = 0x080C1BB0<LF>
    b1 = 0xF0082020<LF>
    b2 = 0x07EBE478<LF>
    a1 = 0x0FF7DFE0<LF>
    a2 = 0xF807FFE0<LF>
    <LF>
    Register Data : 30 08 0C 1B B0 F0 08 20 20 07 EB E4 78 0F F7 DF E0 F8 07 FF E0 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 14.0 dB<LF>
    b0 = 0x080E6320<LF>
    b1 = 0xF0074C50<LF>
    b2 = 0x07EA70E0<LF>
    a1 = 0x0FF8B3B0<LF>
    a2 = 0xF8072C10<LF>
    <LF>
    Register Data : 30 08 0E 63 20 F0 07 4C 50 07 EA 70 E0 0F F8 B3 B0 F8 07 2C 10 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 14.1 dB<LF>
    b0 = 0x080E82F0<LF>
    b1 = 0xF00741D0<LF>
    b2 = 0x07EA5B78<LF>
    a1 = 0x0FF8BE30<LF>
    a2 = 0xF8072190<LF>
    <LF>
    Register Data : 30 08 0E 82 F0 F0 07 41 D0 07 EA 5B 78 0F F8 BE 30 F8 07 21 90 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 15.8 dB<LF>
    b0 = 0x0810B480<LF>
    b1 = 0xF00697E0<LF>
    b2 = 0x07E8D3D8<LF>
    a1 = 0x0FF96820<LF>
    a2 = 0xF80677A0<LF>
    <LF>
    Register Data : 30 08 10 B4 80 F0 06 97 E0 07 E8 D3 D8 0F F9 68 20 F8 06 77 A0 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 8.8 dB<LF>
    b0 = 0x08087B30<LF>
    b1 = 0xF009CB80<LF>
    b2 = 0x07EDD998<LF>
    a1 = 0x0FF63480<LF>
    a2 = 0xF809AB50<LF>
    <LF>
    Register Data : 30 08 08 7B 30 F0 09 CB 80 07 ED D9 98 0F F6 34 80 F8 09 AB 50 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = 2.6 dB<LF>
    b0 = 0x08026880<LF>
    b1 = 0xF00DEDA0<LF>
    b2 = 0x07EFCA18<LF>
    a1 = 0x0FF21260<LF>
    a2 = 0xF80DCD68<LF>
    <LF>
    Register Data : 30 08 02 68 80 F0 0D ED A0 07 EF CA 18 0F F2 12 60 F8 0D CD 68 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -0.2 dB<LF>
    b0 = 0x07FFD0D0<LF>
    b1 = 0xF0105510<LF>
    b2 = 0x07EFFA50<LF>
    a1 = 0x0FEFAAF0<LF>
    a2 = 0xF81034E8<LF>
    <LF>
    Register Data : 30 07 FF D0 D0 F0 10 55 10 07 EF FA 50 0F EF AA F0 F8 10 34 E8 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -3.1 dB<LF>
    b0 = 0x07FD20C0<LF>
    b1 = 0xF0134350<LF>
    b2 = 0x07EFBC18<LF>
    a1 = 0x0FECBCB0<LF>
    a2 = 0xF8132320<LF>
    <LF>
    Register Data : 30 07 FD 20 C0 F0 13 43 50 07 EF BC 18 0F EC BC B0 F8 13 23 20 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -5.5 dB<LF>
    b0 = 0x07FAD988<LF>
    b1 = 0xF0161540<LF>
    b2 = 0x07EF3160<LF>
    a1 = 0x0FE9EAC0<LF>
    a2 = 0xF815F518<LF>
    <LF>
    Register Data : 30 07 FA D9 88 F0 16 15 40 07 EF 31 60 0F E9 EA C0 F8 15 F5 18 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -7.0 dB<LF>
    b0 = 0x07F96178<LF>
    b1 = 0xF0180D20<LF>
    b2 = 0x07EEB180<LF>
    a1 = 0x0FE7F2E0<LF>
    a2 = 0xF817ED08<LF>
    <LF>
    Register Data : 30 07 F9 61 78 F0 18 0D 20 07 EE B1 80 0F E7 F2 E0 F8 17 ED 08 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -8.0 dB<LF>
    b0 = 0x07F86028<LF>
    b1 = 0xF01975E0<LF>
    b2 = 0x07EE4A18<LF>
    a1 = 0x0FE68A20<LF>
    a2 = 0xF81955C0<LF>
    <LF>
    Register Data : 30 07 F8 60 28 F0 19 75 E0 07 EE 4A 18 0F E6 8A 20 F8 19 55 C0 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -8.8 dB<LF>
    b0 = 0x07F78DC8<LF>
    b1 = 0xF01AA5A0<LF>
    b2 = 0x07EDECB0<LF>
    a1 = 0x0FE55A60<LF>
    a2 = 0xF81A8578<LF>
    <LF>
    Register Data : 30 07 F7 8D C8 F0 1A A5 A0 07 ED EC B0 0F E5 5A 60 F8 1A 85 78 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -9.4 dB<LF>
    b0 = 0x07F6ED28<LF>
    b1 = 0xF01B9290<LF>
    b2 = 0x07EDA050<LF>
    a1 = 0x0FE46D70<LF>
    a2 = 0xF81B7270<LF>
    <LF>
    Register Data : 30 07 F6 ED 28 F0 1B 92 90 07 ED A0 50 0F E4 6D 70 F8 1B 72 70 <LF>
    TAS Read Value : 00 00 00 00<LF>
    f_c = 60.0 Hz, Gain = -9.9 dB<LF>
    b0 = 0x07F66550<LF>
    b1 = 0xF01C5E40<LF>
    b2 = 0x07ED5C78<LF>
    a1 = 0x0FE3A1C0<LF>
    a2 = 0xF81C3E30<LF>
    <LF>
    Register Data : 30 07 F6 65 50 F0 1C 5E 40 07 ED 5C 78 0F E3 A1 C0 F8 1C 3E 30 <LF>
    TAS Read Value : 00 00 00 00<LF>
    

  • Hi Sagar,

    It looks like the device encountered a clock fault. If you write 0x80 to register 0x78 does the device resume playback?

    Regards,

    Ramsey

  • Hello Ramsey,

    I have tried by writting 0x80 to 0x78 register but there is no change.....as soon as the slider value changed the voice stops.

  • Hi Sagar,

    Are you able to probe the I2S signals when the command is written?

    Regards,

    Ramsey