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: Low pass implementation

Part Number: TAS5825M

Hi there,

I've made a prototype board using the TAS5825m and we have some troubles about setting up the DSP over I2C.

I'm trying to implement a low pass filter and be able to set the cut off frequency on the fly over a custom app.

So, I first tried to use the EQ, after some research on this forum I've found this file Audio-EQ-Cookbook.txt and this thread and I'm now able to calculate BQ coefficients.

But when I write the coefficients over I2C the output signal become really low, like there's already a band pass nor high pass somewhere else ?

I've seen in the document "TAS5825m process flows" that the chip allow differents process flows with differents features. 
I don't know how we can switch from one process flow to another, or enable / disable features? 

For example, maybe the crossover is more suitable than the EQ to implement a simple low pass filter but if it's the case I don't see how I can drive the crossover in the memory map.

Is there somewhere a document with an exhaustive register list please ?

I put below detailed process we used, with the I2C registers and the calculated BQ coefficients. If someone can help me or tell me if I'm wrong somewhere that would be really great.

Thanks

// For example with these values
Fs = 48000;
f0 = 500;
Q  = 0.707;

// Using the LPF formula from Audio-EQ-cookbook we found these coef :
b0 :0.00107053
b1 :0.00214106
b2 :0.00107053
a0 :1.04625403
a1 :-1.99571790
a2 :0.95374603

// As the document "SLAA786A - TAS5825M Process Flows" seems to indicate 
// we need to make some extra calculations before sending
// Final BQ coef :
B0_DSP :0.00102320
B1_DSP :0.00102320
B2_DSP :0.00102320
A1_DSP :0.95374441
A2_DSP :-0.91158170

// We transform coefficients to 5.27 HEX using this formula :
// DEC2HEX(MOD(MIN(ROUND(2^27*[B0,B1,B2,A1,A2];0); 2^31-1); 2^32);8)
B0_DSP_HEX :0x00021874
B1_DSP_HEX :0x00021874
B2_DSP_HEX :0x00021874
A1_DSP_HEX :0x07A144C0
A2_DSP_HEX :0xF8B514A8

// Init TAS5825m
w 98 00 00 
w 98 7F 00
w 98 4C 30
w 98 54 02
w 98 03 03
w 98 78 80

// Gang LR
w 98 00 00
w 98 7F 8C
w 98 00 0B
w 98 28 00 00 00 01

// Write BQ coefficients L
w 98 00 00
w 98 7F AA
w 98 00 01

w 98 30 00 02 18 74 00 02 18 74 00 02 18 74 07 A1 44 C0 F8 B5 14 A8

// Write BQ coefficients R
w 98 00 00
w 98 7F AA
w 98 00 03

w 98 6C 00 02 18 74 00 02 18 74 00 02 18 74 07 A1 44 C0 F8 B5 14 A8

// Other coefficients are left at their default values.
// B0 0x08000000
// B1 0x00000000
// B2 0x00000000
// A1 0x00000000
// A2 0x00000000