I am working on a pure-FPGA implementation of the AD9361, meaning I do not have a microprocessor/os in the loop. The information I am unable to find is the format of the data going into the digital interface. I am using a single port so I and Q is serialized, 12-bit I followed by 12-bit Q.
I have found that this page AD-FMCOMMS2/3/4/5 Basic IQ Datafiles [Analog Devices Wiki] details some of the data formats.
My main question, if I have a file containing (I made up the values for this example):
0.243 + 0.4i
-0.574 + 0.123i
How can I send these to the transceiver to get the correct waveform. If I multiply by 32,757 like the above link indicates, I get integer values for the real and imaginary parts, awesome. But then if I shift/truncate the integer to 12-bit signed from 16-bit signed, some of my positive values, have a negative sign bit.
Ultimately, I want to know the recommended process for converting a less than +/- 1.0 value to the format for the AD9361's digital interface without an os or microprocessor in the loop. This FPGA chip is older than the Virtex 6 and 7 core that is out there to support this, so that is not an option for me.
Thank you for your time,