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

Part / Eval board advice for project please?

SigmaDSP & SigmaStudio Nando.One May 27, 2012 00:00 15 replies Original on forum ↗
Subscribe
Nando.One Question
May 27, 2012 00:00

I've been assigned to develop a relatively simple DSP project and I would like to have some advice before I start buying things

Here it is:

- Two channels at 192Khz

- Parametric Equalizer with 6 or more bands, featuring three modes: Low Shelf, High-Shelf, Parameters

- Each channel has delay adjustment, I know Sigma DSPs have little memory, but it’s okay if there’s not much delay time available.

- Each output channel has LPF and HPF filters, being the available types, Linkwitz Riley, Bessel and butterworth, up to 48 dB/oct

- Each output channel has limiter, featuring Attack and Release time

The idea is to use a PIC device to interface Sigma DSP to the computer. PIC connects to the computer via USB and communicates with SigmaDSP via i2C or SPI interface. I’m fine with this part

Is ADAU1701 enough for the job, or should I work with the ADAU1446 instead?

Do I have access, via SPI or I2C, to the parameters of the SigmaStudio modules programmed into the Sigma DSP? These would be:

- Frequency, Bandwidth, Gain

- Delay time

- Type of LPF / HPF filter, as well as Slope and frequency

- Attack and Release time of the limiter

Is it possible to develop this project using an evaluation board, or, should I just buy USBi and make my own board instead?

Thanks a lot!

Fernando

Audio Signal Processors

adau1446

SigmaDSP Audio Processors

adau1701

KKSL Reply
May 28, 2012 00:00

Project @ 192KHz will use a lot of Data RAM, especially for the delays. If you have a choice and cost is not a concern, I would recommend ADAU1442.

To be able to update parameters via I2C/ SPI in end use needs to be done via PIC. So make sure that you pick one that has USB and lot of Data EEPROM and at least 96k program RAM.

It would be convenient at development phase to have programming headers for both PIC and SigmaDSP to allow you real time changes. You can then optimize the board for production after the code is frozen.

Advantage of buying USBi is AD support. So I think its worth it. Only USBi is costly. So consider buying an eval kit which bundles USBi along with it.

I hope that this helps. I am curious what other details come up from experts.....

Nando.One Reply
May 28, 2012 00:00

Agree with you. For the delay, I'm considering sending the audio data to the microcontroller, buffer in an external memory and then sending it back. Actually some PIC32 devices have a pretty large amount of ram, 128K, that might do it. Definitively I have to pick a device with I2S interfaces instead of built in dac / adc.

The USBi comes along with the eval board and can be used separately in other boards, or it comes "built in" the eval board?

KKSL Reply
May 28, 2012 00:00

How much delay/ channel and how many o/p channels ( You mentioned two but want to be sure its two o/p channels). ADAU1442 is capable of around 170ms delay @ 48KHz. That's 40ms @ 192K. This should be more than sufficient for most 'Home' applications. What are you using delays for?

Delay takes up DataRAM where as other blocks take up Parameter and Program RAMs.

USBi is a seperate board and not 'built-in'

ADIApproved Reply
May 29, 2012 00:00

The USBi comes along with any of the SigmaDSP evaluation boards, but it can be used to program any board (including your own prototype). It connects to the evaluation board, or your prototype board, with a ribbon cable.

Nando.One Reply
May 31, 2012 00:00

Thank you for all the feedback.

Let's say I use the Parametric Equalizer and the Crossover, as follows:

How do I manage to change parameters in real time? Do I have to come up with the new coefficients, or it's simply some register value that I have to change via SPI or I2C? I am sorry, but although I've read the datasheets, It's not very clear to me.

For example, let's say I would like to have push buttons "<", ">", "O" and "T" to configure the crossover. " < " decreases the freq. cut, " > " increases the frequency cut, "O" changes the crossover order and "T" changes the crossover type. Something similar goes for the equalizer, so the user can change at the front panel the type of filter, Q, frequency, gain, etc etc etc....

