Adds a 266.667 MHz compute engine clock and uses it instead of the
radio clock for the DDC and DUC. Using a faster clock than the radio
allows the DDC and DUC to drain after a stall in the data flow.
Adds a 266.667 MHz compute engine clock and uses it instead of the
radio clock for the DDC and DUC. Using a faster clock than the radio
allows the DDC and DUC to drain after a stall in the data flow.
- Image core files can now provide timebase_clock and ctrl_clock fields
to blocks, which will populate the backend interface accordingly.
- Clocks ports now have a direction associated (in, out).
When query_gpsdo_sensors creates a multi_usrp object with no additional device args,
it initializes the device using clock_source and time_source values of 'internal'.
Later, it sets them to 'gpsdo'. Since the x4xx devices put the GPSDO module in
reset when not being used, it takes several minutes to re-establish a GPS lock
after selecting the 'gpsdo' clock/time sources. By creating the multi_usrp object
using clock/time source values of 'gpsdo', the GPSDO isn't disabled and re-enabled
each run and the GPSDO is able to get a lock after enough time passes.
Change the syrnchronization order to be following:
- Run the MTS (multi-tile sync) procedure
- Run the timekeeper alignment to next_pps edge
- Run the post timekeeper alignment steps (none for now)
This ensures that any effects caused due to delay adjustments which are
part of the MTS procedure do not affect timekeeper alignment.
Without this change timekeepers on two X4xx devices would be mis-aligned
slightly in a multi-device scenario.
Note that setting all timekeepers to a common time_spec on the next_pps
as a part of post-initialization application code will still align them perfectly.
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
Initially the threshold was suitable for the cal tone at the original
frequency of 100 MHz. Since this was changed and because it can be
configured via the cal_freq parameter anyway we need to take care to
allow lower input levels that we might have at different frequencies.
In addition we know that for the background calibration of the chip a
signal of >=-46 dBm is required, so by using -20 dBm (which corresponds
to the 14-bit dbFS value of 1465) we still have some margin to recognize
any broken components.
Modify the cal_freq used in the calibration procedure by X440 devices
which use the FBX daughterboard. The new value obeys the rules that are
specified mainly in the PG269 to help the background calibration (BG)
run under better conditions and hence improve our input spur performance.
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
Co-authored-by: Volkan Öz <volkan.oez@ni.com>
Replaced newly added paragraph with subsubsection elements that resulted into
an as warning declared build error when buildin on readthedocs.
The build service still uses doxygen 1.8.13, which failed to include content
into the generated html after the warning was reported. Newer version of
doxygen also report the warning/s but continue including content.
- Extended FPGA Image Flavors sections
- Extended MCR and Converter Rates section
- Added Page for FBX daughterboard
- Added FBX_simplified_blockdiagram.png that is referenced by
FBX daughterboard page and represents one transceiver chain.
- Added known issue regarding need for restarting MPM when mcr is
changed and potential of dynamic QSFP28 configurations may getting
lost.
Change all references to "gps_lock" to "gps_locked" for consistency
across the code base. Fixes incorrect use of "gps_lock" for the sensor
name on X4xx.
Signed-off-by: michael-west <michael.west@ettus.com>
- Add section on X4x0 devices, explaining that X440 has 2 timekeepers
- Expand docs on mb_controller::timekeeper
- Provide more context on multi_usrp time-related calls
Some files in the source tree need some treatment before clang-format
can automatically be applied to all files.
This commit adds some 'clang-format off' statements and some manual
pre-formatting in order to not cause havoc when clang-format is applied
to the entire source tree.
The previous cast would take the number of nanoseconds, cast them to an
integer, and then add that to the previous command time. Now, we cast
the nanoseconds duration to a number of seconds, represented as a double,
first.
The way how self-cal gets triggered and what can be done with it has
changed during the development of X440. This reflects these changes
and explains them.
This removes the ADC self-cal during X4xx bootup and when a new FPGA
bitfile was loaded because we now do this when the clocking
configuration was changed. This improves RF performance for X410 and
is required for the flexible sample rates of X440.
While the self-cal that is executed within a UHD session already had the
user-configurable parameters, this was not yet the case for this
stand-alone utility. This commit adds this.