SoapyUHD icon indicating copy to clipboard operation
SoapyUHD copied to clipboard

Not able to select clock source in device string

Open kng opened this issue 1 year ago • 1 comments

On a b200mini, running uhd-host 4.1.0 and also tried 3.5.0, soapy 0.7 and 0.8

When using the UHD source in gnuradio and selecting external 10MHz reference I get the two corresponding leds to light and actually lock to that ref.

I have looked in the source and saw that clock_source was a thing, but unable to make it work. I have tried a lot of other suggestions and variations on this key=value and never got it to work.

I'm trying driver=uhd,recv_frame_size=16360,clock_source=external and the frame size is working, but clock source is not.

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=b200
  hardware=B200mini
  fpga_version=7.0
  fw_version=8.0
  mboard_id=B200mini
  mboard_name=B200mini
  mboard_serial=32528B5
  rx0_antenna=RX2
  rx0_id=Unknown (0xffff)
  rx0_ref_power_key=b2xxmini_pwr_rx_rx2
  rx0_ref_power_serial=32528B5#A
  rx0_serial=
  rx0_subdev_name=FE-RX1
  rx0_subdev_spec=A:A
  tx0_antenna=TX/RX
  tx0_id=Unknown (0xffff)
  tx0_ref_power_key=b2xxmini_pwr_tx_tx+rx
  tx0_ref_power_serial=32528B5#A
  tx0_serial=
  tx0_subdev_name=FE-TX1
  tx0_subdev_spec=A:A

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 1 Tx
  Timestamps: YES
  Clock sources: internal, external
  Time sources: none, internal, external
  Sensors: ref_locked
     * ref_locked (Ref): false unlocked
  GPIOs: FP0, RXA, TXA

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Supports AGC: YES
  Stream formats: CS8, CS12, CS16, CF32, CF64
  Native format: CS16 [full-scale=32768]
  Stream args:
     * Samples per packet - The number of samples per packet.
       [key=spp, units=samples, default=0, type=int]
     * Bus format - The format of samples over the bus.
       [key=WIRE, type=string, options=(sc8, sc16)]
     * Peak value - The peak value for scaling in complex byte mode.
       [key=peak, default=1.0, type=float]
     * Receive frame buffer size - The size an individual datagram or frame in bytes.
       [key=recv_frame_size, units=bytes, type=int]
     * Receive number of buffers - The number of available buffers.
       [key=num_recv_frames, units=buffers, type=int]
  Antennas: TX/RX, RX2
  Corrections: DC removal
  Full gain range: [0, 76, 1] dB
    PGA gain range: [0, 76, 1] dB
  Full freq range: [42, 6008] MHz
    RF freq range: [42, 6008] MHz
    BB freq range: [-8, 8] MHz
  Tune args:
     * LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
       [key=OFFSET, units=Hz, default=0.0, type=float, range=[-8e+06, 8e+06, 0.00372529]]
     * BB - Specify a specific value for this component or IGNORE to skip tuning it.
       [key=BB, units=Hz, default=DEFAULT, type=float, range=[-8e+06, 8e+06, 0.00372529], options=(DEFAULT, IGNORE)]
  Sample rates: 0.03125, 0.0314961, 0.031746, 0.032, 0.0322581, ..., 3.2, 4, 5.33333, 8, 16 MSps
  Filter bandwidths: [0.2, 56] MHz
  Sensors: temp, rssi, lo_locked
     * temp (temp): 47.192986 C
     * rssi (RSSI): -50.750000 dB
     * lo_locked (LO): true locked

----------------------------------------------------
-- TX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Supports AGC: NO
  Stream formats: CS8, CS12, CS16, CF32, CF64
  Native format: CS16 [full-scale=32768]
  Stream args:
     * Samples per packet - The number of samples per packet.
       [key=spp, units=samples, default=0, type=int]
     * Bus format - The format of samples over the bus.
       [key=WIRE, type=string, options=(sc8, sc16)]
     * Peak value - The peak value for scaling in complex byte mode.
       [key=peak, default=1.0, type=float]
     * Send frame buffer size - The size an individual datagram or frame in bytes.
       [key=send_frame_size, units=bytes, type=int]
     * Send number of buffers - The number of available buffers.
       [key=num_send_frames, units=buffers, type=int]
  Antennas: TX/RX
  Full gain range: [0, 89.75, 0.25] dB
    PGA gain range: [0, 89.75, 0.25] dB
  Full freq range: [42, 6008] MHz
    RF freq range: [42, 6008] MHz
    BB freq range: [-8, 8] MHz
  Tune args:
     * LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
       [key=OFFSET, units=Hz, default=0.0, type=float, range=[-8e+06, 8e+06, 0.00372529]]
     * BB - Specify a specific value for this component or IGNORE to skip tuning it.
       [key=BB, units=Hz, default=DEFAULT, type=float, range=[-8e+06, 8e+06, 0.00372529], options=(DEFAULT, IGNORE)]
  Sample rates: 0.03125, 0.0314961, 0.031746, 0.032, 0.0322581, ..., 3.2, 4, 5.33333, 8, 16 MSps
  Filter bandwidths: [0.2, 56] MHz
  Sensors: temp, lo_locked
     * temp (temp): 47.777779 C
     * lo_locked (LO): true locked

kng avatar Jun 14 '23 19:06 kng

The configuration of clock & time source via device string was introduced for the N310, and later backported to X3x0, but not the B2xx series. You'll need to call the API that calls into set_clock_source().

mbr0wn avatar Jul 24 '23 11:07 mbr0wn