update README.md
parent
94b1f6c532
commit
b859235dfa
14
README.md
14
README.md
|
@ -1,5 +1,6 @@
|
|||
# Teensy 3.5 DDS Function Generator
|
||||
Using a Teensy 3.5 and the integrated DAC to generate arbitrary periodic waveforms<br>
|
||||
# Teensy 3.5 DDS Signal Generator
|
||||
Using the integrated DAC of a Teensy 3.5 to generate arbitrary periodic waveforms<br>
|
||||
This Signal Generator has been done as a project for my final High School Exam (Emanuele Coletta, ITIS Galileo Galilei Roma, a.s. 2020-2021) <br>
|
||||
|
||||
## How it works
|
||||
The [Teensy 3.5](https://www.pjrc.com/store/teensy35.html) is a powerful Arduino-compatible microcontroller running an ARM Cortex-M4 at 120 MHz<br>
|
||||
|
@ -11,13 +12,18 @@ Square waves of variable duty cycles can be generated by simply toggling a digit
|
|||
Despite both sine and square wave being output by the teensy are quite clean and seem to have low noise and spurs levels at naked eye, advanced filtering techniques, like Chebyshev, Butterworth or Bessel filters with multiple stages are required.
|
||||
The desired waveform, frequency and duty cycle can be selected using the I2C LCD Display and an incremental encoder with pushbutton
|
||||
|
||||
## Why two different microcontrollers
|
||||
Each and every clock cycle of the Teensy 3.5 is meticulously used to generate waveforms and have them to be precise in frequency over time. Therefore, no clock cycle can be wasted reading external input or driving the LCD Display. For this purpose, an AtMega32U4 handles the I2C LCD Display, the incremental encoder and the analog inputs from the output stage.
|
||||
|
||||
## Amplification and offset
|
||||
Sill WIP
|
||||
Amplification is done using an OpAmp inverting configuration. The non-inverting pin is wired to a voltage divider made with a potentiometer which varies between -12V and +12V to offset the wave.
|
||||
Using a peak detector the peak-to-peak voltage of the wave can be measured. The peak-to-peak and offset voltage of the wave are then remapped in the range 0-5V using an inverting OpAmp with a ratio of 1/5 whose non-inverting input is fixed at 2.5V. Those two signals are then fed back to an analogic input of the AtMega 32U4 to be shown on the LCD Display
|
||||
|
||||
|
||||
## Filters
|
||||
Still WIP
|
||||
Filters have been generated using [The Filter Wizard by Analog Devices](https://tools.analog.com/en/filterwizard/). <br>
|
||||
A 6th order Bessel low-pass filter has been choosen to smooth out the transitory of the square wave, due to their fast switching times <br>
|
||||
A 6th order Butterworth low-pass filter has been choosen to smooth out the wave generated by the DAC. <br>
|
||||
|
||||
|
||||
## Credits
|
||||
|
|
Loading…
Reference in New Issue