ΣSigmaStudio Ask AI Русский Log in

Choose different EQ Presets / Filter with GPIOs

SigmaDSP & SigmaStudio MarkusAD Jul 19, 2012 00:00 7 replies Original on forum ↗
Subscribe
MarkusAD Question
Jul 19, 2012 00:00

Hello,

i want to choose between different EQ Presets / Filter via GPIO Pins.

I have a ADAU1401 and he is connected to a microcontroller via I²C. 6 GPIO Pins are connected directly to the microcontroller. The signal which I want to change is delivered via I²S, input is the GPIO Pin 1 (MP1 - Input Sdata_in1) and output ist the GPIO Pin 6 (MP6 - Sdata_out0).

Is it possible to set a value for the 6 Pins (000000 - 111111 [i don't need so many options]), read that value, look, which preset it stands for and "switch this on" ? I could only find a Toggle button function for going through a list of different presets.

I hope i described my problem good enough. I never did anything before with dsp and filter etc. Would be great if somebody could help me.

Thanks.

ADIApproved Reply
Jul 19, 2012 00:00

In order to do this, you need to do two basic things:

Create a GPIO-to-Index converter.

Use an index-selectable filter cell for your presets.

GPIO-to-Index converter:

For each GPIO input pin, create the following three cells:

GPIO input

DC source

Multiply

Hook them up like this:

Fullscreen
a8a8ecd5e3c6ab157be1e03565d0d706.html
Download

<html><head><title>Jive SBS</title></head>
<body><font face="arial,helvetica,sans-serif">
<b>Error</b><br><font size="-1">
An general error occurred while processing your request.
</font></font></body></html>

This takes the 5.23 GPIO input and converts it to a 28.0 integer number. The LSB should be multiplied by 1, the next bit by 2, the next bit by 4, and so on...

You then sum up those inputs to create a single integer index number based on the binary adder for the GPIO inputs.

In my example below, I used 4 bits to create an index value that goes between 0 and 15.

Fullscreen
b7ca10f90bd213dcf784bd0f13e42760.html
Download

<html><head><title>Jive SBS</title></head>
<body><font face="arial,helvetica,sans-serif">
<b>Error</b><br><font size="-1">
An general error occurred while processing your request.
</font></font></body></html>

Now, use this as the input to an index-selectable cell that will act as your EQ. I used the IdxSelectable Indp. Multiple Band Filter. The help document attached explains the use of this cell.

Here is the finished product:

Fullscreen
cbcb5910834dfaa7d9e4c5ca8f64b846.html
Download

<html><head><title>Jive SBS</title></head>
<body><font face="arial,helvetica,sans-serif">
<b>Error</b><br><font size="-1">
An general error occurred while processing your request.
</font></font></body></html>

You can find additional help with GPIO usage here: http://www.analog.com/static/imported-files/application_notes/AN-951.pdf

You can also find example projects using GPIO here: http://wiki.analog.com/resources/tools-software/sigmastudio/tutorials

Brett

MarkusAD Reply
Jul 20, 2012 00:00

Hello Brett,

thank you very much for your fast and detailed reply. This is exactly what i need. In my case i just use the GPIO Pins 1 & 6 for Audio Input & Output.

But I think there is the problem. The audio input signal is a digital signal over I²S in I²S audio mode. The idxSelectbale MBF needs an analog signal. Is there a way to convert the signal? I could not find anything in the SigmaStudio.

One more question i have is why is the IdxSelectable Indp. Multiple Band Filter limited to 16? (it is enough for my purpose) Just want to know for understanding.

Thank you for your help in this matter.

Markus

25970cb0ce01748ace44e135730614e8.jpg
25970cb0ce01748ace44e135730614e8.jpg
25970cb0ce01748ace44e135730614e8.jpg-450x293.jpg
25970cb0ce01748ace44e135730614e8.jpg-450x293.jpg
ADIApproved Reply
Jul 20, 2012 00:00

Hi Markus,

Actually, the way to access digital audio data is not to use the "GPIO Input" and "GPIO Output" cells (GPIO_1 and GPIO_6 in your project). Those cells are only used when GPIO inputs/outputs are digital control signals.

When you use the serial ports, the audio signals appear on the input cells and output cells.

Please see here for documentation:

http://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/io/input

http://wiki.analog.com/resources/tools-software/sigmastudio/toolbox/io/output

(and just for reference, your project should look like this)

193ca7cd42d34e35d07bfc7bd4023319.png
193ca7cd42d34e35d07bfc7bd4023319.png
193ca7cd42d34e35d07bfc7bd4023319.png-362x338.png
193ca7cd42d34e35d07bfc7bd4023319.png-362x338.png
MarkusAD Reply
Jul 23, 2012 00:00

Hello Brett,

thank you very much for your reply. I thought i have to use the pins. Now i can start to implement my project.

Have a nice day.

Markus

phanduchoang Reply
Aug 7, 2021 00:00

how to out led for 16 program eq

phanduchoang Reply
Aug 7, 2021 00:00

how to dislay 16 led for r1 - r15 .

thank you

DaveThib Reply
Aug 9, 2021 00:00

We need a lot more info and your question should be on a new thread.

What processor are you using?

What are you trying to do? The function?

Dave T