Hello, I'm an Elektor reader, and I'm here just to sum up and I hope to discuss with you my basic knowledge of the Sigma DSP system/enviroment.
So you have this great Sigma Studio SW, wich lets you design and configure an IC (let's start with ADAU1701) to do DSP stuff. When your design
is finished you can download and run it in real-time if you have USBi from AD, if you have not you can download the .hex code to an EEProm (Elektor has produced a sketch for Arduino wich does it) then start your IC in EEProm mode and your program now it's running in stad-alone mode.
However, sooner or later you'll discover these blocks parameters (let's take medium size equalizer) are not fully accessible from AusiliaryADCs or GPIO for example how can I change the fader of an equalizer in order to control tone response when my IC is running on my custom board (not connected with Sigma Studio SW)?
Other blocks like single slew ext vol have an "orange" pin (pin0 external volume control) wich you can route to AUX_ADC_0 (previously configured on pin MP9 in hw config) this is very useful i think.
So how you can access to theese hidden parameters when your design is running on your custom board and wire them to external pots?
The answer I've found can be tricky for not skilled/motivated people (I'm sure not one of them ).
Remember USBi? It does basically DSP register write/read on I2C bus over USB. You can see all the byte written simply clicking view-> Capture Window in Sigma Studio.
There is a procedure wich guides you through a functionality of Sigma Studio, wich creates .h files Custom Microcontroller - Sigma Dsp solutions, in wich you've understand well, the uC have DSP code in its flash and can download it at application startup. So Sigma Studio is generating c compatible code for a uC, you have modes function in Capture Window you can use to create function prototypes so you can read a pot in a uC and write the x param on a Sigma Design Block in real-time via I2C.
The point is: I2C/SPI it is the only way possible to access all block parameters or in future AD will make then accessible from Sigma Studio? You know, in six months in the free time I can setup a system with an ARM uC wich control ADAU1701 DSP through I2C meanwhile AD has added an orange pin to the equalizer so I can route tone control to ausiliary ADCs...what are the plans of AD in this sense? A very useful solution would be a parameter control box wich select the internal block parameter you want route to external hw (Aux ADCs or byte read from GPIO port).
Note2: MiniDSP board is a uC and an ADAU1701 so they decided to follow the "tricky" procedure. The uC offers the connection throught the USB port, and it also communicate changing ADAU register when user wants to change parameters.
I hope to have posted useful informations for Sigma's users. Please share your own point of view, maybe we can build up a team and start an open source library to control ADAUXXX ICs for example on Arduino platform.
Nice post! I think this FAQ about microcontroller coding (http://ez.analog.com/docs/DOC-1806) would be a good starting point for anybody who wanted to do Arduino example projects.
Update: we've developed the library for interfacing Arduino (or TivaC) with Sigma DSPs. See post
Aida DSP project is born
Is this still the case ? I quickly found out that I cannot control anything in a simple manner , surprised , seeing that you can control volume , why can you not control what you want externally ?