Thanks Marcus, this helped set me on the right path - the problem was related 
to streamer object lifetime. I'll add some more detail here in case it helps 
somebody else down the road.

Creating a streamer object commits a change to the RFNoC graph, which 
eventually calls ad9361_device::set_active_chains() on the radio. This function 
briefly puts the RFIC state machine into the ALERT state, which flushes the 
integrated digital filters and signal paths. If the graph has an enabled 
transmit channel, the function then performs TX quadrature cal before putting 
the RFIC state machine back into the FDD Enabled state. This process happens 
every time a new streamer object is created, even if the configuration is 
unchanged since a prior instantiation.

I was using timed streaming, but was using a new locally scoped streamer object 
for receive captures, which led to these side-effects in the AD9361. I suppose 
the current behavior makes sense - one would expect new streamers to start with 
a "clean" transmit/receive pipeline each time. I've hoisted the streamer object 
up to a higher scope, using one instance for several successive timed streaming 
events, and I'm now seeing the stable phase relationship across receive windows 
for separate radios with common clock.

Cheers,
-David


From: Marcus D. Leech <patchvonbr...@gmail.com>
Sent: Wednesday, January 11, 2023 5:33 PM

On 11/01/2023 13:45, David Raeman wrote:
I’m working on a project that involves phase-coherent reception across multiple 
E320 radios. I’m currently operating with a common clock (provided by an 
Octoclock) and cabled RF connections. I understand there will be some unknown 
phase offset between radios which changes across power cycles and re-tunes, but 
I’m expecting that relationship to be otherwise stable (neglecting temperature 
and other environmental effects). I’m trying to track down what I think is a 
frequency difference between receive radios which changes between across RX 
captures, even though I do not disconnect or re-tune between (although I do use 
the same port for TX between these receptions).

If you aren't using timed streaming across radios (and I'm not sure whether 
this is possible with E320), you're going to
  have random phase relationships every time you restart your streams, even 
though you haven't power-cycled.

_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to