aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp')
-rw-r--r--host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp43
1 files changed, 26 insertions, 17 deletions
diff --git a/host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp b/host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp
index 1d7d59ffe..30c063d28 100644
--- a/host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp
+++ b/host/lib/include/uhdlib/usrp/dboard/fbx/fbx_dboard.hpp
@@ -80,34 +80,43 @@ public:
{
// FBX uses a fixed low freq for both TX and RX
return {
- // Some conditions were considered for choosing the correct cal_freq,
- // mainly using the PG269 manual as reference. These conditions ensure that
- // the cal_freq or its harmonics don't interfere with the background (BG)
- // calibration mechanism on the RFSoC.
- // 1. In calib_mode2 the highest supported frequency is 0.4 * converter rate (fc).
- // The minimum fc that X440 supports is 1GHz. So our highest cal_freq is 400MHz.
+ // Some conditions were considered for choosing the correct
+ // cal_freq, mainly using the PG269 manual as reference. These
+ // conditions ensure that the cal_freq or its harmonics don't
+ // interfere with the background (BG) calibration mechanism on
+ // the RFSoC.
+ //
+ // 1. In calib_mode2 the highest supported frequency is
+ // 0.4 * converter rate (fc).
+ // The minimum fc that X440 supports is 1GHz. So our highest
+ // cal_freq is 400MHz.
// 2. We need to choose as high a cal_freq as we can
// 3. The converter rate (fc) should not be a multiple of the cal_freq
// 4. The converter rate (fc) / 8 should not be a multiple the cal_freq
// 5. cal_freq should not be of a form k * (fc / 1024) where k = 1 to 1024
- // 6. The specified hysteresis threshold values work with the chosen cal_freq
+ // 6. The specified hysteresis threshold values work with the chosen
+ // cal_freq
397.55e6, // rx_freq
397.55e6, // tx_freq
{0x7FFF, 0}, // output full scale dac mux
100, // delay
- // From PG.269: "Threshold levels are set as 14-bit unsigned values, with any value
- // from 0 to 16383 allowed. The maximum value, 16383 represents the absolute value of
- // the full-scale input of the RF-ADC."
- // X440 in loopback will usually receive a value of ~-11 dBm which translates to
- // a threshold value of ~4000. The minimum value for a useful calibration is
- // -40 dBFS according to Xilinx (~-46 dBm). So we pick a value in between (-20 dBm)
- // to detect if anything is wrong in the signal path and translate this into the
- // 14 bit dBm threshold value which is ~1465. The under value just needs to be slightly
- // lower. Calculation from P_dBm to 14 bit threshold_value:
+ // From PG.269: "Threshold levels are set as 14-bit unsigned values,
+ // with any value from 0 to 16383 allowed. The maximum value, 16383
+ // represents the absolute value of the full-scale input of the
+ // RF-ADC."
+ //
+ // X440 in loopback will usually receive a value of ~-11 dBm which
+ // translates to a threshold value of ~4000. The minimum value for
+ // a useful calibration is -40 dBFS according to Xilinx (~-46 dBm).
+ // So we pick a value in between (-20 dBm) to detect if anything is
+ // wrong in the signal path and translate this into the 14 bit dBm
+ // threshold value which is ~1465. The 'under' value just needs to be
+ // slightly lower. Calculation from P_dBm to 14 bit threshold_value:
+ //
// P_rms = math.pow(10,(P_dBm-30)/10)
// u_peak_to_peak = 2 * math.sqrt(P_rms * 100 * 2) # 100 Ohm Differential
// # 14 bits threshold, full scale of ADC 1 Vppd ≙ 1 dBm (DS.926):
- // threshold_value = u_peak_to_peak * math.pow(2,14)
+ // threshold_value = u_peak_to_peak * math.pow(2, 14)
1365, // under
1465, // over
"calib_mode2",