- Read the policy page.

This is the implicit contract you are agreeing to by taking the course. - Further reading for lab 1 is at Reading assignments and includes

Reference Manual sections 12, 14, 15

PIC32 Peripheral Libraries for MPLAB C32 Compiler sections 10, 11, 12 - Read all of Lab 1.
- From the PIC32 data sheet:

What is the maximum current you can draw from any i/o pin?

What is the maximum current you can source from the sum of all pins. - Estimate the Thevinin equvalent output resistance of an i/o pin from the
PIC32 data sheet. Use table 29-9.

There will be**two separate estimates**corresponding to whether the output is logic-high or logic-low.

Standard musical note frequencies vary over a large range of frequencies, but we will use the range C4 to C6:

- The just-noticable-difference for frequency is about 0.1% to 0.6% of the nominal note frequency,

depending on frequency, loudness, spectral purity, note timing, and the listener's training.

We are going to set the frequency accuracy requirement to about 0.5% because it is hard to

measure much better than that using our oscilloscopes. - For every fundamental frequency generated, all spurous frequencies must be lower

than -20 db from the amplitude of the fundmental. This distortion requirement sets a lower bound

on the synthesis sample rate (see question 1 below), but we will specify the standard audio rate of

44 KHz as the synthesis sample rate for all audio produced. - To surpress broadband noise (
*clicks*), every sound produced must have an amplitude rise/fall time long

compared to 1 period of the fundamental. I suggest a linear rise from zero amplitude to full amplitude,

flat sustain, and linear fall back to zero amplitude. (see Fig 1.18) - Pure sine waves are boring to listen to, so you are required in lab 1 to use additive or FM synthesis to make more

interesting sounds.

- what minimum DDS sample frequency is required, based on the above specs?

You will choose ONE DDS sample frequency for all tones produced.

A matlab program which computes spectrum versus number of samples/cycle.

When you run the program, notice that the first large spectral errors are at approximately

first_error_frequency = steps_per_cycle * frequency - frequency

Program output examples: 8 samples/cycle, 16 samples/cycle - Should you add a low pass filter to the DAC output? If so, what cutoff frequency?
- How accurate is the internal PIC32 oscillator? Does it meet the frequency accuracy spec?
- What kind of amplitude modulation will you use and why. Linear ramp? Cosine? Exponential? Hanning?

A matlab program computes spectrum for different envelopes. Listen to the resulting waveforms.

August 27, 2019