Post Go back to editing

parameters with ADAU1701

Hi Evryone,

 

I have a Evalboard ADAU1701 and i want stock the diffrent parameters in a extern EEPROM, because if iwant change the parametres i don't w'ant to go to Sigma Studio but with an button or interface telnet i select parametre in the EEPROM.

 

The question is how i ordre the DSP to change parameter with I2C may be but hoz i can tell him wake up for searching a new parametres?


If you have any suggestions i will be very happy ,


Thank you very much,

Parents
  •      Hello,

         Safeload is a method used to write new parameters to a running DSP.  It can handle up to five parameters at a time.  As its name suggests, it's the safe way to change parameters while audio is running, because it carefully updates the parameters during the dead time in between audio samples -- thus avoiding audible pops and clicks.  It's described on page 30 in the ADAU1701 data sheet.  It doesn't actually store parameters for you, these still have to come from your Arduino.  It's just a different way to I2C the parameters from the your microcontroller to the -1701.

         Here's an example project with several control methods illustrated.  The screenshot below shows when we first boot the ADAU1701 from SigmaStudio:

         Here in SigmaStudio's Capture Window, we see the Program Memory, Parameter Memory, and Core Registers being loaded.  The initial program load simply dumps all this stuff into the DSP with Block Writes (directly writing to the memory locations).  When you're looking to control the ADAU1701 via I2C, you'll find that the Capture Window is your friend.  Essentially, if you have your Arduino do exactly what SigmaStudio shows in the Capture Window, you'll successfully control your -1701!  The Export Files you get when you choose Export System Files after a Link-Compile Download contain the same information is a more convenient form for including in your Arduino's source code.  The first parameter to load happens to be for DC Source 1 -- you can see the integer "7" above.

         The General Second-Order Filter shown has no visible means of control -- it can only be adjusted via I2C.  If we adjust it from SigmaStudio, the Capture Window shows what happens:

         Here, SigmaStudio switches to Safeload writes since writing these parameters to a running DSP would cause audible disruption.  Five parameters known as coefficients are needed to control the filter, and they have no obvious relation to the audio control you're changing.  That's why you'll need to have your Arduino lookup or calculate these coefficients and then safeload them.  The references I provided above show how to calculate and safeload the parameters.

         On the other hand, the sample project's two Lookup Filters contain all the needed coefficients in the initial program load, only needing an Index input (an integer) to select the desired response from the pre-loaded choices.  The Bass filter is connected to an Aux ADC for operator adjustment via potentiometer -- no I2C needed!  Source DC1 and the multiplier serve to convert the -1701 Aux ADC's 0-1 decimal range to the 0-6 integer input for the lookup filter -- for more info on number formats, see What are the number formats for SigmaDSP?

         We can also use a DC source to control the lookup via I2C, as done with the Treble filter:

    SigmaStudio chose a Block Write when adjusting this filter, but it's best to use Safeload for any writes to a running DSP.

         Thus, we see several ways to make your SigmaDSP jump through its hoops.  Getting it all to work can be intimidating at first, but eventually you'll feel the "thrill of victory."

         Best regards,

         Bob

Reply
  •      Hello,

         Safeload is a method used to write new parameters to a running DSP.  It can handle up to five parameters at a time.  As its name suggests, it's the safe way to change parameters while audio is running, because it carefully updates the parameters during the dead time in between audio samples -- thus avoiding audible pops and clicks.  It's described on page 30 in the ADAU1701 data sheet.  It doesn't actually store parameters for you, these still have to come from your Arduino.  It's just a different way to I2C the parameters from the your microcontroller to the -1701.

         Here's an example project with several control methods illustrated.  The screenshot below shows when we first boot the ADAU1701 from SigmaStudio:

         Here in SigmaStudio's Capture Window, we see the Program Memory, Parameter Memory, and Core Registers being loaded.  The initial program load simply dumps all this stuff into the DSP with Block Writes (directly writing to the memory locations).  When you're looking to control the ADAU1701 via I2C, you'll find that the Capture Window is your friend.  Essentially, if you have your Arduino do exactly what SigmaStudio shows in the Capture Window, you'll successfully control your -1701!  The Export Files you get when you choose Export System Files after a Link-Compile Download contain the same information is a more convenient form for including in your Arduino's source code.  The first parameter to load happens to be for DC Source 1 -- you can see the integer "7" above.

         The General Second-Order Filter shown has no visible means of control -- it can only be adjusted via I2C.  If we adjust it from SigmaStudio, the Capture Window shows what happens:

         Here, SigmaStudio switches to Safeload writes since writing these parameters to a running DSP would cause audible disruption.  Five parameters known as coefficients are needed to control the filter, and they have no obvious relation to the audio control you're changing.  That's why you'll need to have your Arduino lookup or calculate these coefficients and then safeload them.  The references I provided above show how to calculate and safeload the parameters.

         On the other hand, the sample project's two Lookup Filters contain all the needed coefficients in the initial program load, only needing an Index input (an integer) to select the desired response from the pre-loaded choices.  The Bass filter is connected to an Aux ADC for operator adjustment via potentiometer -- no I2C needed!  Source DC1 and the multiplier serve to convert the -1701 Aux ADC's 0-1 decimal range to the 0-6 integer input for the lookup filter -- for more info on number formats, see What are the number formats for SigmaDSP?

         We can also use a DC source to control the lookup via I2C, as done with the Treble filter:

    SigmaStudio chose a Block Write when adjusting this filter, but it's best to use Safeload for any writes to a running DSP.

         Thus, we see several ways to make your SigmaDSP jump through its hoops.  Getting it all to work can be intimidating at first, but eventually you'll feel the "thrill of victory."

         Best regards,

         Bob

Children
No Data