All these push buttons are connected to a PIC microcontroller that communicates with SigmaDSP via I2C or SPI (whatever is best). What KIND of commands the microcontroller has to send to the DSP to change the desired parameters? Coefficients? Change variables? Change register values? Could you please give me a real world example, preferably for the parametric equalizer and crossover above?

I'm sorry for this kind of question, I still can't visualize in my mind how to "glue" this pretty Sigma Studio interface with i2C / SPI commands for real time user interface.

Thank you!

e1960a85c14b448015cf01c0b15283c3.png
e1960a85c14b448015cf01c0b15283c3.png
e1960a85c14b448015cf01c0b15283c3.png-681x476.png
e1960a85c14b448015cf01c0b15283c3.png-681x476.png
ef01fad752688f4a6161dd506c3ef55a.png
ef01fad752688f4a6161dd506c3ef55a.png
ef01fad752688f4a6161dd506c3ef55a.png-450x414.png
ef01fad752688f4a6161dd506c3ef55a.png-450x414.png
deejuk Reply
May 31, 2012 00:00

Alright, tackling this problem myself at the moment.

Use these FAQ's and found them very useful:

Calculating Filter Coefficients to Store in a Microcontroller

FAQ: How can I change parameters on-the-fly in an application without SigmaStudio?

Then use the page within the help file: <System Implementation> - This give you the commands used to send the coefficient data within your coding.

I'm using a high speed PIC µController to calculate the coefficients and then send the values via i2c to the sigmaDSP.

But in your application, it's probably easier to implement a table with index and then use the your pushbuttons to increase/decrease the index value to get the relevant coefficients for each order type....

Nando.One Reply
May 31, 2012 00:00

Well, now I find SigmaStudio less useful So it won't set you free from the hard task of calculating coefficients yourself if you have to change something on the fly and can't store a giant table... Which PIC are you using? I thought about using a PIC32MX but I think it's a little too much, what you think?

deejuk Reply
May 31, 2012 00:00

I'm going to use a dsPIC33ep512mu810, which i feel is overkill but its good for the math computing and had two decent adc modules totalling 32 channels so for my application its perfect as it involves a lot of pots, so just throwing the equations into my 'c' code and hopefully letting the controller do the work effortlessly.

Nando.One Reply
May 31, 2012 00:00

That's definitively overkill, but the 32-ch ADC is a huge advantage if you use lots of pots. Anyways, I'm reading the documentation and I hope to come up with a C program to calculate the coefficients soon. I'll keep this thread updated as I progress...

KKSL Reply
Jun 4, 2012 00:00

Updating equalizer parameters over micro-controller will be very in-efficient way. However it is currently the only way, unless, AD decides to unveil its GUI Builder Tool to the users. Hopefully the tool will be a graphical extract/ subset of your project that one can pass to the end user. It will allow him to update user accessible parameters, graphically, without knowing the whole project.

I know no one will want to commit to any time lines ( I like surprises though...) as to when it will be out, but I am hopeful that it will be very soon

Nando.One Reply
Jun 4, 2012 00:00

Why would update the coefficients using a microcontroller be inefficient? The uController can take "forever" to calculate the coefficients, however the important thing is that the DSP won't have to STOP to do it instead. I think that's the reason we never see DSPs calculating coefficients on their own, although I think other DSPs like the SHARC could do that quite effortlessy...

KKSL Reply
Jun 4, 2012 00:00

I probably ment 'not the best way to do it.'

Equilizer has a lot of parameters associated with it. Freq, Cut/ boost, Q etc. Using a uC will consume a lot of resources. However, if we can get the GUI out of SigmaStudio into a user interface, would you not like that better? Then you will have a correct perspective of where your setting are.

All I ment is that I will prefer to have a GUI, wouldnt't you?

ADIApproved Reply
Jun 4, 2012 00:00

We do plan on making a SigmaStudio-like standalone software available at some point, but the timeline is not yet clearly defined.

For now, table lookup or direct coefficient calculation are the best methods for giving the user control over filter parameters.

Nando.One Reply
Jun 5, 2012 00:00

Yeah, definitively I would like that very much!

Hey ADI, hear our prayers

EZAdministrator Reply
Aug 2, 2018 00:00

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