Standalone SigmaDSP Equalizer
Hi ,
Is there a way to generate parameter for equalizer on the Host processor .
As far Sigma Studio is considered the tool generates the parameter is transfer to the device , would like to know how to generate the param when SigmaDSP is connected to Host processor in Standalone Environment
Thanking you
With best regards and wishes
Audio Signal Processors
sigmastudio
SigmaDSP Audio Processors
adau1761
SigmaDSP
By 'Host Processor" do you mean a microcontroller or PC? Also, by standalone do you mean self-boot or microcontroller controlled?
*I will edit this post and include hyper links when I have more time
The ADAU1701 operates in Self-Boot or Microcontroller mode. When in self-boot mode, the program is loaded via an on-board EEPROM. The EEPROM configures the DSP's registers per the SigmaStudio design. In-order to maximize performance and reduce program size, ADAU1701 has very few predefined registers. Every unique SigmaStudio design creates a new set of register address/values. Although it is possible to reconfigure the DSP on the fly when using a microcontroller, generally the program does not change once loaded. Instead the microcontroller can change parameters. Parameters are the values located at a particular register address.
Example (*values and addresses are made up), let’s build a system that self-boots the ADAU1701 from the on-board EEPROM.
First we need to create a simple SigmaStudio program with an input, one filter, and output. SigmaStudio generates code to configure the DSP as defined by our design. Along with basic default configuration registers required to run core functions of DSP, a register named 'Filter' at address location 0x26F0 is created. (In reality more than one register is created for a filter but let’s keep it simple) the filter register has some values, these values are the parameters. Along with program code SigmaStudio also produces parameter value code; the values were determined by the 'settings' of the filter block at time of generating and loading hex. These values can be understood as ‘default’ values because they will always be loaded upon a reset.
While in self-boot mode, the ADAU1701 is the master on an I2C bus and upon power-up, it requests and receives data from the (slave) EEPROM. It uses that data to configure itself and load the ‘default’ parameters. Once configured it is possible to change the parameter values in a register either by mapping GPIO control of functions or through SigmaStudio software. The ADAU1701 has a convention of reads/writes/ and magic to manipulate register parameters but thankfully SigmaStudio software combined with the USBi takes care of the hard work.
When connecting the USBi, the USBi attaches itself to the I2C bus. This is a multi-master mode of operating on an I2C bus and is normally advised against, but the good people at SigmaStudio have designed the USBi and SigmaStudio to work pretty well in this configuration so no worries. If you enable real time control in SigmaStudio you can adjust your filters and the parameters are atomically updated. The new parameter values are not stored in the EEPROM, instead they are written to the DSP register of the corresponding function. If the Write-Back feature is enabled, upon power-off, the parameter value will be stored, over-writing the corresponding EEPROM’s default vale. It is the Write-Back method that ‘saves’ changes to parameters.
Alternatively you can take advantage of the on-chip GPIO. By mapping push-buttons, I/O, or A/D with the appropriate GPIO conditioning and functions; a self-boot system with external controls is possible.
For more control of your system a microcontroller can be used. While in microcontroller mode the Self-Boot function is disabled. Your system no longer requires an EEPROM, and the ADAU1701 is no longer the master on the I2C bus. The microcontroller is responsible for issuing the write sequence to the ADAU1701 that configures the registers/parameters. SigmaStudio generates header files (&xml) that define the registers/parameter values. It’s up to the designer to upload the proper header files and write code to handle the convention of reads/writes/ and magic. Trying to interface SigmaStudio directly with the microcontroller, meaning it operates on the same I2C bus and can modify parameters is possible however very difficult. SigmaStudio will not stop you from reverse engineering their product but they will not support your system. You can however use the ‘Capture Window’ in SigmaStudio to identify the register address and parameter values each function/change produces. Then load that data externally either via your own software, a terminal, or directly in the microcontrollers source code.
Hi ,
Thank you for the information .
Thanking you
With best regards and wishes
Please log in to reply.