element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • 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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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
FPGA
  • Technologies
  • More
FPGA
Blog Audio processing on Arty-S7
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: manihatn
  • Date Created: 5 Aug 2022 8:08 AM Date Created
  • Views 1860 views
  • Likes 8 likes
  • Comments 0 comments
  • 7 Ways to Leave Your Spartan-6
  • fpga
  • spartan-7
  • Spartan_Migration
Related
Recommended

Audio processing on Arty-S7

manihatn
manihatn
5 Aug 2022

Introduction


As part of the 7 Ways to Leave Your Spartan-6 FPGA roadtest, I have been exploring sensors that can be connected to the Arty-S7 for audio applications. For the current project, I am focussing on the following sensors

  • Pmod I2S2 - Used to transmit and receive stereo audio signals through I2S protocol
    https://digilent.com/reference/pmod/pmodi2s2/start
  • Pmod Color - a color sensor module with the ability to sense red, green, blue and clear light.
    https://digilent.com/shop/pmod-color-color-sensor-module/
  • Pmod CDC1 - 12-bit capacitance-to-digital converter (CDC)
    https://digilent.com/reference/pmod/pmodcdc1/reference-manual

Top level block diagram (Final implementation):

You can find below the top level sketch for my final design that I am planning to implement. The design involves three main blocks

Proposed design

The actual hardware testbed will look like below

proposed setup with hardware

Audio interface block:

The main responsibility of the block is to receive the audio input from a audio source through the line in, and send the audio output to the output speaker through the line out. The Pmod I2S2 is the core member of the audio interface block.

Audio processing block:


The audio processing block can implement features to do audio synthesis (generation of new sounds) and audio effects (volume control, filtering, distortion, pitch effects, reverb). FPGA in the Arty-s7 board will form the central part of the audio processing system.

Audio control block:

The audio control block is responsible for controlling the functions of the audio processing block based on the sensor input (Pmod Color or Pmod CDC1).
In case of the Pmod Color, based on the colour sensed by the color sensor, decision can be made on how to control the audio processing block. Similarly, for Pmod CDC1, based on which of the two button are pressed, we can implement certain control on the audio processing block. The Pmod sensors by themselves are only capable of generating signals/data, these data needs to be interpreted (by the FPGA/Microblaze) based on certain thresholds (colour or capacitance) to finally control the audio block. This interpretation can be purely done inside the FPGA using hardware blocks or using software programs on Microblaze processor.

Top level block diagram (Current Simple implementation):

As you might have recognized from the above section, the design can become quite complex considering the design and verification aspects. In order to test Arty-s7 and the Pmod-I2S2, I implemented a simple design that was based on the example design from Digilent.

https://github.com/Digilent/Pmod-I2S2

Below is the top level sketch and the actual test setup.

current block diagram

current setup

A simplified form of the design (as a vivado IP) will be updated in the following area (tbd)

manihatn/fpga_projects: Place holder for fpga projects (github.com)

Audio interface block:

The audio input is received from a audio source (Moto G Mobile phone) through the line in, and send the audio output to the output speaker (SilverCrest SBL 3) through the line out. The Pmod I2S2 is the core member of the audio interface block.

Audio processing block:

For simplicity, the audio processing block implements volume control module. When the volume is high the design appears a simple audio pass-through and when the volume is low, the audio is muted. This is verified using sound level monitor app on Samsung S20 mobile

Audio control block:

The audio control block is implemented through the switches on the Arty-s7 board. When all the switches are low, the audio output is muted, when you set each of the switch to high, the volume gradually increases and finally reaches maximum volume when all the switches are turned high.

Demo:

You can find a short demonstration of the simplified audio processing on Arty-S7 below

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

More updates to follow hopefully soon.

  • Sign in to reply
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