Hello again,

Can anyone shed some light on this issue?  I found a similar reported issue
here that doesn't seemed to have been resolved either:

http://ettus.80997.x6.nabble.com/USRP-users-ERROR-RPC-TDC-Failed-to-reset-td15582.html

Thank you,
Cameron

On Sat, Dec 5, 2020 at 5:28 PM Cameron Matson <ncmatso...@gmail.com> wrote:

> Hi all,
>
> I'm trying to use the White Rabbit switch to synchronize the acquisition
> across multiple N310s receivers.  I'm trying to use the instructions on
> this Ettus article:
>
>
> https://kb.ettus.com/Using_Ethernet-Based_Synchronization_on_the_USRP%E2%84%A2_N3xx_Devices
>
> I'm using the USRP sink block in gnuradio and set the "clock source" to
> "internal" and the "timing source" to "sfp0" as it indicates in the article
>
> [image: image.png]
> However I get the following error
>
> [INFO] [UHD] linux; GNU C++ version 7.3.0; Boost_106501;
> UHD_3.14.0.HEAD-0-g6875d061
> [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
> mgmt_addr=192.168.3.2,
> type=n3xx,product=n310,serial=316A5C2,claimed=False,addr=192.168.3.2
> [INFO] [MPM.main] Launching USRP/MPM, version: 3.14.0.0-g6875d061
> [INFO] [MPM.main] Spawning RPC process...
> [INFO] [MPM.PeriphManager] Device serial number: 316A5C2
> [INFO] [MPM.PeriphManager] Initialized 2 daughterboard(s).
> [INFO] [MPM.PeriphManager] init() called with device args
> `clock_source=internal,time_source=internal'.
> [INFO] [MPM.RPCServer] RPC server ready!
> [INFO] [MPM.RPCServer] Spawning watchdog task...
> [INFO] [0/Replay_0] Initializing block control (NOC ID: 0x4E91A00000000004)
> [INFO] [MPM.PeriphManager] init() called with device args
> `clock_source=internal,product=n310,mgmt_addr=192.168.3.2,time_source=internal'.
> [INFO] [0/Radio_0] Initializing block control (NOC ID: 0x12AD100000011312)
> [INFO] [0/Radio_1] Initializing block control (NOC ID: 0x12AD100000011312)
> [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000)
> [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000)
> [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000002)
> [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000002)
> [INFO] [0/FIFO_0] Initializing block control (NOC ID: 0xF1F0000000000000)
> [INFO] [0/FIFO_1] Initializing block control (NOC ID: 0xF1F0000000000000)
> [INFO] [0/FIFO_2] Initializing block control (NOC ID: 0xF1F0000000000000)
> [INFO] [0/FIFO_3] Initializing block control (NOC ID: 0xF1F0000000000000)
> [ERROR] [RPC] TDC Failed to reset.
> Traceback (most recent call last):
>   File "/home/cmatson/data_lts/muddi_char/test_multi_radio.py", line 206,
> in <module>
>     main()
>   File "/home/cmatson/data_lts/muddi_char/test_multi_radio.py", line 194,
> in main
>     tb = top_block_cls()
>   File "/home/cmatson/data_lts/muddi_char/test_multi_radio.py", line 78,
> in __init__
>     self.uhd_usrp_source_0.set_time_source('sfp0', 0)
>   File "/usr/local/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py",
> line 3067, 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.Magnesium-0] Re-initializing daughter board. This may take
> some time.
> [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.5/site-packages/usrp_mpm/rpc_server.py", line
> 182, in new_claimed_function
>     return function(*args)
>   File "/usr/lib/python3.5/site-packages/usrp_mpm/periph_manager/n3xx.py",
> line 626, in set_time_source
>     self.set_sync_source(source)
>   File "/usr/lib/python3.5/site-packages/usrp_mpm/periph_manager/n3xx.py",
> line 723, in set_sync_source
>     skip_rfic=args.get('skip_rfic', None)
>   File
> "/usr/lib/python3.5/site-packages/usrp_mpm/dboard_manager/magnesium.py",
> line 385, in update_ref_clock_freq
>     self._reinit(self.master_clock_rate)
>   File
> "/usr/lib/python3.5/site-packages/usrp_mpm/dboard_manager/magnesium.py",
> line 344, in _reinit
>     self.init(args)
>   File
> "/usr/lib/python3.5/site-packages/usrp_mpm/dboard_manager/magnesium.py",
> line 293, in init
>     args, self._init_args, fast_reinit)
>   File
> "/usr/lib/python3.5/site-packages/usrp_mpm/dboard_manager/mg_init.py", line
> 615, in init
>     args
>   File
> "/usr/lib/python3.5/site-packages/usrp_mpm/dboard_manager/mg_init.py", line
> 555, in _full_init
>     args)
>   File
> "/usr/lib/python3.5/site-packages/usrp_mpm/dboard_manager/mg_init.py", line
> 221, in _sync_db_clock
>     target_offset=trace_delay_offset)
>   File "/usr/lib/python3.5/site-packages/usrp_mpm/cores/tdc_sync.py", line
> 201, in run
>     self.configure(force=True)
>   File "/usr/lib/python3.5/site-packages/usrp_mpm/cores/tdc_sync.py", line
> 254, in configure
>     raise RuntimeError("TDC Failed to reset.")
> RuntimeError: TDC Failed to reset.
>
>
> I can't seem to find anything about "TDC" online.  Once I get this error,
> it doesn't seem to recover even if I change the parameters back, and the
> only way I have found to fix it is to reset the device.
>
> I believe the white rabbit switch is configured properly because I am able
> to synchronize between two daughterboards within a single N310 by setting
> the "sync" parameter to "unknown PPS" which then calls the
> set_time_next_pps.  If I don't set the "clock/timing_source" parameters in
> the usrp block and just have the "sync" parameter set to "unknown PPS" on
> two N310s, the individual pairs daughterboards are sync'd but not between
> the two radios and there's a seemingly random delay (of up to several ms)
> between the two radios.
>
> Thanks,
>
> Cameron
>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to