element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum AEC / DSP code on Wolfson audio card for Pi
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 10 replies
  • Answers 1 answer
  • Subscribers 676 subscribers
  • Views 2399 views
  • Users 0 members are here
  • wolfson
  • raspberry
  • pi
  • aec
  • raspberry_pi
  • raspeberry_pi_accessories
Related

AEC / DSP code on Wolfson audio card for Pi

Former Member
Former Member over 11 years ago

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

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 11 years ago

    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.


    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Former Member

    Has anybody already find out if it is possible to enable this AEC?

    Or has someone tips for modifying the driver?

     

    Best regards,

    Joost

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago

    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

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Marki555
    0 Marki555 over 11 years ago in reply to Former Member

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Marki555

    Marki555

    Sorry, I don't understand really...

    How could you load the binary microcode from the Wisce to the Soundcard ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Marki555
    0 Marki555 over 11 years ago in reply to Former Member

    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 image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago

    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

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Marki555
    0 Marki555 over 11 years ago in reply to Former Member

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago in reply to Former Member

    Are there any new informations about this problem now?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • psyj
    0 psyj over 8 years ago in reply to Former Member

    Scott,

     

    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

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube