I was looking for a way to test the frequency response of a new oscilloscope.
Analog Devices has a nice IC that can produce a digitally synthesized sine wave of frequency between 0 and about 70 MHz. AD9850 link is here.
The quickest way to throw together a prototype was using an MBED platform. My code is here
What made things even easier was the availability of ready-to-go evaluation boards from China on Ebay for less than $5. This is the one I used.
This design is limited to about 40MHz if you want a clean signal without aliasing.
Frequency and phase are set by a 40-bit command that has:
- 32-bit frequency setting
- 5-bit phase setting
- 1-bit power up/down
- 2-bits factory debug access
Output frequency is given by: fOUT = (frq × CLKIN)/(2^32)
where frq is the 32-bit frequency and CLKIN is the frequency of the on-board crystal (125MHz in this case) So, for example 0x147AE148 is 10MHz.
Frequency resolution has a step size of 29KHz with the 125MHz clock.
You can also change phase in increments of 180°, 90°, 45°, 22.5°, 11.25° or any combination thereof using