I'm working on arbitrary waveform generation using the DDS device's DAC DMA buffer. I followed the source in the fmcomms2 plugin to see how it was implemented but I'm not getting anything, which are probably due to my poor understanding of the DDS device tree. For example, what is the difference between out_altvoltage0_TX1_I_F1_frequency and out_altvoltage1_TX1_I_F2_frequency? Is there any relationship between these and the DMA buffer?
Is *_raw the file to enable the channel? Is there any documentation of what all of the channels and their attributes do? I couldn't find any related posts and I don't think it's clear.
What are the sampling frequencies for and how do they differ from the PHY sampling frequency, i.e.
As an aside, when I reboot my board I always see a bunch of spurs on my TX port over a 20 MHz band at 2400 MHz. If I set the DDS to disabled, they do not go away. My suspicion is that from testing maybe my devices files are corrupted because I can't recall ever looking at the TX port and observing this?
As for my arbitrary waveform generation from file, here's my experiment and observations:
1) Generate CW at 2403 MHz 0 dBm w/ 3 dB cable IL (-3 dBm going into RX2)
2) Tune TX/RX LO to 2400 MHz, sample rate = 20 MHz, RF bandwidth = 10 MHz
3) Capture receive data to file using my application
4) Observe CW at 3 MHz
5) Load transmit data from this file
6) Format data for the DDS buffer and push buffer
3 MHz CW @ -40 dBm
-3 MHz CW @ -41 dBm
0 MHz/DC @ - 65 dBm
Obviously the -3 MHz shouldn't be there. The signal level is low even though I have the TX attenuation set to 0 dB, but I suspect that's in part because the RX data isn't full 16-bits dynamic range since the RSSI is never close to 0 dBFS.