Part / Eval board advice for project please?
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
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.....
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?
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'
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.
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!
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....
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?
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.
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...
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
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...
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?
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.
Yeah, definitively I would like that very much!
Hey ADI, hear our prayers
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.



