Digital Guitar Recorder

advertisement

Digital Guitar Recorder

Team RAD –

Michael McGuirk David Wormus

Fish Abrhaley Nick Herrera

Primary Project Objectives

• Record analog guitar waveform to

Compact Flash solid state memory

• Add Fuzz, Octave, and Tremolo effects

• Utilize Xilinx XCV1000 FPGA for processing needs and control of peripheral logic

• Ability to store multiple track files, files stored in WAV format

Analog Guitar to Digital Data

• Guitar Input is 0 to 1V p-p, average 200 mVp-p

• Then 3 effects in series, with bypass switches

• Next, Negative

Feedback OpAmp gain of 3

• A/D is expecting 3V logical high, 0V low and is controlled by main controller

• 8-bit data passed to

FIFO and WAV formatter

Distortion

Distortion Effect

• Signal is clipped from both the top and bottom, effectively adding higher frequency harmonics.

• The two voltage levels at which the signal is clipped are fixed. To increase distortion, the input signal is amplified, leading to more distortion but also to higher volume (increased RMS value).

Octave Up

Octave effects

• The input signal is first passed through a full wave rectifier creating the following signal

• Lowpass filter to

“smooth out” sharp edges, effectively creating DC-biased sinusoid

• High-pass filter with cutoff frequency < 80

Hz eliminating the DCbias of the signal

Tremolo

A/D Converter

Compact Flash Controller

• Reads 8-bit parallel data from

A/D converter from FIFO

• Adds WAV file header to data

• Reads File Format Boot Sector and writes data into FAT16 file structure

• Performs read and write transaction to and from CF card conforming to timing and electrical specification.

WAV File Format

Header contents of WAV file.

Number of bytes recorded needs to be counted and added to first 40 bytes of file cluster.

FAT 16 File System

Memory structure of a FAT16 volume

Partition Boot Sector Description

FAT - File Allocation Table - Identifies each cluster on disk as:

• Unused

• In use by file

• Bad cluster

• Last cluster in a file

Compact Flash Control

Control line descriptions of Compact Flash read and write for 8-bit memory and register access

Compact Flash Memory

Transaction Timing

Common Memory Write

Common Memory Read

Main Controller

• Receives and issues control signals to all functional blocks

• Accepts input from user interface

• Implemented using soft processor core or

VHDL

Inside the FPGA

• Implemented using VHDL in Xilinx ISE

5.1i

FPGA Pinouts

Top Level

• Ties together all submodules

• ADC/DAC, LCD, Flash and main controllers

• Recording and Playback FIFO’s

• Clock divider and debounce modules

ADC Controller

ADC Controller Logic

ADC Controller/FIFO Simulation

Main Controller

• Simple state machine

• Init, Record, stop record, play, stop play and change track

• Handles all handshaking between modules

Controller Signals

Controller Logic

Controller Simulation

Recording/Playback FIFO’s

• Used Xilinx Asynchronous FIFO Core

• Acts as buffer between clock domains

• Customized using Xilinx Core Generator

• Utilizes Virtex Block Memory

• CoreGen Outputs an EDIF Netlist

Core Generator GUI

Asynchronous FIFO Logic

LCD Controller

• State Machine handles writing to LCD based on inputs from controller

LCD Module Pin Assignments

PIN # PIN Description

1 Vss Power Supply Neg

2 Vcc Power Supply Pos

3 V L Contrast Adjust

Input

Ground

+ 3.3V

N.C.

4 RS H:when reading/writing from FPGA

L:when initializing H (3.3V) during op

5 R/W H: Data Read from LCD Ground

L: Data Write to LCD for Writing

6 E Chip Enable H (+3.3V)

7 DB0 Data bus line 0 (LSB) Write Data and Initilization

8 DB1 Data bus line 1 Write Data and Initilization

9 DB2 Data bus line 2 Write Data and Initilization

10 DB3 Data bus line 3

11 DB4 Data bus line 4

12 DB5 Data bus line 5

Write Data and Initilization

Write Data and Initilization

Write Data and Initilization

13 DB6 Data bus line 6 Write Data and Initilization

14 DB7 Data bus line 7 (MSB) Write Data and Initilization

Module is a PCB with 14 pin-holes for soldering leads on one side, and the LCD screen on the other

LCD Addressing & Initialization

• Displaying Characters on 2x8:

• Controller sets RS (pin 4) HI and put hex on data pins

Character Position(dec)--> 00 01 02 03 04 05 06 07

Row 0 DDRAM Address (hex)-->

Row 1 DDRAM Address (hex) -->

00h

08h

01h

09h

02h

0A

03h

0B

04h

0C

05h

0D

06h

0E

07h

0F

• Initializing the LCD Module

• With RS = LOW, HI/LOW on different data pins can change things like cursor position and blink on/off, and set up an 8-bit interface.

User Interface/LCD

• 5-way button for

Record, Play,Stop, Track

Select, ON/OFF

• 8x2 character LCD displays current mode

(play etc.) and track numbers.

• LCD controller is on

FPGA written in VHDL

Digital Playback and Analog

Output

• Data is buffered from

FIFO into D/A during playback off of C.F.

• Simultaneous output from guitar  out and

D/A  out.

• Audio amplifier is transistor based, have not researched yet.

DAC AD5330 TSSOP

High-level Project

Implementation

Schedule

Milestones

• Milestone 1 - 3/16/04

• ADC to FIFO to DAC

• Compact Flash Write and

Read on Hardware

• Compact Flash Controller

Simulated

• LCD Controller Simulated

• Analog effects built and tested

• Milestone 2 – 4/6/04

• All system modules coded/built to test and debug stage

BOM

Parts and Cost

Parts name

Compact flash (16Mbyte)

Compact flash Printed circuit board

Operational amplifiers

Assorted Transistors & Resistors

DAC ( sample)

ADC (sample)

Compact flash connector

DAC SSOP (pcb)

LCD

Perforated Proto board

Price

$0( donated)

$40.00

$0.50

$10.00

$0

$0.00

$8.00

$10.00

$11.00

$11.00

quantity total cost

2 $0.00

1 $40.00

5 $2.50

$10.00

1 $0.00

$0.00

1 $8.00

1 $10.00

1 $11.00

1 $11.00

$92.50

QUESTIONS

A Team Rad Production

Download