ADAU1445/1446 flexible routing matrix
Hello to all,
in my design i have a ADAU1442 and up to 3 AD1938 can be connected. I have to design a multiroom application and want to equalize every Output channel. I make a design to switch every input channel to every output channel. I used the MUX unit to do this, because the FARM could not do this job for me...!? Right? I think the FARM can Switch any Output channel but not the input stream of the DSP. The Design for all Input and all Output Channels is a lot of data. In the DSP Ressource Monitor shows me 1272 Instructions used.But the Interface will copy 7632 Bytes of Program Data. The Design won't work with this compilation. When i delete a lot of Filter and compile the design again it works. I dont understand how i will use the 3k of instructions. In my design not more than 700 will work savely.
Where is the mistake?
And is there a way to use the FARM for this application. Without change the Outputs. (if i change the outputs the equalizer coefficents will be wrong because they are coppled with the room and not with the source.) My Equ consists of 5 IIR Filter blocks in Series.
Thank you very much!
Moritz Bente
Audio Signal Processors
ad1938
adau1442
Integrated/Special Purpose A/D Converters
SigmaDSP Audio Processors
Audio CODECs
Show More
Hello Moritz,
You have several questions in your post so I'll try to answer them in order. Let's start by talking about the audio routing. First, I need a little more information. How many input channels and how many output channels do you have?
It's true that you cannot route audio on the input side of FARM. However, you can freely route that audio to any ASRC. So, if you have 16 channels or less, and the data comes in pairs, you can actually use the ASRCs as a way to route the audio data in hardware instead of in software.
If you have over 16 input channels or if the audio is not routed in pairs, then you will have to use an input multiplexer, which could be expensive in terms of DSP resources.
I'm not sure that the DSP Resources window is working properly in the current version of SigmaStudio. A much more reliable indicator of the DSP resource usage is the Output window, which can be displayed by pressing Ctrl+4, or by selecting it from the View menu. After compilation, you should see something like this:
Sigma Studio Version 3.3. Build 0, Rev 594 Analog Devices Compiler for the 3rd generation SigmaDSP core.
Build date = 12/1/2010 at 12:53 PM ## Summary ## Instructions used:
323 (out of a possible 4096 )
Modulo Data RAM used (X Memory):
117 (out of a possible 8192 )
Non Modulo Data RAM used (X Memory):
0 (out of a possible 8192 )
Parameter RAM used (Y Memory):
57 (out of a possible 4096 )
Please post this information here so we can see what might be going wrong in your project.
Hello!
Thank you very much for your explanation.
Analog Devices Compiler for the 3rd generation SigmaDSP core.
Build date = 2/16/2010 at 10:03 AM
## Summary ##
Instructions used:
1272 (out of a possible 4096 )
Modulo Data RAM used (X Memory):
572 (out of a possible 8192 )
Non Modulo Data RAM used (X Memory):
24 (out of a possible 8192 )
Parameter RAM used (Y Memory):
277 (out of a possible 4096 )
This is my Output window. In this Case the USBi Interface wrote 7632 Bytes of Program Data into the DSP. This Programm won't work safely. The Outputs will swing and have a very high THD.
Sigma Studio will compile much bigger designs and save it into the DSP. could it be? There a only 8192 Bytes of Program Data available...!?
The Output window shows me that i could make much more complex designs but i think there is not enough Memory to save the data.
Perhaps i have to bring the compiler in "release mode" or anything else?
The way throug the ASRC is a way. But i thougt about to replace the 1442 against an 1445 or 1446 because of the power consumption...
Thank you very much
Greets Moritz Bente
Okay thanks,... I still don't know why a small program work fine and a large program don't. If you want i can send you a programm that don't work after compile and downloading...
Thanks!
Moritz Bente
The numbers shown in the output window are words of memory, not bytes. Please see page 64 of the ADAU144x datasheet for the length of the different words in RAM. The capture window shows the total number of bytes that are written for each write, but you should divide those numbers by the appropriate word length to get the total number of words that are written in each transaction.
You shouldn't necessarily be choosing which ADAU144x version you are using based on power consumption. The difference in power between the three of these parts is almost completely determined by the use of the sample rate converters. You should select which version has the appropriate number of sample rate converters and supported clock domains for your application and use that IC.
Please log in to reply.