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
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to