ADAU1452 w/ Product Calibration & Control
I've read through a lot of material on system implementation for ADAU1452 with uProc and am designing my system schematics.
For my product, each unit needs to be custom calibrated with different FIR coefficients. I need to disable some processing blocks in SigmaStudio while I make the filters and then recompile once the filters are in place. Since I'm recompiling for every unit, even-though I'm only changing the FIR coefficients, I still believe this means the register addresses my uProc would potentially write to for user control will change. Is this true?
If so, I probably need to attach my single encoder UI and control my codec (I learned this is possible in another thread...) via I2C from the ADAU1452. I'm using an XMOS for USB audio streaming along with the ADAU1452 and initially wanted to just program & control the DSP from the XMOS uProc, however I'm not sure I can/should because of what I highlighted above.
Audio Signal Processors
adau1452
adau1452 sigmastudio
sigmastudio
SigmaDSP Audio Processors
Hello RitchRock,
This has been an issue for a while and we finally came up with a solution to the problem. We now have an Indirect Parameter Access Table function. This works similar to the safeload function in that the parameters you select to be in the table will always reside at this table address. When you compile the project SigmaStudio will keep track of where the actual parameter is located in memory. So all you have to do is write to this table and then trigger the write. Then the DSP program will pick up this data and load it into the proper location. Your program does not need to know where it actually is in the DSP program. You can write and read.
This is still a new feature and I am also learning about it. There is information on the Wiki page:
https://wiki.analog.com/resources/tools-software/sigmastudio/usingsigmastudio/indirectparamaccess
Thanks,
Dave T
Dave,
Very helpful reply - thank you. I will investigate further, but will most likely go this route.
Regards,
Colin R
Hello Dave:
I have been trying to learn / use this feature in a product that uses the ADAU1452, but the "Indirect Parameter Access Table" entry on the chip's context menu does not appear. Does the function depend on self-boot memory or some other resource that might not be available in our product?
Thanks!
Jim T
Hello Jim T
What version of SigmaStudio are you using?
With older programs you have to make some changes. For legacy reasons (and there may also be some programming reasons) if you are using an older program it will not be in the ADAU1452 GUI definition. So go to the hardware tab and then the config sub tab. Add a new ADAU1452 processor into the schematic. This will most likely be called IC2. Then you need to change ALL the cells in your project to be pointed to this new IC2.
This is almost really easy to do. Unfortunately you cannot simply change the input and output cells to a different IC. All the other cells you can right-click on and you will see a menu item to "Change IC".
So what I do is drag in the IO elements into the schematic and set them next to the IC1 IO elements. ( Make sure to grab these from IC2 in the Toolbox library.
You can then set them to the same channel numbers or AUX ADC number etc. Then cut the wires from the old IC1 IO elements.
Then select ALL the cells and right click and change the IC to IC2 on all the cells at one time.
Now you will be able to connect the new IO cells to the program cells. You will note that the wires will be a different color.
At this point delete the old IO cells.
Now you should be able to go back to the config screen and delete the original IC1.
The new IC2 will now have the menu item listed. It will be greyed out until you compile the program for the first time.
This is not all that difficult to do but it is a little difficult to explain in writing...
Dave T
Hi Dave:
Thanks! Although we are using the latest version of Sigma Studio, the specific program we are using has been in development for around 22 months. Apparently the ADAU1452 GUI definition was the old one being dragged along with the development, because as soon as I added a second ADAU1452 to the hardware tab the Indirect Parameter option appeared!
Because there are a few changes needed anyway, I will probably just rebuild the project from scratch, but thanks so much for the information -- makes my life much easier!
Best!
Jim T
Hello Jim T,
In the project there is info that we can read to see that it is an older project. It is my understanding that the programmers chose to not automatically change the definition over to the new one so that the old project would compile the same way. We felt that it would cause issues with people calling up an old project, changing a few parameters, then recompiling and finding their embedded code for their uC no longer works. So we made it to where you had to update the part definition. I will give some feedback to see if there is a smoother way to do this.
Dave T
Please log in to reply.