Hello,
I recently installed Audio Weaver 6.17.B01 STMicro and wanted to create a simple program which uses the FIR filter module available in the software.
The module seems to be working fine with coefficients up to 127 for two channel filtering. If I try to introduce more than that the output signal becomes distorted. For a single channel filtering the maximum number of coefficients is 255.
Taking a look at the hardware status from the Server window it seems that if I increase the number of coefficients over 127 for dual channel and 255 for single channel, I go over 50% CPU usage and that breaks the signal.
Changing the sampling rate of the signal does not seem to make any difference.
I checked the frequency response of the designed filters and they seem to be fine.
Is there something I am missing. It seems although the board does not run at full potential still fails to deliver the desired output?
10:18am
Hi Tiberiu,
We are able to reproduce what you see and we are looking into it.
-Axel
4:12pm
Hello Tiberiu,
The CPU load profiling shown by the Audio Weaver Server includes only the time to process the audio block and does not include processing of IO or IRQs. Hearing distortion in your audio signal at a reported 50% CPU load means that the processing of the audio pump is consuming half of the CPU capacity, and the other half is being consumed by IO and IRQs.
In the case of the STM32F407 USB audio input, a proprietary Asynchronous Sample Rate Converter (ASRC) is applied in order to avoid audio artifacts caused by clock drift between the USB stream and the internal CODEC. This ASRC is necessary but expensive from a performance standpoint.
The STM32F407 also has a microphone on board. This microphone has a separate interface and therefore a separate clock, so there is a second ASRC applied to the microphone input for the same reason as the USB audio input. However, if you don't intend to use the microphone input, you can remove the ENABLE_MIC compile option in the EWARM project included in the BSP. Rebuilding the project with the IAR Workbench toolchain will remove the ASRC from the microphone input and you will eliminate about half of the IO processing. Without microphone enabled, I got to about 73% CPU load before hearing distorted audio.
Please let us know if you have more questions about this.
Good luck, and thanks for your question,
-Axel
7:35am
Hi Axel,
Thank you for the quick response. It does makes sense now. I will try and remove the microphone input.
Thank you very much.
Kind regards,
Tiberiu