We are using ADSP 21489 . In order to minimize the latency ( measured between Analog In and Analog Out ). The processor buffer size was tried to reduce from 64 -> 32 -> 24 ...etc When
the dsp readback module is working ( e.g. read 50 times per second ) , it creates "click" noise from buffer size 32 or smaller. The average MIPS of schematic at that moment is only around
Here below are my questions :
1. It seems that the Readback module will use a lot of MIPS, it is not very suitable to be used. We checked that the schematic itself can run properly ( no readback module active ) and consume 300MHz. Once readback is activated ( e.g. read 50 times per second ) , there is "click" noise even schematic is only used 230MHz. It is not very really make sense. Is that normal ?
2. Is there any way instead of using readback module , it can read signal level in more efficient way ?
Please find our reply on your queries,
Ans 1: Yes the behavior is expected one, here are the reasons
> Readback modules uses SPI interface to read actual signal in the buffer and transfer it to Sigmastudio host(PC) GUI. SPI ISR is running with highest priority for the SigmaStudio communication. If you go for continuous read then the SPI ISR takes lots of MIPS for SigmaStudio communication. The DSP readback module meant for debugging purpose if your are using it for continuous read then MIPS issue will be there.
> Reducing buffer size also increase MIPS consumption to I/O SPORT ISR. If you are using both reduced buffer size and continuous readback the MIPS consumption will go high, so that MIPS is not enough to process SigmaStudio schematic. we need to modify the framework buffer size and schematic for smooth audio processing.
Ans 2: You can use "level detectors" for checking signal level instead of continuous readback module.
For using "level detector" ( Signal Level Detector ) instead of dsp readback module, I have tested again in 21489 EVB ( with buffer set to 16) there is no obvious improvement . The "click" noise is still there. Once I turn off the Signal Level Detector , the noise will be gone. The only different is I cannot see the data exchange in capture window of SigmaStudio as what I can see when I turn on the continuous read function in dsp readback module.
As we need to implement several signal level meter in host processor side to indicate the real time signal level at different points of schematic, it is unavoidable to continuously read data from DSP. Now it seems it is not workable to use the standard modules ( either readback module or signal level detector ) if we also need to keep the buffer size as low as possible.
Is there still other way to achieve our requirement ? Thanks