How to use the IIR-Accelerator in continuous-mode ADSP-SC584

Hi,

I´m using the ADZS-SC584-EZLITE with the ADSP-SC584 and CrossCore 2.8.3.

I found the Example-Project IIR_Filter_Response for the ADSP-SC589. I changed the Processorsetting and was able to run the Project.

 But the Program does only a single filter cycle for a defined Winow_Size. I can restart the IIR-Filter-Channel but the Filter starts from the beginning. So the start up of the Filter is seen in the beginning of the OutputChanel. Is there a way to do a continuous Filtering without start up the Fitler over and over. 

Is there a way to save the state of the Filter or something in this way?

Please help

Regards

Viktor

Parents
  • 0
    •  Analog Employees 
    on May 9, 2019 1:06 PM over 1 year ago

    Hi Viktor,

    Yes, it is possible to save the current state of the channels in the configuration using this below two API's.

    To save the state: "ADI_IIR_RESULT adi_iir_SaveState  ( ADI_IIR_CONFIG_HANDLE  hConfig ) "
    To Enable save state: "ADI_IIR_RESULT adi_iir_EnableSaveState  ( ADI_IIR_CONFIG_HANDLE  hConfig, bool  bEnable ) "

    For more information about this API's, please refer the below help path in the CCES.
    CCES>Help contents>CrossCore® Embedded Studio 2.8.3 > System Run-Time Documentation > System Services and Device Drivers > ADSP-SC58x (SHARC+ Core) API Reference > Modules>IIR Accerelator Driver.

    Best regards,
    Santha kumari.K

Reply
  • 0
    •  Analog Employees 
    on May 9, 2019 1:06 PM over 1 year ago

    Hi Viktor,

    Yes, it is possible to save the current state of the channels in the configuration using this below two API's.

    To save the state: "ADI_IIR_RESULT adi_iir_SaveState  ( ADI_IIR_CONFIG_HANDLE  hConfig ) "
    To Enable save state: "ADI_IIR_RESULT adi_iir_EnableSaveState  ( ADI_IIR_CONFIG_HANDLE  hConfig, bool  bEnable ) "

    For more information about this API's, please refer the below help path in the CCES.
    CCES>Help contents>CrossCore® Embedded Studio 2.8.3 > System Run-Time Documentation > System Services and Device Drivers > ADSP-SC58x (SHARC+ Core) API Reference > Modules>IIR Accerelator Driver.

    Best regards,
    Santha kumari.K

Children
  • Per my Understanding, the SaveState for a given Configuration is enabled by default.

    Using : ADI_IIR_RESULT adi_iir_SaveState  ( ADI_IIR_CONFIG_HANDLE  hConfig ) while save state is enabled would not save the state of the Filter because it gets saved by the IIR-Accelerator. 

    If I create a configuration and dont explicit disable the SaveState via:

    ADI_IIR_RESULT adi_iir_EnableSaveState  ( ADI_IIR_CONFIG_HANDLE  hConfig, bool  bEnable )

    the SaveState is enabled by default.

    I don´t have to use these API´s if I want to filter continuous. I just have to create a Configuration by default?

    Could someone confirm this assumtion

    Regards

    Viktor

  • +1
    •  Analog Employees 
    on May 28, 2019 1:50 PM over 1 year ago in reply to DSP_MAXC

    Hello,

    Regarding, "I don´t have to use these API´s if I want to filter continuous. I just have to create a Configuration by default?".
    >>Yes, You were understanding is correct.  You can just create the filter configuration and it automatically enabled the save state for all configurations.

    For more information on this please refer the below information:

    API@brief :: The adi_iir_EnableConfig API enables a given configuration to be processed by the IIR accelerator.
     
    The driver can run multiple configurations only if save state is enabled for all configurations. By default the save state is enabled for all configurations. When the driver is run in multi-configuration mode, the device is in use by another configuration depends upon the bQueue value. If bQueue is 'true' then if another configuration is using the device, the given configuration is queued in the processing queue and if bQueue is 'false' then the function returns an error.

    Best regards,

    Santha kumari.K