I am trying to sweep through a range of frequencies from 1.475 GHz to 4.275 GHz in one experiment. At the moment I can go from +-200 MHz of 2.875 GHz (so I am able to get frequencies between 2.675 GHz to 3.075 GHz with the set_duc_frequency() function), and an additional +-10 MHz from the set_frequency() function in the oscillator class.
From a previous post I made some time ago, I learned that I can change the base frequency or f_trf, by changing the tx_div_sel parameter to either 0-3 in the device_db.py file. I have the upconverter variant and originally, my base is 2.875 GHz, so when I changed the tx_div_sel to either 1 to 3, the base frequency changes to 1437.5, 718.75, 359.375 MHz respectively.
However, when I measure the frequency coming out of the phaser board when I changed the tx_div_sel to either 1 to 3, the base frequency doesn't change from 2.875 GHz until I restart my artiq_master/dashboard. Additionally, when I change the output frequency with set_duc_frequency(), the highest frequency I can get is 2.875 GHz+210 MHz, which is not enough to get to the 4.275 GHz I need.
Is there a way to sweep through 1.475 GHz to 4.275 GHz in one experiment? The frequency step size I plan to use is probably 1 to 20 MHz.
I've been reading the trf372017 datasheet and I see that the register with tx_div_sel is Register 6, bit24, and was thinking of using the trf_write() and trf_read() functions under the Phaser channel class. Would this be the work around instead of modifying the device_db.py file? If so, the other issue still stands, where I am not sure how to get all the frequencies in between 1.475 GHz to 4.275 GHz.