How to control advanced processing parameters with GPIO?
I know that there are simple prebuilt blocks for controlling volume using a couple of digital GPIs (up/down pushbuttons), for example.
But how can I control other parameters of more complex processing blocks in an end-system not having an external microcontroller or connection to SigmaStudio, but using only GPIO (pushbuttons, encoders and potentiometers)?
As a simple example, I would like to know how to implement a crossover filter and be able to vary its cutoff frequency using an encoder, two buttons or an auxiliary analog input, if possible at all.
Thanks!
The best way to vary something like filter cutoffs in the SigmaDSP is to use chains of parallel filters and switch the signal path between them using an index generated from your hardware controls. The hardware controls cannot directly adjust the filter coefficients to change the filter cutoff frequencies. The SigmaStudio installation includes some example projects that show how this can be done. These are found, by default, in C:\Program Files\Analog Devices Inc\SigmaStudio 3.1\Sample Schematics. There are a few that show a single push-button changing the index of a mux to control which filters are in the signal path.
The downside to trying to do this is that you have to save many more filters in the SigmaDSP memory than you would if you were changing the coefficients directly. If this is too restrictive for your application, and you need very fine control over the filter settings, I would recommend that you use a microcontroller to control the filters. With a micro, you could save a large table of filter coefficients in its memory and load them as appropriate to the SigmaDSP.
This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.
Thank you,
EZ Admin
Please log in to reply.