EttusResearch / uhd

The USRP™ Hardware Driver Repository
http://uhd.ettus.com
Other
976 stars 655 forks source link

E320: Allow internal GPSDO to be powered-down via UHD session args #630

Closed draeman-synoptic closed 1 year ago

draeman-synoptic commented 2 years ago

Pull Request Details

Description

This patch allows a UHD application to power-down the GPSDO on an E320 radio by specifying the "enable_gps" arg at MPM connection time. Previously, the arg was only supported when the MPM daemon is launched at radio power-on. When used, the power-state of the GPSDO is only changed for the current MPM session - it will be restored to default upon session deinit.

It's useful for a UHD application to control the GPSDO power state, because the GPSDO seems to induce phase noise when using an external clock. Now an application using clock_source=external can also specify enable_gps=0 at the same time, when phase noise performance is important.

As a separate commit, this PR also updates the e3xx doc to mention this phase noise consideration. The same language is already present in the N320 docs, and is alluded to as a "known issue" in the B200 docs. It was not previously mentioned for the E3xx series.

Related Issue

For more information and plots, see internal support emails exchanged with Wan Liu titled "PLL phase perturbations using any external clock with E320".

Which devices/areas does this affect?

E320 only

Testing Done

I've confirmed the flag now works at connection-time when connecting to an E320 radio. I've also confirmed using this flag to disable the GPSDO fixes the additive phase noise issue. Finally, I've confirmed the GPSDO reverts back to its default power state when the MPM session ends.

Checklist

wanliu-ettus commented 1 year ago

@michael-west This is the PR related to the E320 related to the escalation that we discussed where the GPSDO and external clock ref path seem to interfere with each other.