
Work by Adafruit forum members MartinL2 and BDL has provided great work on generating variable frequency sine waves on the digital to analog converter (DAC) on Adafruit Feather M0 (Microchip SAMD21 based) microcontroller boards.
I’m trying to make a (dynamic) swept sine generator to test an analog filter response. I’d like to stop DMA, load in a new frequency table, and restart DMA using the new (updated) table. Initially I’ll use + and – from the console to control the frequency, but later I will make a linear sweep.
Following up on this thread. I have modified MartinL2’s code to perform either a chirp or or a swept sine wave with “constant power” per frequency. The former is easier to see on a scope, but does not have constant power per frequency. This is true because each frequency (single cycle of a sine wave) is shorter and shorter as the frequency increases. If one observes this on an FFT, one sees the power per bin decreases as the frequency increases. The constant power mode emits a frequency for a unit time before changing. In this way the power as observed by an FFT should be constant. This mode is useful for characterizing filter frequency responses.
See this Adafruit Forums post for the details and the source code as it was developed. Great work!
Also, check out the Adafruit ZeroDMA Library in the Arduino IDE for all you can do.
And, check out the large number of SAMD21 (M0) based boards available from Adafruit.
No comments:
Post a Comment