Hi everyone,
I'm working on designing a synthesizer for my Verilog class final project. I am using a Nexys4 DDR FPGA board and I am writing the code in Verilog using Vivado 2018.2. I made a PowerPoint to list the requirements of the project, so I've attached it in case it helps give an idea of what I'm going for. I also included the datasheets of some of the parts I might use.
The synth will have the following features:
I want to prioritize certain features before doing anything else. The order of development will be as follows:
The part I'm having trouble designing is the output. It is a digital wave, so I will need to convert it to analog if I want a true sine wave sound. If I output to a speaker, then I would like to use a DAC to generate a sine wave approximation instead of just PDM/PWM. I recently bought some MX7224KN+ DAC's for this purpose (datasheet attached). I also bought a dozen LM358N op-amps (datasheet also attached).
I own a TAS-475 oscilloscope and a cheap multi-meter, so debugging should be a lot easier with these.
Anyway, I guess my specific questions are:
My apologies for the wall of text . I'm still rather new to electronics, so I'm sorry if these are really basic questions with obvious answers. I really appreciate you guys taking time out of your day to read this and help a newbie
Thanks!
I'm working on designing a synthesizer for my Verilog class final project. I am using a Nexys4 DDR FPGA board and I am writing the code in Verilog using Vivado 2018.2. I made a PowerPoint to list the requirements of the project, so I've attached it in case it helps give an idea of what I'm going for. I also included the datasheets of some of the parts I might use.
The synth will have the following features:
- Two oscillators that can be controlled with the buttons on the board and output their sum to 8 digital pins (using 8 bits to define the wave). It will have options for a sine wave, square wave, and sawtooth.
- An amplifier that will control attack and release (might add sustain and delay later if I have time). This will take an input from the digital pins and output to another set of digital pins
- A filter that will have options for a Low-pass or High-pass filter, as well as a control for cutoff frequency. Again, it will have 8 pins for digital input and output to 8 digital pins
- The output will be sent to a small speaker ( this one to be exact, part no. WSP-5708, datasheet attached) through the digital pins
I want to prioritize certain features before doing anything else. The order of development will be as follows:
- Generate an 8-bit sine wave with variable frequency (changed via parameters for now, eventually controlled by buttons) to output to the board's LEDs for testing purposes. I will use a lookup table that I made to accomplish this. The wave will consist of 1024 points containing values from 0 to 255.
- Generate a second wave with an independently controlled frequency and add it to the first wave
- Add an amplifier that outputs the wave when a key is pressed, and stops outputting when the key is released
- Use the bottom 2 rows of keys (more details in the PPT) on my USB keyboard to control the amplifier and function as a sort of MIDI device (not actually MIDI; the board takes a USB signal and converts it to PS2). The keys will play different pitches through one octave.
- Add a low-pass filter and high-pass filter
The part I'm having trouble designing is the output. It is a digital wave, so I will need to convert it to analog if I want a true sine wave sound. If I output to a speaker, then I would like to use a DAC to generate a sine wave approximation instead of just PDM/PWM. I recently bought some MX7224KN+ DAC's for this purpose (datasheet attached). I also bought a dozen LM358N op-amps (datasheet also attached).
I own a TAS-475 oscilloscope and a cheap multi-meter, so debugging should be a lot easier with these.
Anyway, I guess my specific questions are:
- How do I add the waves to produce more complex tones? I want the same effect as a synthesizer with two oscillators. Would it be easier to have 2 separate outputs, 1 for each speaker, and have them simply add naturally? Or would this defeat the purpose of having a filter, as it wouldn't filter out the beat frequencies produced from the 2 oscillators?
- How do I remove the DC offset from the output? Is it even necessary? The output is from digital pins, and even if it is sent through a DAC it will have a minimum of 0 volts. From my understanding, speakers can be burnt out with DC-biased inputs.
- The speakers are rated for 3.0 watts (max of 4.0), so should I use an op-amp to amplify the signal using another power source?
My apologies for the wall of text . I'm still rather new to electronics, so I'm sorry if these are really basic questions with obvious answers. I really appreciate you guys taking time out of your day to read this and help a newbie
Thanks!
Attachments
-
336.2 KB Views: 1
-
322.1 KB Views: 1
-
7.6 MB Views: 0
-
273.3 KB Views: 1