Hello Folks

I am trying to get to grips with the IIR accelerator on the ADSP-21488 DSP.

I am loading the initial coefficients into the accelerator when initialising the accelerator, by allowing the TCB to point at the source of the coefficients.

However, I need to be able to change the filter coefficients 'live', while the product is being 'listened to'.

So, two questions if I may:

- The examples assume that the coefficients are static and are not changed after initialistion. What is the standard accepted way to change the coefficients - what is used to trigger the loading of revised coefficients?
- Since the state (Dk) values are loaded at the same time as the coefficients, I am concerned that 0's in the coefficient source memory will be written into the IIR's live Dk's and wreck the state, causing disturbance to the audio.

Any help on this would be very much appreciated.

Many thanks

Probbie

Hi Probbie,

The safest and simplest procedure could be the following:

1) Core starts the accelerator after making sure that the TCBs are updated with the latest values.

2) The accelerator starts processing while the core does some useful task in the back ground.

3) The accelerator interrupts the core after current processing iteration is completed. Core then disables the accelerator and waits for the next interrupt which indicates that the next input data frame is ready for processing.

The steps 1 to 3 are repeated continuously. To address question (2), you can use the "save state" feature of the accelerator to make sure that the Dk values are stored back in to the RAM as well after current iteration of processing is over so that these values can be reloaded back in the next processing iteration.

Hope this helps.

Thanks,

Mitesh