Peter Volgyesi wrote:
Hi,
In our application we need to emit pure tones on two RFX400
daughtercards sitting on the same USRP board. More importantly, the
phase of the two RF carriers need to be in sync or should have a
deterministic difference.
I put together a simple experiment (GnuRadio 3.1 release branch r8117,
USRP rev 4.5, FLEX400 10-11-05) which sends a pair of constant signals
to the USRP in the baseband. The RF transmit outputs are directly
connected to a scope (5GS/s, 50 ohm imp.). My problem is that the
phase relationship between the two sines is random and changing every
time I run the python script. I suspected that the DUC(s) in the CODEC
chip(s) cause this, so I was trying to "turn them off" by modifying
db_flexrf.py (self.set_lo_offset(0)) and using carriers where the
RFX400 board can tune to without the help of the DUC. I verified with
two LFTX boards that the CODECs "generate" constant outputs.
Still, the RF waves have random phases, which I cannot explain (since
the PLLs on the daughtercards are "driven" by the same clock coming
from the USRP).
The RFX400s have PLL chips on them. The PLL chips on the 2 boards are
fed the same reference clock since it comes from the motherboard.
However, they both divide the clock down by the "R Divider" value, which
is typically 8. The RFX400 has a second divide-by-2 as well for a
total of 16. Thus there would be an 8-way ambiguity, since the dividers
could be at different phases. Thus the relative phases between 2 boards
can only be one of 16 discrete values. This value will stay constant as
long as you don't retune to a different frequency or allow the pll
enable pin to go low.
If you set your RF frequency to a multiple of 64 MHz, however, there
will be no ambiguity.
Matt
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio