Did you make any progress in this area? I've also just started looking into this area. I looked at the driver source code in wm5102.c and came to the conclusion that the AEC Loopback path setting is properly configured but the AEC enable bit is never set. Specifically, in wm5100.h, you can find the register map and the WM5100_AEC_LOOPBACK_ENA register is defined yet not used anywhere in the actual drive source code.
I also confirmed this by dumping the wm5102 registers from debugfs and can see that only the upper bits (i.e., source select) are modified through the ALSA driver.
Whether or not the DSP firmware actually does anything with the AEC observation path is another question, but the driver doesn't seem to support the feature fully yet.
Modifying the driver the to actually enable the observation path would be straightforward.
Has anybody already find out if it is possible to enable this AEC?
Or has someone tips for modifying the driver?
1 of 1 people found this helpful
I found a half solution for your problem.
"Please contact your local Wolfson representative for more details of the WISCE evaluation board control software."
You can download this WISCE software.
And the evaluation software WM5102EV1M.
With this software you can configure the whole DSP very easy.
Then you can generate a C code.
BUT I don't know how does the code comes the board. Normally is the board connected with USB, I2C or SPI.
The problem is the connection between the board and the PC.
I've already written to this forum, a better description of the problems can be found here:
I have tried the WISCE software and it only allows you to configure the EQ and LHPF filters and to generate their coefficients.
For the DSP it only allows you to upload a binary microcode. But that is done very easily just by writing to the WM5102 registers (either via the driver and SPI, or via i2c on the expansion header). Then you can route any signal though the DSP. The AEC loopback is only another signal path, which can route signal from any output back to the digital core (DSP, or EQ, ...)
The DSP comes empty (without any code) on the Wolfson card. I guess Wolfson sells some ready DSP microcodes (like AEC or wind/noise suppression), but you can program them yourself. However I don't know if the Programming Guide is available anywhere.
You don't need WISCE to load the DSP microcode. WISCE just helps you during development to load it repeately, but WISCE alone cannot develop the DSP microcode.
If you have the microcode (we don't have it and don't know how to get/develop it), you just write it to the WM5102 registers either via SPI or I2C. That is as simple as writing to other I2C devices like temperature sensors. No rocket science in this part
At the current time, the toolkit to develop code for the DSP is very expensive and requires various legal agreements to be in place.
We (Wolfson) are actively looking at ways to try and reduce this cost and to make the DSP more accessible to individuals.
I'm afraid that's the only info I have at the moment.
Thanks for the clarification. Also "software programming guide" referenced from WM5102 does fall under this expensive toolkit? I understand that the toolkit helps in developing professional and complicated effects in DSP for commercial use, maybe even access to pre-built effects.
One way of making the DSP more accessible would be to make just the programming guide available to the community, without any tools. Somewhat experienced DSP developer would need only instruction reference (mnemonics, binary representation, operand explanation) together with explanation of how is the DSP memory (program, coefficient, x/y data) is used. Then simple "compiler" could be made by the community.
Are there any new informations about this problem now?
Several years later ....... I hope that the assimilation of Wolfson into Cirrus didnt treat you too badly. Could you please cast your mind back and say what the final position was on programming tools for the DSP in the 5102. Many thanks
I have successfully compiled the Kernel and have the Wolfson audio card for Pi up and running. Took some time but I am quite happy with the audio quality.
Now, I would like to use the WM5102 with acoustic echo cancellation. According to the data sheet this can be enabled. Page 156, in the WM5102 documentation says:
"The WM5102 incorporates loopback signal path, which is ideally suited as a reference for Acoustic Echo Cancellation (AEC) processing. Any of the output signal paths may be selected as the AEC loopback source. When configured with suitable DSP firmware, the WM5102 can provide an integrated AEC capability."
My question is, does anyone know where "suitable DSP firmware" can be found and where/how it is possible to write code for the DSP?
I assume page 108 in the data sheet is a hint on that this must be licensed separately , it says:
"Note that the WISCETM evaluation board control software provides support for easy loading of Program, Coefficient and Data content onto the WM5102. Please contact your local Wolfson representative for more details of the WISCETM evaluation board control software."