INTRO TO DESIGN AND PROFESSIONAL PRACTICE

113 views 8:19 am 0 Comments April 28, 2023
July 18, 2011 ENB245: INTRO TO DESIGN AND PROFESSIONAL PRACTICE

Revised by Mark Broadmeadow 1
Assignment 3: Digital Voice Recorder – Software
This project is to be completed in groups of three.
Task
Your task is to implement the software required to use a Teensy development board as
a digital voice recorder. Some of the software has already been written for you;
namely, the code required to sample the ADC and record to an interfaced EEPROM
and the code required to read stored samples from the EEPROM. You must complete
the software by implementing the user interface (recording and playback control via
the buttons and LEDs) as well as the playback functionality (output samples using
PWM). The function for the buttons and LEDs is outlined below.
Button 1: Record – Begins recording. If the record button is held on beyond the
maximum recording time a new record cycle should not be initiated until the button is
released and then pressed again. Playback functionality should be disabled during
recording. LED 1 should be on while recording.
Button 2: Play – Begins playback of any recorded audio. If the playback button is
held on, playback should loop to the beginning of the recording and continue to play
until the play button is released. Record functionality should be disabled during
playback. LED 2 should be on while playing.
Button 3: Stop – Stops immediately any current playback or recording. LED 3 should
be on while stopped.
Resources
You will be provided with a development board to interface the Teensy MCU board
with an EEPROM for storing the recorded audio, pushbuttons and LEDs for user
interaction and the I/O from analogue conditioning circuitry. You will additionally
have access during tutorials to a test platform which provides analogue input and
output circuitry for testing the functionality of your code.
You will also be provided with a skeleton program and support library written in
assembly which you can use as a starting point for your voice recorder code. Modules
will be provided for the record operation as well as the reading and writing of the
EEPROM. If you wish you may replace or modify these modules with your own code
if you wish to add additional functionality.
Data and user guides for the Teensy development board can be found online
(
www.pjrc.com/teensy/). Datasheets for the microcontroller used on this board can be
found at the Atmel website (
www.atmel.com/). It is recommended that you use AVR
Studio for your development environment. AVR Studio can be downloaded freely
from the Atmel website. To program the Teensy board you will additionally need to
download the Teensy Loader program which is available at the Teensy website.

July 18, 2011 ENB245: INTRO TO DESIGN AND PROFESSIONAL PRACTICE

Revised by Mark Broadmeadow 2
Assessment
Report
Due: End of Week 12
You are required to submit a brief report with the following content. Indicated page
limits are
strict limits. Please ensure you follow the report format guidelines available
on Blackboard. Each group should upload a copy of their report to Blackboard along
with a zipped copy of their assembly code. Detailed assessment criteria are available
on Blackboard.
a) A short description of your solution including the major design decisions that
you made and why you made these decisions (e.g. PWM frequency, interrupts
vs. busy wait). Maximum two pages.
b) A description of the testing that you undertook to confirm that your design
worked correctly and sensibly. You should include a plot of output waveforms
captured from an oscilloscope. Maximum two pages.
c) A bibliography of your key reference materials. Maximum one page.
Demonstration
Due: Week 13 (TBD)
You will need to demonstrate your circuit working in the laboratory. This
demonstration will occur in the final week. If you wish, you may interface your
analogue conditioning circuitry from assignment 2 with the Teensy running your code
from assignment 3 and demonstrate both projects together. This is not a requirement,
however, and you may instead use one of the test platforms to demonstrate your
working code. You will also need to answer some questions about the assignment.
Detailed assessment criteria are available on Blackboard.
(Original assignment devised by Neil Bergmann)