ADAU1446 - interface read/write register and I2C address
Hi all,
I'm working with an ADAU1446.
I use the DSP in selfboot mode, but there is a microcontroller appended on I2C line that have to comunicate with DSP.
In past I've worked on top of a similar application with ADAU1701.'ve used interface read/write registers.
In ADAU1701 these register have a fixed I2C address that is specified in the datasheet of the device.
So you can compile-recompile-upsidedown DSP SigmaStudio project and your Interface registers stay locked.
Otherwise, in ADAU1446, there isn't an address space reserved for Interface register so SigmaStudio assign a dynamic address to Interfaces every time you compile a project.
This is a problem beacause I've to update the Interface register Address in my Microcontroller Application every time that I modify the SigmaStudio file.
This is very restrictive and easily lead to error.
Is there a way to lock the I2C Address assigned to a block in SigmaStudio?
How can I workaround this issue?
Thanks
Andrea
Audio Signal Processors
adau1446
sigmastudio
SigmaDSP Audio Processors
SigmaDSP
selfboot
adau1701
self-boot
Show More
Hi Andrea,
There is no way to lock the parameter addresses assigned to SigmaStudio blocks. That would require some extra development on the compiler and it would also use the RAM space less effectively. The way to solve this problem is to use the C-compatible .h files exported by SigmaStudio and include these in your microcontroller code compilation.
First, create a project. Here's my simple example: Input - Volume - Output
Link-Compile-Download OR Link-Compile-Connect.
Click the Export System Files button. You will be prompted to name the files. I called mine "Test."
This creates several output files in the same directory as the project file. For now, take a look at the one whose filename ends in IC_1_PARAM.h.
The file's contents look something like this:
/* Module Modulo Size - Modulo Size*/
#define MOD_MODULOSIZE_COUNT 1
#define MOD_MODULOSIZE_DEVICE "IC1"
#define MOD_MODULOSIZE_MODULO_SIZE_ADDR 0
#define MOD_MODULOSIZE_MODULO_SIZE_FIXPT 0x00002000
#define MOD_MODULOSIZE_MODULO_SIZE_VALUE SIGMASTUDIOTYPE_INTEGER_CONVERT(8192)
#define MOD_MODULOSIZE_MODULO_SIZE_TYPE SIGMASTUDIOTYPE_INTEGER
/* Module Single 1 - Single Volume Control*/
#define MOD_SINGLE1_COUNT 1
#define MOD_SINGLE1_DEVICE "IC1"
#define MOD_SINGLE1_GAIN1940ALGNS1_ADDR 8
#define MOD_SINGLE1_GAIN1940ALGNS1_FIXPT 0x00800000
#define MOD_SINGLE1_GAIN1940ALGNS1_VALUE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1)
#define MOD_SINGLE1_GAIN1940ALGNS1_TYPE SIGMASTUDIOTYPE_FIXPOINT
Note that my important parameter, volume, is assigned a name: MOD_SINGLE1_GAIN1940ALGNS1. Its address and default value are defined in this file.
#define MOD_SINGLE1_GAIN1940ALGNS1_ADDR 8
#define MOD_SINGLE1_GAIN1940ALGNS1_FIXPT 0x00800000
So, if you include this file in your microcontroller compilation, you can simply refer to the volume control's parameter address as MOD_SINGLE1_GAIN1940ALGNS1_ADDR. Then, every time you update the project, as long as you keep the cell's name the same, the new IC_1_PARAM.h file will have an updated address defined. Basically, you just need to keep updating the include file and all of your addresses will be updated automatically.
Hi BrettG.
thanks for the detailed explanation.
Another related question:
If I don't add any cell but I change some filter values and then I recompile the project, does SigmaStudio change everytime the I2C address of blocks?
What I'd do is to make a stable project structure, export parameter.h, and then recompile with Sigmastudio without adding any blocks and without upgrading address map.
It is surprising that in a cheaper DSP like ADAU1701 are present Interface Register with a fixed address but in ADAU1446 Interface Register are pratically useless due to the fact that they have no fixed address.
Thanks
Andrea
If you are not adding, deleting, or changing anything in your signal flow, then your parameter addresses should not change from one compilation to the next. Changing parameter data will not change the addressing of the parameters.
Please log in to reply.









