To do accurate frequency measurements of Andrés EB4FJV‘s 2.3GHz beacon, I have needed to setup my LimeSDR to use my DF9NP 10MHz GPSDO as an external reference. This is a quick HOWTO with the steps to make the LimeSDR use an external reference.
The LimeSDR uses an ADF4002 phase detector to discipline its 30.72MHz VCTCXO to an external reference. The external reference should be connected to the LimeSDR J19 U.FL connector. It needs to have a level between 0.8Vpp and 3.3Vpp into 50 Ohm. DC bias is acceptable, since the external reference input is AC coupled. The ADF4002 specifies that an input frequency can be between 20MHz and 350MHz, but a frequency below 20MHz can also be used provided that the slew rate is greater than 50V/us. Thus, if you feed in a 10MHz reference, you should use a square wave.
To enable the external reference, we open
LimeSuiteGUI and got to Options > Connection settings, then we select our LimeSDR device and click Connect. Then we go to Modules > ADF4002, we enter the reference frequency in the “Fref, MHz” field and click Calculate R, N & Upload.
The FPGA LED2 in the LimeSDR board should light up indicating the status of the ADF4002. It is red for no lock, green for lock, and off when the ADF4002 is disabled. If everything is working correctly, this LED should be green. Then we can close
LimeSuiteGUI and open an SDR software such as gqrx. Note that the ADF4002 should be configured using LimeSuiteGUI every time the LimeSDR board is powered up.
There is more information about the LimeSDR clock configuration here.
A final note: the DF9NP 10MHz GPSDO outputs a sine wave, so I have had to bypass the lowpass filter to get something resembling a square wave, as otherwise the ADF4002 wouldn’t lock.
in my case FPGA LED2 goes from red to OFF when I click “Calculate R, N & Upload.” and external frequency matches Fref, Mhz value. When ext ref clock frequency does not match Fref LED stays red. Do you know why it never turns green? I am using Leo Bodnar GPSDO tuned for 10Mhz.
That is rather weird. Maybe it’s just a problem with the green LED. Have you checked whether using the external reference and connecting the external reference makes any difference? The received spectrum should change slightly in frequency due to the different frequency sources involved.
thanks for the reply. Yes, I will be checking LED but think it’s somewhat unlikely because it shines Red OK. I have not noticed any spectrum changes when pulling ext Ref signal out. My understanding is that in either case with or without ext Ref In internal TXCO always stays at 30.72 Mhz, the only difference is that in one case it uses DAC Vc and in the other case it uses Phase Detector (ADF4002) Vc to produce 30.72Mhz. I have been trying to figure out if it is possible to read state of ADF4002 via some SPI register.
In my case, when I enable the external reference but have no external reference connected to the ADF4002, then the 30.72MHz clock changes noticeably and this can be seen in the waterfall.
Indeed, with external reference disabled, the 30.72MHz clock comes from the VCTCXO (and the voltage control is probably held to mid-level by a resistive divider). When the ADF4002 is enabled but there is no external reference connected, then the voltage control is set to minimum/maximum value, steering the VCTCXO. Then, connecting a valid external reference makes the ADF4002 set the correct voltage control.
Thus, if you’re watching the waterfall while you do this, you should be able to see 3 different frequencies: default voltage control, ADF steering the voltage to one end, ADF steering the voltage to the correct value.
you suggestion sounds interesting, I would like to try it. Just need to clarify some details of this experiment – should I be watching any particular frequency on the waterfall? I am thinking running it like this: 1) Connect ExtRefIn clock set for 10Mhz and set it via LimeSuite in ADF4002. At this point my LED goes from Red to Off (not green), so I don’t know if ADF4002 is working or not. 2) Start Gqrx on some arbitrary frequency? Observe the waterfall. 3) Pull out ExtRefIn connector (LED will go RED) and observe waterfall changes. Is this close to what you were suggesting? Thanks!
Hi Art, You need to use a frequency in gqrx where you can observe some stable signal or carrier. Higher frequencies work best, since the changes of the 30.72MHz will be more visible. I did this at 2.3GHz. Select a frequency where you have a clear carrier nearby (or use a signal generator if you have one at hand).
The procedure goes like this. Start gqrx, tune to your selected frequency and take note of the frequency at which the carrier appears. Stop gqrx, start LimeSuite and set up the external reference (but do not connect the external reference). Start gqrx again, tune to the same frequency and take note of the carrier frequency. Connect the external reference. Take note of the carrier frequency in gqrx.
Got it ! Will try running this experiment this weekend, Daniel. Thanks for your help!
How can I do the same procedure using LimeSuite API code rather than the GUI. I used this line: LMS_SetClockFreq(device,
The green LED is lit but I am not sure whether this really worked since I could not verify it with the getClockFreq() method.
Ugur, I assume that these methods that you used were in C++. Have you seen anyone do the same thing in Python?