Go Down

Topic: Arduino Due Audio Processing Project (Read 229 times) previous topic - next topic

hirschmensch

Oct 30, 2017, 10:55 pm Last Edit: Oct 30, 2017, 11:06 pm by hirschmensch
I know this has been done before, but I wanted to do it my way and really bare bone and efficient.
I am posting this here because I was searching for recources like these for months. Maybe this will be usefull to someone someday.

I created an audio codec shield for the Due and I am programming the SAM3X8E with a Segger J-Link debugger and the IAR Workbench. I coded all registers on my own and wrote all drivers for peripherals like the SSC controller, the TWI interface or analog/digital inputs. So this might be interesting for everbody who wants to really understand ARM Cortex M3 cores and especially the Atmel SAM3X microprocessor.

Here's the link to the git-hub page: Arduino-Due-DSP

Here's the readme as of today:
Code: [Select]

# Arduino-Due-DSP
The SAM3X8E on the Arduino Due board used as digital signal processor with help from a WM8731 audio codec chip.

## What I'm trying to accomplish
One stereo input signal filtered with a low-pass, band-pass and high-pass filter.
Adjustable gain on every filter.
Potentiometers to control gain.
A mute button.

## What I have accomplished
- Physical connection between Arduino Due board and the Wolfson WM8731 audio codec chip.
- Initital setup of the SAM3X8E processor.
- Provide a clock signal for the audio codec (from SAM3X8E).
- Configure the two wire interface (TWI) on the SAM3X8E to control the audio codec.
- Initialize the WM8731 audio codec.
- Configure the synchronous serial controller (SSC) on the SAM3X8E to send and receive audio from the audio codec as an I2S stream.
- Configure a digital input on the SAM3X8E to use a physical button as a mute button.
- Configure an analog input on the SAM3X8E to use a potentiometer to control filter gain.
- Four different infinite inpulse response (IIR) filters on each channel (LP, BP, HP and another LP on the mixed signal for noise reduction).
- This document.

## What I still need to accomplish
- Divide big library into separate smaller libraries.
- Find out how to put audio through at 0dB gain or attenuation.


I will add documentation as I go along... Attached is a picture of the prototype.

Cheers!

Go Up