Hi Robin,
Thanks for thinking about this. I do set the time source- in the python script there is a line: self.uhd_usrp_source_0.set_time_source("sfp0") Robert ________________________________ From: Robin Coxe <c...@quanttux.com> Sent: Monday, March 15, 2021 7:12:35 PM To: Robert Clancy Cc: usrp-users@lists.ettus.com Subject: Re: [USRP-users] WhiteRabbit switch with an N321 Hi Robert. I think your issue may be that you need to set the time source in UHD to sfp0: https://kb.ettus.com/Using_Ethernet-Based_Synchronization_on_the_USRP%E2%84%A2_N3xx_Devices (Scroll down to the "System Configuration" section). -Robin On Mon, Mar 15, 2021 at 11:57 AM Robert Clancy <rcla...@ltsnet.net<mailto:rcla...@ltsnet.net>> wrote: I am trying to test a White Rabbit switch with an N321 radio but am failing to be able to make a capture. I have Gnuradio 3.8.0 installed and the UHD version is reported as UHD_4.0.0.0-18-g83e878cf This is the response from a probe: [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_4.0.0.0-18-g83e878cf [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.10.2,type=n3xx,product=n320,serial=31B36CF,claimed=False,addr=192.168.10.2 [INFO] [MPM.main] Launching USRP/MPM, version: 4.0.0.0-g90ce6062 [INFO] [MPM.main] Spawning RPC process... [INFO] [MPM.PeriphManager] Device serial number: 31B36CF [INFO] [MPM.Rhodium-0] Enabling LO distribution board [INFO] [MPM.Rhodium-0] Successfully loaded all peripherals! [INFO] [MPM.Rhodium-1] Successfully loaded all peripherals! [INFO] [MPM.PeriphManager] Initialized 2 daughterboard(s). [INFO] [MPM.PeriphManager] No QSFP board detected: Assuming it is disabled in the device tree overlay (e.g., HG, XG images). [INFO] [MPM.PeriphManager] init() called with device args `clock_source=internal,time_source=internal'. [INFO] [MPM.Rhodium-0] init() called with args `clock_source=internal,time_source=internal' [INFO] [MPM.Rhodium-1] init() called with args `clock_source=internal,time_source=internal' [INFO] [MPM.Rhodium-0.init.LMK04828] LMK initialized and locked! [INFO] [MPM.Rhodium-1.init.LMK04828] LMK initialized and locked! [INFO] [MPM.Rhodium-1.DAC37J82] DAC PLL Locked! [INFO] [MPM.Rhodium-1.AD9695] ADC PLL Locked! [INFO] [MPM.Rhodium-1.init] JESD204B Link Initialization & Training Complete [INFO] [MPM.Rhodium-0.DAC37J82] DAC PLL Locked! [INFO] [MPM.Rhodium-0.AD9695] ADC PLL Locked! [INFO] [MPM.Rhodium-0.init] JESD204B Link Initialization & Training Complete [INFO] [MPM.RPCServer] RPC server ready! [INFO] [MPM.RPCServer] Spawning watchdog task... [INFO] [MPM.PeriphManager] init() called with device args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'. [INFO] [MPM.Rhodium-0] init() called with args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal' [INFO] [MPM.Rhodium-1] init() called with args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal' _____________________________________________________ / | Device: N300-Series Device | _____________________________________________________ | / | | Mboard: ni-n3xx-31B36CF | | dboard_0_pid: 338 | | dboard_0_serial: 3192EC4 | | dboard_1_pid: 338 | | dboard_1_serial: 3192EB9 | | eeprom_version: 3 | | fs_version: 20200914000806 | | mender_artifact: v4.0.0.0_n3xx | | mpm_sw_version: 4.0.0.0-g90ce6062 | | pid: 16962 | | product: n320 | | rev: 7 | | rpc_connection: remote | | serial: 31B36CF | | type: n3xx | | MPM Version: 3.0 | | FPGA Version: 8.0 | | FPGA git hash: be53058.clean | | | | Time sources: internal, external, gpsdo, sfp0 | | Clock sources: external, internal, gpsdo | | Sensors: ref_locked, gps_locked, temp, fan, gps_gpgga, gps_sky, gps_time, gps_tpv | _____________________________________________________ | / | | RFNoC blocks on this device: | | | | * 0/DDC#0 | | * 0/DDC#1 | | * 0/DUC#0 | | * 0/DUC#1 | | * 0/Radio#0 | | * 0/Radio#1 | | * 0/Replay#0 | _____________________________________________________ | / | | Static connections on this device: | | | | * 0/SEP#0:0==>0/DUC#0:0 | | * 0/DUC#0:0==>0/Radio#0:0 | | * 0/Radio#0:0==>0/DDC#0:0 | | * 0/DDC#0:0==>0/SEP#0:0 | | * 0/SEP#1:0==>0/DUC#1:0 | | * 0/DUC#1:0==>0/Radio#1:0 | | * 0/Radio#1:0==>0/DDC#1:0 | | * 0/DDC#1:0==>0/SEP#1:0 | | * 0/SEP#2:0==>0/Replay#0:0 | | * 0/Replay#0:0==>0/SEP#2:0 | | * 0/SEP#3:0==>0/Replay#0:1 | | * 0/Replay#0:1==>0/SEP#3:0 | _____________________________________________________ | / | | TX Dboard: dboard | | _____________________________________________________ | | / | | | TX Frontend: 0 | | | Name: Rhodium | | | Antennas: TX/RX, RX2, CAL, TERM | | | Freq range: 1.000 to 6000.000 MHz | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | Connection Type: | | | Uses LO offset: No | _____________________________________________________ | / | | RX Dboard: dboard | | _____________________________________________________ | | / | | | RX Frontend: 0 | | | Name: Rhodium | | | Antennas: TX/RX, CAL, TERM | | | Freq range: 1.000 to 6000.000 MHz | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | Connection Type: | | | Uses LO offset: No | _____________________________________________________ | / | | TX Dboard: dboard | | _____________________________________________________ | | / | | | TX Frontend: 0 | | | Name: Rhodium | | | Antennas: TX/RX, RX2, CAL, TERM | | | Freq range: 1.000 to 6000.000 MHz | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | Connection Type: | | | Uses LO offset: No | _____________________________________________________ | / | | RX Dboard: dboard | | _____________________________________________________ | | / | | | RX Frontend: 0 | | | Name: Rhodium | | | Antennas: TX/RX, CAL, TERM | | | Freq range: 1.000 to 6000.000 MHz | | | Gain range all: 0.0 to 60.0 step 1.0 dB | | | Bandwidth range: 250000000.0 to 250000000.0 step 0.0 Hz | | | Connection Type: | | | Uses LO offset: No I am using this firmware: uhd_image_loader --args type=n3xx,addr=192.168.10.2 --fpga-path="/opt/gnuradio/v3.8.0.0/share/uhd/images/usrp_n320_fpga_WX.bit" [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_4.0.0.0-18-g83e878cf [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.10.2,type=n3xx,product=n320,serial=31B36CF,claimed=False,skip_init=1 [INFO] [MPMD] Claimed device without full initialization. [INFO] [MPMD IMAGE LOADER] Starting update. This may take a while. [INFO] [MPM.PeriphManager] Updating component `fpga' [INFO] [MPM.PeriphManager] Updating component `dts' [INFO] [MPM.RPCServer] Resetting peripheral manager. [INFO] [MPM.PeriphManager] Device serial number: 31B36CF [INFO] [MPM.Rhodium-0] Enabling LO distribution board [INFO] [MPM.Rhodium-0] Successfully loaded all peripherals! [INFO] [MPM.Rhodium-1] Successfully loaded all peripherals! [INFO] [MPM.PeriphManager] Initialized 2 daughterboard(s). [INFO] [MPM.PeriphManager] No QSFP board detected: Assuming it is disabled in the device tree overlay (e.g., HG, XG images). [INFO] [MPM.PeriphManager] init() called with device args `clock_source=internal,time_source=internal'. [INFO] [MPM.Rhodium-0] init() called with args `clock_source=internal,time_source=internal' [INFO] [MPM.Rhodium-1] init() called with args `clock_source=internal,time_source=internal' [INFO] [MPM.Rhodium-0.init.LMK04828] LMK initialized and locked! [INFO] [MPM.Rhodium-1.init.LMK04828] LMK initialized and locked! [INFO] [MPM.Rhodium-1.DAC37J82] DAC PLL Locked! [INFO] [MPM.Rhodium-1.AD9695] ADC PLL Locked! [INFO] [MPM.Rhodium-1.init] JESD204B Link Initialization & Training Complete [INFO] [MPM.Rhodium-0.DAC37J82] DAC PLL Locked! [INFO] [MPMD IMAGE LOADER] Update component function succeeded. [INFO] [MPM.Rhodium-0.AD9695] ADC PLL Locked! [INFO] [MPM.Rhodium-0.init] JESD204B Link Initialization & Training Complete What I think are the relevant parts from a simple script to make a capture: ################################################## # Variables ################################################## self.samp_rate = samp_rate = 12288000 ################################################## # Blocks ################################################## self.uhd_usrp_source_0 = uhd.usrp_source( ",".join(("", "")), uhd.stream_args( cpu_format="fc32", args='addr=192.168.10.2', channels=list(range(0,1)), ), ) ## WhiteRabbit addition #self.uhd_usrp_source_0.set_clock_rate(200000000) self.uhd_usrp_source_0.set_antenna("TX/RX") print("Master clock rate set to: ",self.uhd_usrp_source_0.get_clock_rate()) print("Times sources are ",self.uhd_usrp_source_0.get_time_sources(0)) print("Sample rates is ",self.uhd_usrp_source_0.get_samp_rates().stop()) print("Antenna is ",self.uhd_usrp_source_0.get_antenna()) self.uhd_usrp_source_0.set_clock_source("internal") self.uhd_usrp_source_0.set_time_source("sfp0") print("Time source is ",self.uhd_usrp_source_0.get_time_source(0)) ### self.uhd_usrp_source_0.set_center_freq(75000100, 0) print("Tuned to ",self.uhd_usrp_source_0.get_center_freq(0)) self.uhd_usrp_source_0.set_gain(0, 0) self.uhd_usrp_source_0.set_antenna('TX/RX', 0) self.uhd_usrp_source_0.set_samp_rate(samp_rate) And then the error: [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501; UHD_4.0.0.0-18-g83e878cf [INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.10.2,type=n3xx,product=n320,serial=31B36CF,claimed=False,addr=192.168.10.2 [INFO] [MPM.PeriphManager] init() called with device args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'. [INFO] [MPM.Rhodium-0] init() called with args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal' [INFO] [MPM.Rhodium-1] init() called with args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal' Master clock rate set to: 245760000.0 Times sources are ('internal', 'external', 'gpsdo', 'sfp0') Sample rates is 245760000.0 Antenna is TX/RX [INFO] [MPM.Rhodium-0] Re-initializing daughter board. This may take some time. [INFO] [MPM.Rhodium-0] init() called with args `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=sfp0,skip_rfic=None,master_clock_rate=245760000.0,ref_clk_freq=25000000.0' [ERROR] [RPC] TDC Failed to reset. Traceback (most recent call last): File "./TimeDomainDisplay.py", line 212, in <module> main() File "./TimeDomainDisplay.py", line 188, in main tb = top_block_cls() File "./TimeDomainDisplay.py", line 95, in __init__ self.uhd_usrp_source_0.set_time_source("sfp0") File "/opt/gnuradio/v3.8.0.0/lib/python3/dist-packages/gnuradio/uhd/uhd_swig.py", line 4577, in set_time_source return _uhd_swig.usrp_source_sptr_set_time_source(self, source, mboard) RuntimeError: RuntimeError: Error during RPC call to `set_time_source'. Error message: TDC Failed to reset. [INFO] [MPM.Rhodium-0.init.LMK04828] LMK initialized and locked! [ERROR] [MPM.Sync-0] TDC Failed to Reset! Check your clocks! Status: 0x0 [ERROR] [MPM.RPCServer] Uncaught exception in method set_time_source :TDC Failed to reset. Traceback (most recent call last): File "/usr/lib/python3.7/site-packages/usrp_mpm/rpc_server.py", line 186, in new_claimed_function return function(*args) File "/usr/lib/python3.7/site-packages/usrp_mpm/periph_manager/n3xx.py", line 596, in set_time_source self.set_sync_source(source) File "/usr/lib/python3.7/site-packages/usrp_mpm/periph_manager/n3xx.py", line 696, in set_sync_source skip_rfic=args.get('skip_rfic', None) File "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rhodium.py", line 478, in update_ref_clock_freq self._reinit(self.master_clock_rate) File "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rhodium.py", line 438, in _reinit self.init(args) File "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rhodium.py", line 341, in init init_result = RhodiumInitManager(self, self._spi_ifaces).init(args) File "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rh_init.py", line 344, in init args) File "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rh_init.py", line 100, in _sync_db_clock target_offset=trace_delay_offset)) File "/usr/lib/python3.7/site-packages/usrp_mpm/cores/tdc_sync.py", line 201, in run self.configure(force=True) File "/usr/lib/python3.7/site-packages/usrp_mpm/cores/tdc_sync.py", line 254, in configure raise RuntimeError("TDC Failed to reset.") RuntimeError: TDC Failed to reset. Can anyone shed any light on what is going on? Has anyone actually got an Ettus radio working with the WX firmware and a White Rabbit switch? FWIW, the WR switch appears happy. I've walked its SNMP tree and all seems well. It is operating in Grandmaster mode with the one N321 hanging off its first port. Robert _______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com> To unsubscribe send an email to usrp-users-le...@lists.ettus.com<mailto:usrp-users-le...@lists.ettus.com>
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com