Tags: Publish Research Papers JournalsDon T Want To Do HomeworkUcas Personal EssayPro Choice Argument EssayWhy Do We Get HomeworkFord Foundation Diversity S - DissertationSwimming EssayCharacter Analysis Essay Lesson Before DyingOrganic Chemistry Research ProposalEssay Questions About Glory
This is a template class for controlling the AD9959. The digital interface is 3v3, so if you're using 5v, you need level shifters.This library expects to use SPI in three-wire mode (CLK = SCLK, MISO = SDIO_2, MOSI = SDIO_0).This library does not insert that delay, so you can use that time to initialise other things.
The DDS core then runs at that frequency times the PLL multiplier, which defaults to the maximum of 20. This library uses the Arduino standard hardware SPI device.
Configure the PLL multiplier or apply a core frequency calibration by calling set Clock(). The calibration parameter supports frequency calibration. Set it first to the default 0 (no adjustment), and set the chip some known frequency and measure the actual frequency.
void sweep Rates(Channel Num chan, uint32_t increment, uint8_t up_rate, uint32_t decrement, uint8_t down_rate); // Sweep up at increments of 100 each 1us, and down 1000 each 2us: dds.sweep Rates(My AD9959:: Channel0|My AD9959:: Channel1, 100, 125, 1000, 250); After setting up one or more channels' sweep parameters, start the sweep by toggling the configured profile pin(s).
If you toggle the pins together, or wire two profile pins to the same output, they'll start in sync.
Searching the web for tutorial material that I could use, I found only articles that jump straight in to hard-core mathematics and digital signal processing theory.
It doesn’t have to be so complicated in my opinion, so I came up with my own and share it here in the hope that it might be of use to a wider audience.In no-dwell mode, setting the profile pin high causes a rising sweep to start, hit the top, then jump back to the starting value and stay there until the next positive edge.void sweep Frequency(Channel Num chan, uint32_t freq, bool follow = true); ...This library expects you to control the profile pins if you want to start and stop sweeps.The internal PLL clock multiplier defaults to 20, which produces 500MHz from a 25MHz crystal.The frequency delta word for a given frequency is obtained using frequency Delta().This conversion uses a 32x32Frequency(My AD9959:: Channel2, 7140000UL); // shorthand for: Delta(My AD9959:: Channel2, dds.frequency Delta(7140000UL)); // 7.14MHz Amplitude(My AD9959:: Channel2, 1023); // Maximum amplitude value Phase(My AD9959:: Channel2, 16383); // Maximum phase value (same as -1) To make a sweep, you must configure the starting signals as above, then either the destination frequency, amplitude or phase, and sweep mode.The step rate is 8 bit unsigned, expressing a multiple of 4 core clock cycles.With a 500MHz core clock, the shortest step is 8ns, a step of 125 gets you 1us steps, and the longest step is 2.048us.AD9959 is a chip from Analog Devices for direct digital sythesis of radio frequency signals.With four channels and a 500MHz core frequency, it can coordinate multi-channel sweeps over frequency, amplitude or phase and supports high-rate modulation.