SetFrequencySXR(782 MHz) - cannot deliver frequency

Hello,

using LimeSuiteGUI I ran info an issue trying to set an Rx frequency for channel A at 782 MHz:

SetFrequencySXR(782 MHz) - cannot deliver frequency
INT: 97 FRAC: 862890
DIV_LOCH: 2 EN_DIV2_DIVPROG: 1
VCO: 6256MHz RefClk: 30.72 MHz
VCOL : csw=0 tune fail
VCOM : csw=0 tune fail
VCOH : csw=0 tune fail
Selected : VCOH

Trying to set 781 MHz or 783 MHz works fine ! I first ran into the issue while trying to calibrate for the LTE band 28 (758 … 803 MHz) with LimeUtil --cal, so checked with LimeSuiteGUI and got the same error.

After removing ~/.limesuite/LMS7002M_cache_values.db the first LimeUtil --cal gives plenty of errors:
LimeUtil --cal --start 758e6 --stop 803e6 --chans=ALL --dir=RX 2>&1 | tee cal_LTE_B28_758M_803M_chan_ALL_dir_RX.txt
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Calibrating for freq = 782 MHz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Error tuning (skipping): SetFrequencySXR(781.5 MHz) - cannot deliver frequency
INT: 97 FRAC: 794624
DIV_LOCH: 2 EN_DIV2_DIVPROG: 1
VCO: 6252MHz RefClk: 30.72 MHz
VCOL : csw=0 tune fail
VCOM : csw=0 tune fail
VCOH : csw=0 tune fail
Selected : VCOH

Error calibrating (skipping): MCU working too long 114
SetFrequency using cache values vco:1, csw:192
Error calibrating (skipping): MCU working too long 114
SetFrequency using cache values vco:1, csw:192
Error calibrating (skipping): MCU working too long 114

If I run again, the error disappears thanks to the cached values, but is it really working ?
LimeUtil --cal --start 758e6 --stop 803e6 --chans=ALL --dir=RX 2>&1 | tee cal_LTE_B28_758M_803M_chan_ALL_dir_RX_cached.txt
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ Calibrating for freq = 782 MHz
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

SetFrequency using cache values vco:2, csw:0
Error calibrating (skipping): MCU working too long 114
SetFrequency using cache values vco:1, csw:192
Rx calibration: using cached values
SetFrequency using cache values vco:1, csw:192
Rx calibration: using cached values
SetFrequency using cache values vco:1, csw:192
Rx calibration: using cached values

(MCU working too long is another topic)

*ware information:
pi@raspberrypi3:~ $ LimeUtil --info
######################################################

LimeSuite information summary

######################################################

Version information:
Library version: v17.12.0-gd352c002
Build timestamp: 2017-12-19
Interface version: v2017.12.0
Binary interface: 17.12-1

System resources:
Installation root: /usr/local
User home directory: /home/pi
App data directory: /home/pi/.local/share/LimeSuite
Config directory: /home/pi/.limesuite
Image search paths:
- /home/pi/.local/share/LimeSuite/images
- /usr/local/share/LimeSuite/images

Supported connections:

  • PCIEXillybus
  • STREAM
  • uLimeSDR

pi@raspberrypi3:~ $ LimeUtil --make
Make device
Reference clock 30.720 MHz
Device name: LimeSDR-USB
Expansion name: UNSUPPORTED
Firmware version: 4
Hardware version: 4
Protocol version: 1
Gateware version: 2
Gateware revision: 12
Gateware target: LimeSDR-USB
Serial number: 0x9060b00491f29
Free connection… OK

Are those errors for real ? Is there any misbehavior to expect ? Or below optimal RF performance ?
Are some frequencies actually not tunable ?

AFAIK the calibrations database should not be used any more and gives bad results. @joshblum, perhaps you could just confirm.

Early on I implemented the basic DC IQ calibrating sweeps and caching. The self calibrations based in the MCU have seen a tremendous amount of growth and improvement with the project, and including calibrating many parts of the LMS7 besides DC/IQ corrections. SoapyLMS runs the self calibrations when the stream is activated and I dont think the caching serves a role anymore and should be removed in a future release entirely.

1 Like