ece3551_Final_Report

ece3551_Final_Report - FLORIDA INSTITUTE OF TECHNOLOGY...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
FLORIDA INSTITUTE OF TECHNOLOGY Final Project:Loop Board ECE 3551 Microcomputer Systems I Brian Robl 12/06/10
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Problem Statement For my ECE3551 final project, I created a four track audio looping board using the BF533 Blackfin processor. The programming language that I used was C. I used the SDRAM to record onto and I partitioned it into 4 sections in order to have four separate tracks. The push buttons are used to toggle recording on and off. Also, the LEDs represent when recording is enabled by turning on and when recording is disabled by turning off. Each individual track is outputted from a separate channel of outputs for INTERNAL_DAC 0 and 1. Review of Solutions Before starting this project, I have always wanted a loop pedal to use for my instruments when creating songs. Looping tracks allows for easier song writing, because you can hear the previously recorded tracks looping over and over again while thinking of new ideas to add to the song. When I looked at the specifications for the BF533 Blackfin EZ-KIT, I knew I was able to create this fairly easily. I decided to use the built in external SDRAM to write the input data to. In order to allow for four different looping tracks, I partitioned the SDRAM into four different partitions. Before doing this is initialized the SDRAM to a capacity of 32MB. This is enough memory for each track to have about a minute of record time, which is more than enough. For recording the actual data, I set start and end address for each partition. I had a pointer that stored each sample and was then incremented. If the pointer reached the end address for the partition, it was reset to the start address. Also, whenever recording was enabled by a push button, the recording pointer's last recording address was set to the begin address for playback. This ensured that the correct recording was played during playback loop. During recording, the Process_Data() function was used to playback what was being recorded in real-time, so the user can hear themselves from the output while playing. During playback of recorded data, a pointer that was set to the start address of the recording was set to the output variable iChannelXOut and incremented. If the playback pointer exceeded the recording end address, then it was set back to the beginning address of the recording. This was what caused the looping effect.
Background image of page 2
Solutions in Detail Initialization The most important component for this project was the utilization of the SDRAM. This
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 8

ece3551_Final_Report - FLORIDA INSTITUTE OF TECHNOLOGY...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online