9 Replies Latest reply on Apr 28, 2016 2:16 PM by stonev

    AEC / DSP code on Wolfson audio card for Pi

    joacim

      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."

       

      Best Regards,

      Joacim

        • Re: AEC / DSP code on Wolfson audio card for Pi
          liamw9534

          Hi Joacim,


          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.


          Thanks,

          Liam.


          • Re: AEC / DSP code on Wolfson audio card for Pi
            chamuel

            Hi,

            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.

            Link: http://www.wolfsonmicro.com/support/wisce/

             

            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:

            Link: Configure the DSP with WISCE

            1 of 1 people found this helpful
              • Re: AEC / DSP code on Wolfson audio card for Pi
                Marki555

                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.

              • Re: AEC / DSP code on Wolfson audio card for Pi
                scottydj2

                Hi,

                 

                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.

                 

                Regards,

                 

                Scott

                  • Re: AEC / DSP code on Wolfson audio card for Pi
                    Marki555

                    Hi Scott,

                    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.

                    • Re: AEC / DSP code on Wolfson audio card for Pi
                      stonev

                      Are there any new informations about this problem now?