Greetings;
Point of Reference: Developed a custom application based upon the ad9361_iiostream.c application to run on a Linux based setup (ZED Board + RFCOMMS4 Eval Board). Our application is for "test and measurement", receive only, where we are using this device to check for very low power emissions from electronic devices. We will collect I/Q samples from a specific frequency, with a specified bandwidth (very narrow).
We are checking a number (> 20) specific frequencies ni a loop, storing the information for later analysis, rinse and repeat. For each different frequency we are collecting data from, the only changes we make to the chip on each pass are: bandwidth and RX_LO settings, everything else is a constant.
We are migrating this design to use the ADRV9003, for a number of reasons. I was provided a pointer to the ADRV9002-iiostream.c as a similar reference. This seems to be very similar to what was used for the AD9364.
In a recent post answered by M_Bugajski, he suggested I use TES to generate configuration information for our proposed setup, wich has a different REF CLK. I installed the TES and did some poking around.
Based upon this, I have the following questions below.
From the main.c:
/* */
/* Silicon Revision: Presumed C0*/
/* */
/* Tx / Rx optimal carrier frequencies: 3 GHz to 6 GHz*/
/* External LO optimal frequencies: 6 GHz to 12 GHz*/
/* */
/* FPGA: v0.0.0*/
/* Device Driver API: v0.0.0*/
/* Device Driver Client: v48.34.4*/
/* Firmware: v0.18.1.4*/
/* Profile Generator: v0.47.0.0*/
/* Stream Generator Assembly: v0.7.8.0*/
/* Transceiver Evaluation Software: v0.18.1*/
/* ADRV9001 Plugin: v0.18.1*/
Connection Tab:
a) TES is set for Tx/Rx Optimal Carrier Frequencies between 3GHz to 6 GHz. Does this possibly cause some issues when trying to configure for a setup/system that will operate only between 30MHz and 1.1GHz?
- A couple of times I got an error dialog saying the value was not recommended below 3GHz.
Device Configuration:
b) Dataport Sample Rate vs. Interface Rate? Are these the same? Can they be different? Why would one do this?
Clocks:
c) Set the Device clock Input to 49.152 MHz. The Clock Output has a /2 setup, does this matter??
d) Processor Clock Divisor: for the internal ARM-M4??
e) does it run at the Device Clock Input rate? if yes, how does this affect overall system performance?
Carriers:
- when designing a radio, I can see where this would be applicable. However, for our application, we are tuning to different RX frequencies (i.e. carriers).
f) What does this default value of 900 MHz represent inside the chip?
g) Does it affect the ability to tune from 30MHz to 1.1GHz? Is this different than the Local Oscillator setting?
h) Intermediate Frequency - what is this 490KHz default value represent?
i) Does this mean that the AFE is only down-converting to this IF frequency? Rather than baseband (0 Hz)??
Radio:
j) The ADC rate (defalts to LOW) - is this independent from the other clocking in the system?
k) What is the lowest possible frequency for the Filter?
- Second Order can be set to 4.74MHz for -1dB freq, 6.70 for -3dB freq
General:
l) output from TES seems to be using the underlying SDK API's. If one is using libiio, would alot of this be hidden "under the hood"?
m) are there libiio call specifically for updating these configuration structures? Or would code need to be added to call the Linux Driver API's using the higher level structures?
n) is this initialization a "one time" setup for the part? if the Carrier Frequency has no bearing, then I would say yes, if not, then there maybe a problem with how we plan to use this device, if we need to continually do this level of configuration for each scanned frequency.
Thank you for your time and expertise.
Regards,
Stephen Beckwith