Wednesday, February 20, 2008

Progress Update

Here is an update to the progress of our project, based on a timeline created early in the quarter, tasks marked DONE have been completed, any other notes will be in bold type.

First:
-Finish DAC and verify sound DONE
-Verify Serial Output of flash and verify read from it DONE USING PARALLEL OUTPUT
-Find out how to Program flash DONE AND PROGRAMMED


Second (Requires completion of first):
-verify transmission from flash memory to DAC DONE
-Figure out how to playback a music file, from flash to DAC
-includes determining sample rate BOTH DONE

Third:
-Optical Encoder integration
-Determine standard speed of O.E. at 33 1/3 RPM DONE
-Determine rotating wheel size and build wheel BUILD IN PROGRESS
-(CODE ALREADY NEAR COMPLETION) develop interrupt driven code for speed and direction, combine this with playback code CODE COMPLETE AND TESTING IN PROGRESS
*WHEN ABOVE IS COMPLETE AND TESTED, BASIC FUNCTIONALITY IS COMPLETE

Fourth:
-Implement start playback, stop playback, and reset playback (should be relatively simple assuming tasks above are complete)

Fifth (time permitting):
-Implement multiple song functionality, may be equipment prohibitive due to small size of flash memory likely to be thrown out

In addition to all of this, we have been working on determining how the overall system will be powered and possible solutions to getting 3v and 10v from a PC power supply that provides 5v and 12v. We will likely end up using a basic non-inverting op-amp circuit as we cannot determine the system's total current draw, making it difficult to determine resistor values. Also in progress is the design and construction of a box to put the system in and to mount the power and reset switches to, along with a mount that will suspend the optical encoder above the record player.

I forgot my digital camera last lab session, so I don't have video or pictures of the working prototype music player, but here is an image of the flash memory and DAC set up, (5) 4-bit counters are being used to sequentially (increasing or decreasing) address the 19 address bits in our 4MBit memory (512Kb):

Photobucket

Photobucket

The song programmed into the memory is currently Aesop Rock's "Dinner With Blockhead," from the Float album (chosen mainly because it's ~47 seconds, the maximum length we could fit using an uncompressed 8-bit, mono, 11025Hz sample rate wav file.

More updates to follow.

Thursday, February 7, 2008

No updates for quite awhile, but it seems appropriate now as considerable progress has been made.

The following details the (hopefully) near-final implementation of the DAC/microcontroller interface.

first, the connection of only 6 data bits (will be using at least 8), in order to test the new DAC's functionality:

First, an image of the messy testing setup I am using (courtesy of UCI's MSTB 222 lab):

Photobucket

Next, a detail of the microcontroller/DAC connections. Note that I am only using the 6 most significant bits for transfer to the up-to 12-bit DAC. It's only because my connections didn't fit together, this will be resolved soon. Here's the picture:

Photobucket

Third, this is an image of what a low resolution, 1000Hz sine wave looks like when displayed on a digital oscilloscope. I would say here that a picture is worth only a few words, but the output from the speaker was music to my ears. Again, here's the picture:

Photobucket

and finally, a video of the microcontroller/DAC combo in action. As the youtube details state, the output from the connected speaker is pretty hard to hear due to the digital camera's microphone capabilities. The noise in the background of the video, which appears as more of a buzzing background noise, is actually a 6000Hz sample rate, 8-bit/sample 1KHz pure sine wave being played through the speaker, based on a .wav file generated by the NCH Tone Generator (a demo program I'm currently using). Here's the video, all 9 seconds of it: