Post Go back to editing

ADRV9002 + ZCU102: Using an external LO

Category: Software
Product Number: ADRV9002BBCZ
Software Version: 2019_R2

We're using the Petalinux build of the 2019_R2 branch, on a ZCU102 system with an ADRV9002 eval board.
We've made a custom profile in TES, using RX1, RX2, and TX1 in TDD mode.

Currently we're encountering some difficulties in using an external LO for our project.
Within TES, a profile has been generated with the LO1 Source set to 'External', with this LO driving RX1/TX1. A divisor of 2 has been set, which matches the divisor the internal LO was using. This profile has been patched into the kernel, with a minor tweak to the driver code to set the initial LO frequency to 350MHz. With a divisor of 2, this means that an expected 700MHz LO frequency is expected.

Setting up the system, a 700MHz sine wave at ~650mV pk-pk is being fed to the EXT_LO1 SMA connection on the eval board prior to boot. On boot a failure, occurs during the driver's initialization:

[    7.600160] adrv9002 spi1.0: [ERROR]: Error number  3 (0x00000003), Recovery action -101.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_CmdStatus_Wait, in line  651, variable name device.Error message ArmCmdStatusWait() failed due to thrown ARM error. Is device in correct state for calling command?.
[    7.632074] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/private/src/adrv9001_arm.c, in function adrv9001_ArmCmdErrorHandler, in line  2841, variable name mailboxErrCode.Error message Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized,  where appropriate.
[    7.671337] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_cals.c, in function adi_adrv9001_cals_InitCals_Run, in line  109, variable name NULL.Error message Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized,  where appropriate.
[    7.710246] adrv9002 spi1.0: adrv9002_setup, 2345: failed with "Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized,  where appropriate" (13314)
[    9.735287] adrv9002 spi1.0: [ERROR]: Error number  3 (0x00000003), Recovery action -101.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_arm.c, in function adi_adrv9001_arm_CmdStatus_Wait, in line  651, variable name device.Error message ArmCmdStatusWait() failed due to thrown ARM error. Is device in correct state for calling command?.
[    9.767200] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/private/src/adrv9001_arm.c, in function adrv9001_ArmCmdErrorHandler, in line  2841, variable name mailboxErrCode.Error message Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized,  where appropriate.
[    9.806459] adrv9002 spi1.0: [ERROR]: Error number  13314 (0x00003402), Recovery action -2.In file drivers/iio/adc/navassa/devices/adrv9001/public/src/adi_adrv9001_cals.c, in function adi_adrv9001_cals_InitCals_Run, in line  109, variable name NULL.Error message Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized,  where appropriate.
[    9.845366] adrv9002 spi1.0: adrv9002_setup, 2345: failed with "Error occurred during an Init Calibration. Check that no signal is being applied to the Rx ports. Check that correct external LOs are applied, and synchronized,  where appropriate" (13314)
[    9.867715] cf_axi_adc: probe of 84a00000.axi-adrv9002-rx-lpc failed with error -14
[    9.876523] cf_axi_tdd 84a0c800.axi-adrv9002-core-tdd1-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a)
[    9.886179] cf_axi_tdd 84a0cc00.axi-adrv9002-core-tdd2-lpc: Analog Devices CF_AXI_TDD MASTER (1.00.a)
[    9.913391] cf_axi_dds 84a0a000.axi-adrv9002-tx-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A0A000 mapped to 0x00000000cc42f8f8, probed DDS ADRV9002
[    9.945386] cf_axi_dds 84a0c000.axi-adrv9002-tx2-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (9.01.b) at 0x84A0C000 mapped to 0x000000004f815906, probed DDS ADRV9002



In the user guide for the ADRV9001 platform, there doesn't appear to be much detail on using an external LO, and the proper steps for making this work with the transceiver. Is this something that is supported by the driver? And is there something that I'm missing in making this configuration work?

Thanks,
~Seth

Parents
  • Hi ,

    I did some research in the UG-1828 user guide and found out that in order to use external LO, you'd need to perhaps perform calibrations in a different way than when using internal LO. See highlighted text from page 109:

    So the linux driver definitely supports setting the external LO via the .json profile from TES but I'm pretty sure this was not used in our reference projects and consequently there is a chance that what you're looking for may be missing from our linux driver. I say this because rfPll1Mode and rfPll2Mode are hardwired to zero, meaning only internal LO is used in the reference projects:

    https://github.com/analogdevicesinc/linux/blob/master/firmware/Navassa_CMOS_profile.json#L16-L17

    So I'd say that you try to focus on the calibration procedure for external LO based on the information available in the UG-1828.

    If that doesn't work out, the engineers from this subforum should be able to help you out with an exact procedure.

  • Hey  ! Thanks for the reply.

    Just so i understand what you're saying correctly:
    you believe that the driver consumes the external LO setting as specified by the json profile, but does not use this value and instead uses hardcoded values for setting the PLL mode to use the internal LO during the init functions.

    We've tried using the TES Linux image for this as well, where we've started the server on the device, connected to it via TES, and then loaded a profile that utilizes an external LO. TES seems to be aware that it is being asked to use an external LO, it has a popup regarding it telling the user to set the LO to a particular frequency, but similar to the non-TES case it fails out with this warning:




    With this popup displayed after this is dismissed:




    I guess this isn't surprising if the TES Linux image utilizes the same driver, but i had a bit of hope when it seemed to be aware that the user was trying to configure an external LO for use.

    Thanks,
    ~Seth





  • Since the same error occurs with TES, let's move this thread to the TES GUI & Software Support forum for further insights.

    -Michael

  • Hi SethK,

    Could you share the session file that you can save from TES GUI so that we can try to reproduce the issue with the same setting? Please use the latest version of TES (v21).

    Regards,

    -YH

  • Here's the session file from v0.20, the version we've been using to be compatible with the 2019R2 Linux driver. I'm unable to insert the file... it says that its invalid, so here's a text copy:


    {
      "IpAddress": "192.168.1.10",
      "PortNumber": "55557",
      "UserName": "root",
      "Password": "analog",
      "DeviceClockFrequency_Hz": "38400000",
      "DeviceClockDivisor": "ADRV9001_DEVICECLOCKDIVISOR_2",
      "ProcessorClockDivisor": "DIVISOR_1",
      "GainTableType": "ADRV9001_RX_GAIN_CORRECTION_TABLE",
      "Duplex": "TDD",
      "Setup": "Custom",
      "Channels": "Custom",
      "Diversity": "False",
      "ClockPllMode": "LOW_POWER",
      "AdcRate": "LOW",
      "ArmPowerSavingClockDiv": "1",
      "Rssi.DetectionThreshold_mdBFS": "-80000",
      "Rssi.MeasurementDuration_samples": "10",
      "Rssi.MeasurementsStartPeriod_ms": "1",
      "Rssi.NumberOfMeasurementsToAverage": "4",
      "MonitorMode.DetectionTime_us": "30000",
      "MonitorMode.SleepTime_us": "30000",
      "Channel1.FrequencyDeviation_Hz": "648",
      "Channel2.FrequencyDeviation_Hz": "648",
      "Rx1.LockTollgate": "LockTollgate",
      "Tx1.LockTollgate": "LockTollgate",
      "Rx2.LockTollgate": "LockTollgate",
      "Tx2.LockTollgate": "LockTollgate",
      "Rx1.RfPortId": "Rx1A",
      "Rx2.RfPortId": "Rx2A",
      "Tx1.RfPortId": "Tx1",
      "Tx2.RfPortId": "Tx2",
      "Tx1.SignalType": "ADRV9001_TX_IQ",
      "Tx2.SignalType": "1234",
      "LO1.Divisor": "2",
      "LO2.Divisor": "2",
      "Tx1.Attenuation.AttenuationControlMode": "ADRV9001_TX_ATTENUATION_CONTROL_MODE_SPI",
      "Tx2.Attenuation.AttenuationControlMode": "ADRV9001_TX_ATTENUATION_CONTROL_MODE_SPI",
      "Tx1.Attenuation.InitTxAtten_dB": "10",
      "Tx2.Attenuation.InitTxAtten_dB": "10",
      "Tx1.Attenuation.AttenuationControlPinConfiguration.IncrementStepSize_dB": "0.05",
      "Tx2.Attenuation.AttenuationControlPinConfiguration.IncrementStepSize_dB": "0.05",
      "Rx1.InterfaceGain.ControlMode": "ADRV9001_RX_INTERFACE_GAIN_CONTROL_MANUAL",
      "Rx1.InterfaceGain.UpdateTiming": "ADRV9001_RX_INTERFACE_GAIN_UPDATE_TIMING_NOW",
      "Rx1.InterfaceGain.Gain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "Rx2.InterfaceGain.ControlMode": "ADRV9001_RX_INTERFACE_GAIN_CONTROL_MANUAL",
      "Rx2.InterfaceGain.UpdateTiming": "ADRV9001_RX_INTERFACE_GAIN_UPDATE_TIMING_NOW",
      "Rx2.InterfaceGain.Gain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "Rx1.Gain.GainControlMode": "ADRV9001_RX_GAIN_CONTROL_MODE_SPI",
      "Rx2.Gain.GainControlMode": "ADRV9001_RX_GAIN_CONTROL_MODE_SPI",
      "Rx1.Gain.GainControlPinConfiguration.IncrementStepSize": "2",
      "Rx1.Gain.GainControlPinConfiguration.DecrementStepSize": "2",
      "Rx2.Gain.GainControlPinConfiguration.IncrementStepSize": "2",
      "Rx2.Gain.GainControlPinConfiguration.DecrementStepSize": "2",
      "Rx1.Gain.GainControl.Mode": "ADRV9001_RX_GAIN_CONTROL_DETECTION_MODE_PEAK",
      "Rx1.Gain.GainControl.PeakOverloadThreshold": "-6.0206",
      "Rx1.Gain.GainControl.PeakUnderloadThreshold": "-9",
      "Rx1.Gain.GainControl.PowerOverloadThreshold": "-7",
      "Rx1.Gain.GainControl.PowerUnderloadThreshold": "-12",
      "Rx1.Gain.GainControl.OverloadGainStep": "2",
      "Rx1.Gain.GainControl.UnderloadGainStep": "2",
      "Rx1.Gain.GainControl.GainRefreshPeriod_us": "62.5",
      "Rx1.Gain.GainControl.MeasurementDelay_us": "0.5",
      "Rx1.Gain.GainControl.MeasurementDuration_us": "50",
      "Rx2.Gain.GainControl.Mode": "ADRV9001_RX_GAIN_CONTROL_DETECTION_MODE_PEAK",
      "Rx2.Gain.GainControl.PeakOverloadThreshold": "-6.0206",
      "Rx2.Gain.GainControl.PeakUnderloadThreshold": "-9",
      "Rx2.Gain.GainControl.PowerOverloadThreshold": "-7",
      "Rx2.Gain.GainControl.PowerUnderloadThreshold": "-12",
      "Rx2.Gain.GainControl.OverloadGainStep": "2",
      "Rx2.Gain.GainControl.UnderloadGainStep": "2",
      "Rx2.Gain.GainControl.GainRefreshPeriod_us": "62.5",
      "Rx2.Gain.GainControl.MeasurementDelay_us": "0.5",
      "Rx2.Gain.GainControl.MeasurementDuration_us": "50",
      "Tx1.ElbType": "DISABLED",
      "Tx2.ElbType": "DISABLED",
      "Tx1.PeakLoopbackPower_dBm": "-18",
      "Tx2.PeakLoopbackPower_dBm": "-18",
      "Tx1.DPD.AmplifierType": "ADRV9001_DPDAMPLIFIER_DEFAULT",
      "Tx1.DPD.LutSize": "ADRV9001_DPDLUTSIZE_512",
      "Tx1.DPD.DpdModel": "ADRV9001_DPDMODEL_4",
      "Tx1.DPD.Tap0.TermsMask": "0x1F",
      "Tx1.DPD.Tap1.TermsMask": "0x7F",
      "Tx1.DPD.Tap2.TermsMask": "0x1F",
      "Tx1.DPD.Tap3.TermsMask": "0x1E",
      "Tx2.DPD.AmplifierType": "ADRV9001_DPDAMPLIFIER_DEFAULT",
      "Tx2.DPD.LutSize": "ADRV9001_DPDLUTSIZE_512",
      "Tx2.DPD.DpdModel": "ADRV9001_DPDMODEL_4",
      "Tx2.DPD.Tap0.TermsMask": "0x1F",
      "Tx2.DPD.Tap1.TermsMask": "0x7F",
      "Tx2.DPD.Tap2.TermsMask": "0x1F",
      "Tx2.DPD.Tap3.TermsMask": "0x1E",
      "Tx1.DPD.NumberOfSamples": "4096",
      "Tx1.DPD.RxTxNormalizationLowerThreshold": "3395470",
      "Tx1.DPD.RxTxNormalizationUpperThreshold": "33954698",
      "Tx1.DPD.ImmediateLutSwitching": "True",
      "Tx2.DPD.RxTxNormalizationLowerThreshold": "3395470",
      "Tx2.DPD.RxTxNormalizationUpperThreshold": "33954698",
      "Tx2.DPD.ImmediateLutSwitching": "True",
      "Initialized": "True",
      "Product": "ADRV9001_PART_NUMBER_ADRV9002",
      "AutomatedTddEnable": "False",
      "CarrierConfigurationMode": "DefinedCarriers",
      "NumDynamicProfiles": "ADRV9001_NUM_DYNAMIC_PROFILES_DISABLED",
      "OutputStreamOverGpio": "False",
      "McsMode": "ADRV9001_MCSMODE_DISABLED",
      "DmaMasterRx": "False",
      "DmaMasterTx": "False",
      "DmaMasterORx": "False",
      "McsInterface": "ADRV9001_SSI_TYPE_LVDS",
      "McsClock_kHz": "0",
      "ExpandedCustomSearch": "False",
      "NumSamples": "4096",
      "DeviceClockOutputEnabled": "True",
      "AllowPllRetuning": "True",
      "PllPowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_HIGH",
      "DataSource": "ThroughFpga",
      "RequiresTwoStageInitCals": "False",
      "RxSynchronousTransfer": "False",
      "TxSynchronousTransfer": "False",
      "WarmBootEnable": "False",
      "WarmBootCoefficients": "",
      "AuxADC0.Enabled": "False",
      "AuxADC0.Voltage_mV": "0",
      "AuxADC1.Enabled": "False",
      "AuxADC1.Voltage_mV": "0",
      "AuxADC2.Enabled": "False",
      "AuxADC2.Voltage_mV": "0",
      "AuxADC3.Enabled": "False",
      "AuxADC3.Voltage_mV": "0",
      "AuxDAC0.Enabled": "False",
      "AuxDAC0.Code": "0",
      "AuxDAC1.Enabled": "False",
      "AuxDAC1.Code": "0",
      "AuxDAC2.Enabled": "False",
      "AuxDAC2.Code": "0",
      "AuxDAC3.Enabled": "False",
      "AuxDAC3.Code": "0",
      "UnitPreference.ForFrequency": "Kilohertz",
      "Channel1.SsiType": "ADRV9001_SSI_TYPE_LVDS",
      "Channel1.SsiNumLanes": "ADRV9001_SSI_2_LANE",
      "Channel1.SsiDataRate": "DOUBLE",
      "Channel1.SsiStrobeType": "ADRV9001_SSI_SHORT_STROBE",
      "Channel1.ChannelEnableMode": "ADRV9001_PIN_MODE",
      "Channel1.SsiPowerDown": "ADRV9001_SSI_POWER_DOWN_DISABLED",
      "Channel1.ExternalPathDelay_ps": "0",
      "Channel1.TxDacFullScaleBoostEnable": "False",
      "Channel1.RxToTxLoopback": "False",
      "Channel1.TxToRxLoopback": "False",
      "Channel1.ChannelEnabled": "True",
      "Tx1.DataportSampleRate_Hz": "100000",
      "Tx1.SsiRefClock": "ADRV9001_SSI_TX_REF_CLOCK_PIN_DCLK_OUT_ENABLED",
      "Tx1.CarrierFrequency_Hz": "350000000",
      "Tx1.Interpolation": "1",
      "Tx1.ContinuousTransfer": "True",
      "Tx1.RfBandwidth_Hz": "50000",
      "Tx1.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_LOW",
      "Tx1.DesiredLoForDualHop": "ADRV9001_LOSEL_LO1",
      "Tx1.SsiInterfaceRate_Hz": "100000",
      "Tx1.Lpf3dBCornerFrequency_Hz": "33000000",
      "Tx1.Lpf1dBFrequency_Hz": "0",
      "Tx1.WidebandFilter": "BW_80",
      "Tx1.McsToStrobeLatency": "0",
      "Tx1.ReadDelay": "5",
      "Tx1.SampleDelay": "0",
      "Tx1.Analysis": "None",
      "Tx1.UDP.Enabled": "False",
      "Tx1.UDP.Port": "11004",
      "Tx1.UDP.Host0": "127",
      "Tx1.UDP.Host1": "0",
      "Tx1.UDP.Host2": "0",
      "Tx1.UDP.Host3": "1",
      "Tx1.UDP.Host": "127.0.0.1",
      "Tx1.ChannelFilter0.Type": "DISABLED",
      "Tx1.ChannelFilter0.FileName": "DISABLED",
      "Tx1.ChannelFilter1.Type": "LOOK_UP",
      "Tx1.ChannelFilter1.FileName": "LOOK_UP",
      "Tx1.ChannelFilter2.Type": "LOOK_UP",
      "Tx1.ChannelFilter2.FileName": "LOOK_UP",
      "Tx1.ChannelFilter3.Type": "LOOK_UP",
      "Tx1.ChannelFilter3.FileName": "LOOK_UP",
      "Tx1.ChannelFilter4.Type": "LOOK_UP",
      "Tx1.ChannelFilter4.FileName": "LOOK_UP",
      "Tx1.ChannelFilter5.Type": "LOOK_UP",
      "Tx1.ChannelFilter5.FileName": "LOOK_UP",
      "Tx1.FrequencyCorrection.Enable": "False",
      "Tx1.FrequencyCorrection.IsImmediate": "True",
      "Tx1.FrequencyCorrection.Freq_Hz": "0",
      "Tx1.DPD.ChangeModelTapOrders": "False",
      "Tx1.DPD.PreLutScale": "8",
      "Tx1.DPD.Enable": "False",
      "Tx1.DPD.ClgcEnable": "False",
      "Tx1.DPD.ClgcLoopOpen": "False",
      "Tx1.DPD.ClgcGainTarget": "0",
      "Tx1.DPD.ClgcFilterAlpha": "0.75",
      "Tx1.DPD.ClgcLastGain_HundredthdB": "0",
      "Tx1.DPD.ClgcFilteredGain_HundredthdB": "0",
      "Tx1.DPD.AdditionalPowerScale": "4",
      "Tx1.DPD.TimeFilterCoefficient": "0",
      "Tx1.DPD.DetectionPowerThreshold": "53942350",
      "Tx1.DPD.DetectionPeakThreshold": "214748365",
      "Tx1.DPD.CountsGreaterThanPeakThreshold": "0",
      "Tx1.DPD.CountsLessThanPowerThreshold": "4096",
      "Tx1.DPD.Detection": "Peak",
      "Tx1.DPD.Region0.Enable": "False",
      "Tx1.DPD.Region0.LowerBound_Hz": "0",
      "Tx1.DPD.Region0.UpperBound_Hz": "0",
      "Tx1.DPD.Region1.Enable": "False",
      "Tx1.DPD.Region1.LowerBound_Hz": "0",
      "Tx1.DPD.Region1.UpperBound_Hz": "0",
      "Tx1.DPD.Region2.Enable": "False",
      "Tx1.DPD.Region2.LowerBound_Hz": "0",
      "Tx1.DPD.Region2.UpperBound_Hz": "0",
      "Tx1.DPD.Region3.Enable": "False",
      "Tx1.DPD.Region3.LowerBound_Hz": "0",
      "Tx1.DPD.Region3.UpperBound_Hz": "0",
      "Tx1.DPD.Region4.Enable": "False",
      "Tx1.DPD.Region4.LowerBound_Hz": "0",
      "Tx1.DPD.Region4.UpperBound_Hz": "0",
      "Tx1.DPD.Region5.Enable": "False",
      "Tx1.DPD.Region5.LowerBound_Hz": "0",
      "Tx1.DPD.Region5.UpperBound_Hz": "0",
      "Tx1.DPD.Region6.Enable": "False",
      "Tx1.DPD.Region6.LowerBound_Hz": "0",
      "Tx1.DPD.Region6.UpperBound_Hz": "0",
      "Tx1.InitCals.Flags": "ADRV9001_INIT_CAL_TX_QEC, ADRV9001_INIT_CAL_TX_LO_LEAKAGE, ADRV9001_INIT_CAL_TX_LB_PD, ADRV9001_INIT_CAL_TX_DCC",
      "Tx1.PaRamp.Enable": "False",
      "Tx1.PaRamp.Trigger": "ADRV9001_TX_PA_RAMP_TRIGGER_SPI",
      "Tx1.PaRamp.AsymmetricRamp": "False",
      "Tx1.PaRamp.TriggerDelayFall": "5",
      "Tx1.PaRamp.TriggerDelayRise": "5",
      "Tx1.PaRamp.RampClock_kHz": "1000",
      "Tx1.PaRamp.UpEndIndex": "0",
      "Tx1.PaRamp.DownEndIndex": "0",
      "Enabled": "False",
      "FileName": "",
      "Tx1.PaRamp.ADRV9001_GPIO_SIGNAL_TX1_PA_RAMP_CTRL.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Tx1.Delay.PropagationDelay_ns": "214000",
      "Tx1.Delay.RiseToAnalogOnDelay_ns": "0",
      "Tx1.Delay.RiseToOnDelay_ns": "757680",
      "Tx1.Delay.HoldDelay_ns": "0",
      "Tx1.Delay.FallToOffDelay_ns": "214000",
      "Tx1.TxFrontEnd.Enabled": "False",
      "Tx1.LoopGain": "65536",
      "Tx1.Flags": "0",
      "Tx1.Attenuation.AttenuationControlPinConfiguration.IncrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Tx1.Attenuation.AttenuationControlPinConfiguration.DecrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx1.SignalType": "IQ16",
      "Rx1.RfInput": "ADRV9001_RX_A",
      "Rx1.IntermediateFrequency_kHz": "0",
      "Rx1.IntermediateFrequencyEnable": "False",
      "Rx1.CarrierFrequency_Hz": "350000000",
      "Rx1.AdcOptimization": "ADRV9001_ADC_LP",
      "Rx1.AnalogFilterOrder": "ORDER_1",
      "Rx1.RfBandwidth_Hz": "50000",
      "Rx1.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_LOW",
      "Rx1.DesiredLoForDualHop": "ADRV9001_LOSEL_LO1",
      "Rx1.DataportSampleRate_Hz": "100000",
      "Rx1.SsiInterfaceRate_Hz": "100000",
      "Rx1.Lpf3dBCornerFrequency_Hz": "10000000",
      "Rx1.Lpf1dBFrequency_Hz": "5000000",
      "Rx1.WidebandFilter": "BW_80",
      "Rx1.McsToStrobeLatency": "0",
      "Rx1.ReadDelay": "1",
      "Rx1.SampleDelay": "0",
      "Rx1.Analysis": "SingleTone",
      "Rx1.UDP.Enabled": "False",
      "Rx1.UDP.Port": "11003",
      "Rx1.UDP.Host0": "127",
      "Rx1.UDP.Host1": "0",
      "Rx1.UDP.Host2": "0",
      "Rx1.UDP.Host3": "1",
      "Rx1.UDP.Host": "127.0.0.1",
      "Rx1.ChannelFilter0.Type": "LOOK_UP",
      "Rx1.ChannelFilter0.FileName": "LOOK_UP",
      "Rx1.ChannelFilter1.Type": "LOOK_UP",
      "Rx1.ChannelFilter1.FileName": "LOOK_UP",
      "Rx1.ChannelFilter2.Type": "LOOK_UP",
      "Rx1.ChannelFilter2.FileName": "LOOK_UP",
      "Rx1.ChannelFilter3.Type": "LOOK_UP",
      "Rx1.ChannelFilter3.FileName": "LOOK_UP",
      "Rx1.ChannelFilter4.Type": "LOOK_UP",
      "Rx1.ChannelFilter4.FileName": "LOOK_UP",
      "Rx1.ChannelFilter5.Type": "LOOK_UP",
      "Rx1.ChannelFilter5.FileName": "LOOK_UP",
      "Rx1.FrequencyCorrection.Enable": "False",
      "Rx1.FrequencyCorrection.IsImmediate": "True",
      "Rx1.FrequencyCorrection.Freq_Hz": "0",
      "Rx1.BbdcRejection.BasebandDcRejection": "ADRV9001_BBDC_REJECTION_ENABLED",
      "Rx1.Delay.PropagationDelay_ns": "2350000",
      "Rx1.Delay.RiseToAnalogOnDelay_ns": "0",
      "Rx1.Delay.RiseToOnDelay_ns": "757680",
      "Rx1.Delay.HoldDelay_ns": "2350000",
      "Rx1.Delay.FallToOffDelay_ns": "0",
      "Rx1.Gain.InitRxGain": "247",
      "Rx1.Gain.IsDirtyAgc": "True",
      "Rx1.Gain.IsDirtyPinControl": "True",
      "Rx1.Gain.MaxAgcGainIndex": "255",
      "Rx1.Gain.MinAgcGainIndex": "195",
      "Rx1.Gain.MaxExtantGainIndex": "255",
      "Rx1.Gain.MinExtantGainIndex": "187",
      "Rx1.Gain.GainControl.LowThreshPreventIncrement": "False",
      "Rx1.Gain.GainControl.RxQecFreezeEnable": "True",
      "Rx1.Gain.GainControl.HbDetectorEnable": "False",
      "Rx1.Gain.GainControl.ApdDetectorEnable": "False",
      "Rx1.Gain.GainControl.OverrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx1.Gain.GainControl.UnderrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx1.Gain.GainControl.-1.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx1.Gain.GainControlPinConfiguration.IncrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx1.Gain.GainControlPinConfiguration.DecrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx1.Gain.GainIndexReadout.Bits01And00": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx1.Gain.GainIndexReadout.Bits03And02": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx1.Gain.GainIndexReadout.Bits05And04": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx1.Gain.GainIndexReadout.ChangeBitAndBit06": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx1.InitCals.Flags": "ADRV9001_INIT_CAL_RX_DCC, ADRV9001_INIT_CAL_RX_QEC_FIC, ADRV9001_INIT_CAL_RX_RF_DC_OFFSET",
      "Rx1.InterfaceGain.RssiDuration": "255",
      "Rx1.InterfaceGain.RssiMovingAverageDuration": "10",
      "Rx1.LoopGain": "65536",
      "Rx1.Flags": "ADRV9001_TRACKING_CAL_RX_HD2, ADRV9001_TRACKING_CAL_RX_BBDC, ADRV9001_TRACKING_CAL_RX_RFDC, ADRV9001_TRACKING_CAL_RX_QEC_FIC, ADRV9001_TRACKING_CAL_RX_GAIN_CONTROL_DETECTORS",
      "Rx1.RxFrontEnd.Enabled": "False",
      "Rx1.GainBits.Select": "ADRV9001_RX_GAIN_INDEX_GAIN_CHANGE_ZEROES",
      "Rx1.GainBits.AgcGainDelay": "0",
      "Rx1.GainBits.InterfaceGainDelay": "0",
      "ORx1.SignalType": "Disabled",
      "ORx1.IntermediateFrequency_kHz": "490",
      "ORx1.IntermediateFrequencyEnable": "True",
      "ORx1.CarrierFrequency_Hz": "900000000",
      "ORx1.AdcOptimization": "ADRV9001_ADC_LP",
      "ORx1.AnalogFilterOrder": "ORDER_1",
      "ORx1.RfInput": "ADRV9001_RX_B",
      "ORx1.RfBandwidth_Hz": "12000",
      "ORx1.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_LOW",
      "ORx1.DesiredLoForDualHop": "0",
      "ORx1.DataportSampleRate_Hz": "24000",
      "ORx1.SsiInterfaceRate_Hz": "24000",
      "ORx1.Lpf3dBCornerFrequency_Hz": "0",
      "ORx1.Lpf1dBFrequency_Hz": "20000000",
      "ORx1.WidebandFilter": "BW_80",
      "ORx1.McsToStrobeLatency": "0",
      "ORx1.ReadDelay": "0",
      "ORx1.SampleDelay": "0",
      "ORx1.Analysis": "SingleTone",
      "ORx1.UDP.Enabled": "False",
      "ORx1.UDP.Port": "11006",
      "ORx1.UDP.Host0": "127",
      "ORx1.UDP.Host1": "0",
      "ORx1.UDP.Host2": "0",
      "ORx1.UDP.Host3": "1",
      "ORx1.UDP.Host": "127.0.0.1",
      "ORx1.ChannelFilter0.Type": "LOOK_UP",
      "ORx1.ChannelFilter0.FileName": "LOOK_UP",
      "ORx1.ChannelFilter1.Type": "LOOK_UP",
      "ORx1.ChannelFilter1.FileName": "LOOK_UP",
      "ORx1.ChannelFilter2.Type": "LOOK_UP",
      "ORx1.ChannelFilter2.FileName": "LOOK_UP",
      "ORx1.ChannelFilter3.Type": "LOOK_UP",
      "ORx1.ChannelFilter3.FileName": "LOOK_UP",
      "ORx1.ChannelFilter4.Type": "LOOK_UP",
      "ORx1.ChannelFilter4.FileName": "LOOK_UP",
      "ORx1.ChannelFilter5.Type": "LOOK_UP",
      "ORx1.ChannelFilter5.FileName": "LOOK_UP",
      "ORx1.FrequencyCorrection.Enable": "False",
      "ORx1.FrequencyCorrection.IsImmediate": "True",
      "ORx1.FrequencyCorrection.Freq_Hz": "0",
      "ORx1.BbdcRejection.BasebandDcRejection": "ADRV9001_BBDC_REJECTION_ENABLED",
      "ORx1.Delay.PropagationDelay_ns": "0",
      "ORx1.Delay.RiseToAnalogOnDelay_ns": "0",
      "ORx1.Delay.RiseToOnDelay_ns": "757680",
      "ORx1.Delay.HoldDelay_ns": "0",
      "ORx1.Delay.FallToOffDelay_ns": "0",
      "ORx1.Gain.InitRxGain": "12",
      "ORx1.Gain.GainControlMode": "ADRV9001_RX_GAIN_CONTROL_MODE_SPI",
      "ORx1.Gain.IsDirtyAgc": "True",
      "ORx1.Gain.IsDirtyPinControl": "True",
      "ORx1.Gain.MaxAgcGainIndex": "14",
      "ORx1.Gain.MinAgcGainIndex": "2",
      "ORx1.Gain.MaxExtantGainIndex": "255",
      "ORx1.Gain.MinExtantGainIndex": "187",
      "ORx1.Gain.GainControl.Mode": "ADRV9001_RX_GAIN_CONTROL_DETECTION_MODE_PEAK_AND_POWER",
      "ORx1.Gain.GainControl.PeakOverloadThreshold": "0",
      "ORx1.Gain.GainControl.PeakUnderloadThreshold": "0",
      "ORx1.Gain.GainControl.PowerOverloadThreshold": "0",
      "ORx1.Gain.GainControl.PowerUnderloadThreshold": "0",
      "ORx1.Gain.GainControl.OverloadGainStep": "0",
      "ORx1.Gain.GainControl.UnderloadGainStep": "0",
      "ORx1.Gain.GainControl.GainRefreshPeriod_us": "0",
      "ORx1.Gain.GainControl.MeasurementDelay_us": "0",
      "ORx1.Gain.GainControl.MeasurementDuration_us": "0",
      "ORx1.Gain.GainControl.LowThreshPreventIncrement": "False",
      "ORx1.Gain.GainControl.RxQecFreezeEnable": "True",
      "ORx1.Gain.GainControl.HbDetectorEnable": "False",
      "ORx1.Gain.GainControl.ApdDetectorEnable": "False",
      "ORx1.Gain.GainControl.OverrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx1.Gain.GainControl.UnderrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx1.Gain.GainControl.-1.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "ORx1.Gain.GainControlPinConfiguration.DecrementStepSize": "0",
      "ORx1.Gain.GainControlPinConfiguration.IncrementStepSize": "0",
      "ORx1.Gain.GainControlPinConfiguration.IncrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "ORx1.Gain.GainControlPinConfiguration.DecrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "ORx1.Gain.GainIndexReadout.Bits01And00": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx1.Gain.GainIndexReadout.Bits03And02": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx1.Gain.GainIndexReadout.Bits05And04": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx1.Gain.GainIndexReadout.ChangeBitAndBit06": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx1.InitCals.Flags": "ADRV9001_INIT_CAL_RX_DCC, ADRV9001_INIT_CAL_RX_QEC_FIC, ADRV9001_INIT_CAL_RX_RF_DC_OFFSET",
      "ORx1.InterfaceGain.Gain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "ORx1.InterfaceGain.UpdateTiming": "ADRV9001_RX_INTERFACE_GAIN_UPDATE_TIMING_NOW",
      "ORx1.InterfaceGain.ControlMode": "ADRV9001_RX_INTERFACE_GAIN_CONTROL_MANUAL",
      "ORx1.InterfaceGain.RssiDuration": "255",
      "ORx1.InterfaceGain.RssiMovingAverageDuration": "10",
      "ORx1.LoopGain": "65536",
      "ORx1.Flags": "ADRV9001_TRACKING_CAL_RX_HD2, ADRV9001_TRACKING_CAL_RX_BBDC, ADRV9001_TRACKING_CAL_RX_RFDC, ADRV9001_TRACKING_CAL_RX_QEC_FIC, ADRV9001_TRACKING_CAL_RX_GAIN_CONTROL_DETECTORS",
      "ORx1.ADRV9001_GPIO_SIGNAL_ORX_ENABLE_1.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Channel1.PowerSavings.PinPowerDownMode": "ADRV9001_POWERSAVINGANDMONITORMODE_CHANNEL_MODE_DISABLED",
      "Channel1.PowerSavings.RadioOffPowerDownMode": "ADRV9001_POWERSAVINGANDMONITORMODE_CHANNEL_MODE_DISABLED",
      "Channel1.PowerSavings.ADRV9001_GPIO_SIGNAL_POWER_SAVING_CHANNEL1.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Channel2.SsiType": "ADRV9001_SSI_TYPE_LVDS",
      "Channel2.SsiNumLanes": "ADRV9001_SSI_2_LANE",
      "Channel2.SsiDataRate": "DOUBLE",
      "Channel2.SsiStrobeType": "ADRV9001_SSI_SHORT_STROBE",
      "Channel2.ChannelEnableMode": "ADRV9001_PIN_MODE",
      "Channel2.SsiPowerDown": "ADRV9001_SSI_POWER_DOWN_DISABLED",
      "Channel2.ExternalPathDelay_ps": "0",
      "Channel2.TxDacFullScaleBoostEnable": "False",
      "Channel2.RxToTxLoopback": "False",
      "Channel2.TxToRxLoopback": "False",
      "Channel2.ChannelEnabled": "True",
      "Tx2.DataportSampleRate_Hz": "100000",
      "Tx2.SsiRefClock": "ADRV9001_SSI_TX_REF_CLOCK_PIN_DISABLED",
      "Tx2.CarrierFrequency_Hz": "900000000",
      "Tx2.Interpolation": "1",
      "Tx2.ContinuousTransfer": "True",
      "Tx2.RfBandwidth_Hz": "50000",
      "Tx2.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_LOW",
      "Tx2.DesiredLoForDualHop": "ADRV9001_LOSEL_LO2",
      "Tx2.SsiInterfaceRate_Hz": "100000",
      "Tx2.Lpf3dBCornerFrequency_Hz": "33000000",
      "Tx2.Lpf1dBFrequency_Hz": "0",
      "Tx2.WidebandFilter": "BW_80",
      "Tx2.McsToStrobeLatency": "0",
      "Tx2.ReadDelay": "5",
      "Tx2.SampleDelay": "0",
      "Tx2.Analysis": "None",
      "Tx2.UDP.Enabled": "False",
      "Tx2.UDP.Port": "11006",
      "Tx2.UDP.Host0": "127",
      "Tx2.UDP.Host1": "0",
      "Tx2.UDP.Host2": "0",
      "Tx2.UDP.Host3": "1",
      "Tx2.UDP.Host": "127.0.0.1",
      "Tx2.ChannelFilter0.Type": "DISABLED",
      "Tx2.ChannelFilter0.FileName": "DISABLED",
      "Tx2.ChannelFilter1.Type": "LOOK_UP",
      "Tx2.ChannelFilter1.FileName": "LOOK_UP",
      "Tx2.ChannelFilter2.Type": "LOOK_UP",
      "Tx2.ChannelFilter2.FileName": "LOOK_UP",
      "Tx2.ChannelFilter3.Type": "LOOK_UP",
      "Tx2.ChannelFilter3.FileName": "LOOK_UP",
      "Tx2.ChannelFilter4.Type": "LOOK_UP",
      "Tx2.ChannelFilter4.FileName": "LOOK_UP",
      "Tx2.ChannelFilter5.Type": "LOOK_UP",
      "Tx2.ChannelFilter5.FileName": "LOOK_UP",
      "Tx2.FrequencyCorrection.Enable": "False",
      "Tx2.FrequencyCorrection.IsImmediate": "True",
      "Tx2.FrequencyCorrection.Freq_Hz": "0",
      "Tx2.DPD.ChangeModelTapOrders": "False",
      "Tx2.DPD.PreLutScale": "8",
      "Tx2.DPD.Enable": "False",
      "Tx2.DPD.ClgcEnable": "False",
      "Tx2.DPD.ClgcLoopOpen": "False",
      "Tx2.DPD.ClgcGainTarget": "0",
      "Tx2.DPD.ClgcFilterAlpha": "0.75",
      "Tx2.DPD.ClgcLastGain_HundredthdB": "0",
      "Tx2.DPD.ClgcFilteredGain_HundredthdB": "0",
      "Tx2.DPD.NumberOfSamples": "0",
      "Tx2.DPD.AdditionalPowerScale": "4",
      "Tx2.DPD.TimeFilterCoefficient": "0",
      "Tx2.DPD.DetectionPowerThreshold": "53942350",
      "Tx2.DPD.DetectionPeakThreshold": "214748365",
      "Tx2.DPD.CountsGreaterThanPeakThreshold": "0",
      "Tx2.DPD.CountsLessThanPowerThreshold": "4096",
      "Tx2.DPD.Detection": "Peak",
      "Tx2.DPD.Region0.Enable": "False",
      "Tx2.DPD.Region0.LowerBound_Hz": "0",
      "Tx2.DPD.Region0.UpperBound_Hz": "0",
      "Tx2.DPD.Region1.Enable": "False",
      "Tx2.DPD.Region1.LowerBound_Hz": "0",
      "Tx2.DPD.Region1.UpperBound_Hz": "0",
      "Tx2.DPD.Region2.Enable": "False",
      "Tx2.DPD.Region2.LowerBound_Hz": "0",
      "Tx2.DPD.Region2.UpperBound_Hz": "0",
      "Tx2.DPD.Region3.Enable": "False",
      "Tx2.DPD.Region3.LowerBound_Hz": "0",
      "Tx2.DPD.Region3.UpperBound_Hz": "0",
      "Tx2.DPD.Region4.Enable": "False",
      "Tx2.DPD.Region4.LowerBound_Hz": "0",
      "Tx2.DPD.Region4.UpperBound_Hz": "0",
      "Tx2.DPD.Region5.Enable": "False",
      "Tx2.DPD.Region5.LowerBound_Hz": "0",
      "Tx2.DPD.Region5.UpperBound_Hz": "0",
      "Tx2.DPD.Region6.Enable": "False",
      "Tx2.DPD.Region6.LowerBound_Hz": "0",
      "Tx2.DPD.Region6.UpperBound_Hz": "0",
      "Tx2.InitCals.Flags": "0",
      "Tx2.PaRamp.Enable": "False",
      "Tx2.PaRamp.Trigger": "ADRV9001_TX_PA_RAMP_TRIGGER_SPI",
      "Tx2.PaRamp.AsymmetricRamp": "False",
      "Tx2.PaRamp.TriggerDelayFall": "5",
      "Tx2.PaRamp.TriggerDelayRise": "5",
      "Tx2.PaRamp.RampClock_kHz": "1000",
      "Tx2.PaRamp.UpEndIndex": "0",
      "Tx2.PaRamp.DownEndIndex": "0",
      "Tx2.PaRamp.ADRV9001_GPIO_SIGNAL_TX2_PA_RAMP_CTRL.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Tx2.Delay.PropagationDelay_ns": "926000",
      "Tx2.Delay.RiseToAnalogOnDelay_ns": "168320",
      "Tx2.Delay.RiseToOnDelay_ns": "926000",
      "Tx2.Delay.HoldDelay_ns": "0",
      "Tx2.Delay.FallToOffDelay_ns": "926000",
      "Tx2.TxFrontEnd.Enabled": "False",
      "Tx2.LoopGain": "65536",
      "Tx2.Flags": "0",
      "Tx2.Attenuation.AttenuationControlPinConfiguration.IncrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Tx2.Attenuation.AttenuationControlPinConfiguration.DecrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx2.SignalType": "IQ16",
      "Rx2.RfInput": "ADRV9001_RX_A",
      "Rx2.IntermediateFrequency_kHz": "0",
      "Rx2.IntermediateFrequencyEnable": "False",
      "Rx2.CarrierFrequency_Hz": "900000000",
      "Rx2.AdcOptimization": "ADRV9001_ADC_LP",
      "Rx2.AnalogFilterOrder": "ORDER_1",
      "Rx2.RfBandwidth_Hz": "50000",
      "Rx2.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_LOW",
      "Rx2.DesiredLoForDualHop": "ADRV9001_LOSEL_LO2",
      "Rx2.DataportSampleRate_Hz": "100000",
      "Rx2.SsiInterfaceRate_Hz": "100000",
      "Rx2.Lpf3dBCornerFrequency_Hz": "10000000",
      "Rx2.Lpf1dBFrequency_Hz": "5000000",
      "Rx2.WidebandFilter": "BW_80",
      "Rx2.McsToStrobeLatency": "0",
      "Rx2.ReadDelay": "1",
      "Rx2.SampleDelay": "0",
      "Rx2.Analysis": "SingleTone",
      "Rx2.UDP.Enabled": "False",
      "Rx2.UDP.Port": "11005",
      "Rx2.UDP.Host0": "127",
      "Rx2.UDP.Host1": "0",
      "Rx2.UDP.Host2": "0",
      "Rx2.UDP.Host3": "1",
      "Rx2.UDP.Host": "127.0.0.1",
      "Rx2.ChannelFilter0.Type": "LOOK_UP",
      "Rx2.ChannelFilter0.FileName": "LOOK_UP",
      "Rx2.ChannelFilter1.Type": "LOOK_UP",
      "Rx2.ChannelFilter1.FileName": "LOOK_UP",
      "Rx2.ChannelFilter2.Type": "LOOK_UP",
      "Rx2.ChannelFilter2.FileName": "LOOK_UP",
      "Rx2.ChannelFilter3.Type": "LOOK_UP",
      "Rx2.ChannelFilter3.FileName": "LOOK_UP",
      "Rx2.ChannelFilter4.Type": "LOOK_UP",
      "Rx2.ChannelFilter4.FileName": "LOOK_UP",
      "Rx2.ChannelFilter5.Type": "LOOK_UP",
      "Rx2.ChannelFilter5.FileName": "LOOK_UP",
      "Rx2.FrequencyCorrection.Enable": "False",
      "Rx2.FrequencyCorrection.IsImmediate": "True",
      "Rx2.FrequencyCorrection.Freq_Hz": "0",
      "Rx2.BbdcRejection.BasebandDcRejection": "ADRV9001_BBDC_REJECTION_ENABLED",
      "Rx2.Delay.PropagationDelay_ns": "2350000",
      "Rx2.Delay.RiseToAnalogOnDelay_ns": "0",
      "Rx2.Delay.RiseToOnDelay_ns": "757680",
      "Rx2.Delay.HoldDelay_ns": "2350000",
      "Rx2.Delay.FallToOffDelay_ns": "0",
      "Rx2.Gain.InitRxGain": "247",
      "Rx2.Gain.IsDirtyAgc": "True",
      "Rx2.Gain.IsDirtyPinControl": "True",
      "Rx2.Gain.MaxAgcGainIndex": "255",
      "Rx2.Gain.MinAgcGainIndex": "195",
      "Rx2.Gain.MaxExtantGainIndex": "255",
      "Rx2.Gain.MinExtantGainIndex": "187",
      "Rx2.Gain.GainControl.LowThreshPreventIncrement": "False",
      "Rx2.Gain.GainControl.RxQecFreezeEnable": "True",
      "Rx2.Gain.GainControl.HbDetectorEnable": "False",
      "Rx2.Gain.GainControl.ApdDetectorEnable": "False",
      "Rx2.Gain.GainControl.OverrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx2.Gain.GainControl.UnderrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx2.Gain.GainControl.-1.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx2.Gain.GainControlPinConfiguration.IncrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx2.Gain.GainControlPinConfiguration.DecrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "Rx2.Gain.GainIndexReadout.Bits01And00": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx2.Gain.GainIndexReadout.Bits03And02": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx2.Gain.GainIndexReadout.Bits05And04": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx2.Gain.GainIndexReadout.ChangeBitAndBit06": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "Rx2.InitCals.Flags": "ADRV9001_INIT_CAL_RX_QEC_FIC, ADRV9001_INIT_CAL_RX_RF_DC_OFFSET",
      "Rx2.InterfaceGain.RssiDuration": "255",
      "Rx2.InterfaceGain.RssiMovingAverageDuration": "10",
      "Rx2.LoopGain": "65536",
      "Rx2.Flags": "ADRV9001_TRACKING_CAL_RX_HD2, ADRV9001_TRACKING_CAL_RX_BBDC, ADRV9001_TRACKING_CAL_RX_RFDC, ADRV9001_TRACKING_CAL_RX_QEC_FIC, ADRV9001_TRACKING_CAL_RX_GAIN_CONTROL_DETECTORS",
      "Rx2.RxFrontEnd.Enabled": "False",
      "Rx2.GainBits.Select": "ADRV9001_RX_GAIN_INDEX_GAIN_CHANGE_ZEROES",
      "Rx2.GainBits.AgcGainDelay": "0",
      "Rx2.GainBits.InterfaceGainDelay": "0",
      "ORx2.SignalType": "Disabled",
      "ORx2.IntermediateFrequency_kHz": "490",
      "ORx2.IntermediateFrequencyEnable": "True",
      "ORx2.CarrierFrequency_Hz": "900000000",
      "ORx2.AdcOptimization": "ADRV9001_ADC_LP",
      "ORx2.AnalogFilterOrder": "ORDER_1",
      "ORx2.RfInput": "ADRV9001_RX_B",
      "ORx2.RfBandwidth_Hz": "12000",
      "ORx2.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_LOW",
      "ORx2.DesiredLoForDualHop": "0",
      "ORx2.DataportSampleRate_Hz": "24000",
      "ORx2.SsiInterfaceRate_Hz": "24000",
      "ORx2.Lpf3dBCornerFrequency_Hz": "0",
      "ORx2.Lpf1dBFrequency_Hz": "20000000",
      "ORx2.WidebandFilter": "BW_80",
      "ORx2.McsToStrobeLatency": "0",
      "ORx2.ReadDelay": "0",
      "ORx2.SampleDelay": "0",
      "ORx2.Analysis": "SingleTone",
      "ORx2.UDP.Enabled": "False",
      "ORx2.UDP.Port": "11008",
      "ORx2.UDP.Host0": "127",
      "ORx2.UDP.Host1": "0",
      "ORx2.UDP.Host2": "0",
      "ORx2.UDP.Host3": "1",
      "ORx2.UDP.Host": "127.0.0.1",
      "ORx2.ChannelFilter0.Type": "LOOK_UP",
      "ORx2.ChannelFilter0.FileName": "LOOK_UP",
      "ORx2.ChannelFilter1.Type": "LOOK_UP",
      "ORx2.ChannelFilter1.FileName": "LOOK_UP",
      "ORx2.ChannelFilter2.Type": "LOOK_UP",
      "ORx2.ChannelFilter2.FileName": "LOOK_UP",
      "ORx2.ChannelFilter3.Type": "LOOK_UP",
      "ORx2.ChannelFilter3.FileName": "LOOK_UP",
      "ORx2.ChannelFilter4.Type": "LOOK_UP",
      "ORx2.ChannelFilter4.FileName": "LOOK_UP",
      "ORx2.ChannelFilter5.Type": "LOOK_UP",
      "ORx2.ChannelFilter5.FileName": "LOOK_UP",
      "ORx2.FrequencyCorrection.Enable": "False",
      "ORx2.FrequencyCorrection.IsImmediate": "True",
      "ORx2.FrequencyCorrection.Freq_Hz": "0",
      "ORx2.BbdcRejection.BasebandDcRejection": "ADRV9001_BBDC_REJECTION_ENABLED",
      "ORx2.Delay.PropagationDelay_ns": "0",
      "ORx2.Delay.RiseToAnalogOnDelay_ns": "0",
      "ORx2.Delay.RiseToOnDelay_ns": "757680",
      "ORx2.Delay.HoldDelay_ns": "0",
      "ORx2.Delay.FallToOffDelay_ns": "0",
      "ORx2.Gain.InitRxGain": "12",
      "ORx2.Gain.GainControlMode": "ADRV9001_RX_GAIN_CONTROL_MODE_SPI",
      "ORx2.Gain.IsDirtyAgc": "True",
      "ORx2.Gain.IsDirtyPinControl": "True",
      "ORx2.Gain.MaxAgcGainIndex": "14",
      "ORx2.Gain.MinAgcGainIndex": "2",
      "ORx2.Gain.MaxExtantGainIndex": "255",
      "ORx2.Gain.MinExtantGainIndex": "187",
      "ORx2.Gain.GainControl.Mode": "ADRV9001_RX_GAIN_CONTROL_DETECTION_MODE_PEAK_AND_POWER",
      "ORx2.Gain.GainControl.PeakOverloadThreshold": "0",
      "ORx2.Gain.GainControl.PeakUnderloadThreshold": "0",
      "ORx2.Gain.GainControl.PowerOverloadThreshold": "0",
      "ORx2.Gain.GainControl.PowerUnderloadThreshold": "0",
      "ORx2.Gain.GainControl.OverloadGainStep": "0",
      "ORx2.Gain.GainControl.UnderloadGainStep": "0",
      "ORx2.Gain.GainControl.GainRefreshPeriod_us": "0",
      "ORx2.Gain.GainControl.MeasurementDelay_us": "0",
      "ORx2.Gain.GainControl.MeasurementDuration_us": "0",
      "ORx2.Gain.GainControl.LowThreshPreventIncrement": "False",
      "ORx2.Gain.GainControl.RxQecFreezeEnable": "True",
      "ORx2.Gain.GainControl.HbDetectorEnable": "False",
      "ORx2.Gain.GainControl.ApdDetectorEnable": "False",
      "ORx2.Gain.GainControl.OverrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx2.Gain.GainControl.UnderrangeCrumb": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx2.Gain.GainControl.-1.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "ORx2.Gain.GainControlPinConfiguration.DecrementStepSize": "0",
      "ORx2.Gain.GainControlPinConfiguration.IncrementStepSize": "0",
      "ORx2.Gain.GainControlPinConfiguration.IncrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "ORx2.Gain.GainControlPinConfiguration.DecrementPin": "ADRV9001_GPIO_UNASSIGNED",
      "ORx2.Gain.GainIndexReadout.Bits01And00": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx2.Gain.GainIndexReadout.Bits03And02": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx2.Gain.GainIndexReadout.Bits05And04": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx2.Gain.GainIndexReadout.ChangeBitAndBit06": "ADRV9001_GPIO_PIN_CRUMB_UNASSIGNED",
      "ORx2.InitCals.Flags": "ADRV9001_INIT_CAL_RX_QEC_FIC, ADRV9001_INIT_CAL_RX_RF_DC_OFFSET",
      "ORx2.InterfaceGain.Gain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "ORx2.InterfaceGain.UpdateTiming": "ADRV9001_RX_INTERFACE_GAIN_UPDATE_TIMING_NOW",
      "ORx2.InterfaceGain.ControlMode": "ADRV9001_RX_INTERFACE_GAIN_CONTROL_MANUAL",
      "ORx2.InterfaceGain.RssiDuration": "255",
      "ORx2.InterfaceGain.RssiMovingAverageDuration": "10",
      "ORx2.LoopGain": "65536",
      "ORx2.Flags": "ADRV9001_TRACKING_CAL_RX_HD2, ADRV9001_TRACKING_CAL_RX_BBDC, ADRV9001_TRACKING_CAL_RX_RFDC, ADRV9001_TRACKING_CAL_RX_QEC_FIC, ADRV9001_TRACKING_CAL_RX_GAIN_CONTROL_DETECTORS",
      "ORx2.ADRV9001_GPIO_SIGNAL_ORX_ENABLE_2.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "Channel2.PowerSavings.PinPowerDownMode": "ADRV9001_POWERSAVINGANDMONITORMODE_CHANNEL_MODE_DISABLED",
      "Channel2.PowerSavings.RadioOffPowerDownMode": "ADRV9001_POWERSAVINGANDMONITORMODE_CHANNEL_MODE_DISABLED",
      "Channel2.PowerSavings.ADRV9001_GPIO_SIGNAL_POWER_SAVING_CHANNEL2.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "LO1.Source": "EXTERNAL",
      "LO1.PowerConsumption": "ADRV9001_PLL_POWER_LOW",
      "LO1.LoopBandwidth_kHz": "300",
      "LO1.PllCalibration": "ADRV9001_PLL_CALIBRATION_NORMAL",
      "LO1.Optimization": "ADRV9001_LO_GEN_OPTIMIZATION_POWER_CONSUMPTION",
      "LO2.Source": "INTERNAL",
      "LO2.PowerConsumption": "ADRV9001_PLL_POWER_LOW",
      "LO2.LoopBandwidth_kHz": "300",
      "LO2.PllCalibration": "ADRV9001_PLL_CALIBRATION_NORMAL",
      "LO2.Optimization": "ADRV9001_LO_GEN_OPTIMIZATION_POWER_CONSUMPTION",
      "TDD.DmaSync": "False",
      "TDD.TddClock_Hz": "200000000",
      "TDD.FileName": "\\Examples\\Automated TDD Configurations\\DMR_24K_RX_ONLY.json",
      "RadioStateLock": "False",
      "MonitorMode.PowerDownMode": "0",
      "MonitorMode.DetectionFirst": "0",
      "MonitorMode.DetectionMode": "ADRV9001_POWERSAVINGANDMONITORMODE_MONITOR_DETECTION_MODE_RSSI",
      "MonitorMode.FastBufferReadEnable": "False",
      "MonitorMode.ExternalPllEnable": "False",
      "MonitorMode.InitialBatterySaverDelay_us": "0",
      "MonitorMode.BbicWakeupLevelEnable": "False",
      "SystemPowerSavings.ADRV9001_GPIO_SIGNAL_MON_ENABLE_SPS.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "MonitorMode.Rssi.DetectionThreshold_mdBFS": "-80000",
      "MonitorMode.Rssi.MeasurementDuration_samples": "10",
      "MonitorMode.Rssi.MeasurementsStartPeriod_ms": "1",
      "MonitorMode.Rssi.NumberOfMeasurementsToAverage": "4",
      "MonitorMode.Vector.VectorMask": "1",
      "MonitorMode.DmrPdCalibration.MayEnable": "False",
      "MonitorMode.DmrPdCalibration.RunCal": "RUN_CAL",
      "MonitorMode.DmrPdCalibration.Delay": "0",
      "MonitorModeWakeup.ADRV9001_GPIO_SIGNAL_MON_BBIC_WAKEUP.Pin": "ADRV9001_GPIO_UNASSIGNED",
      ".LNA.ExternalLnaPinSel": "ADRV9001_EXTERNAL_LNA_PIN_RX1_LOWER_RX2_UPPER",
      ".LNA.SettlingDelay": "0",
      ".LNA.NumberLnaGainSteps": "4",
      ".LNA.LnaGainStep1": "0",
      ".LNA.LnaGainStep2": "0",
      ".LNA.LnaGainStep3": "0",
      ".LNA.LnaGainStep4": "0",
      ".LNA.LnaDigitalGainDelay": "0",
      ".LNA.Enabled": "ADRV9001_GPIO_ANALOG_PIN_NIBBLE_UNASSIGNED",
      "FrequencyHopping.Mode": "ADRV9001_FHMODE_LO_MUX_REALTIME_PROCESS",
      "FrequencyHopping.MinFrameDuration_us": "30000",
      "FrequencyHopping.PllLockWait_us": "77",
      "FrequencyHopping.PllPhaseSyncWait_us": "0",
      "FrequencyHopping.TransitionTime_us": "2500",
      "FrequencyHopping.DynamicTableLoad": "False",
      "FrequencyHopping.NumberOfRowsToLoad": "ADRV9001_FH_HOP_PER_DYNAMIC_LOAD_ONE",
      "FrequencyHopping.ZeroIf": "False",
      "FrequencyHopping.MinOperatingFrequency_Hz": "0",
      "FrequencyHopping.MaxOperatingFrequency_Hz": "0",
      "FrequencyHopping.MaxRxGainIndex": "0",
      "FrequencyHopping.MinRxGainIndex": "0",
      "FrequencyHopping.GainSetupByPin": "False",
      "FrequencyHopping.TableIndexCtrl": "ADRV9001_TABLEINDEXCTRL_AUTO_PING_PONG",
      "FrequencyHopping.MinTxAtten_dB": "0",
      "FrequencyHopping.MaxTxAtten_dB": "0",
      "FrequencyHopping.GainSetupByPin1.GainTable.FileName": "Disabled",
      "FrequencyHopping.GainSetupByPin1.AttenTable.FileName": "Disabled",
      "FrequencyHopping.GainSetupByPin1.GainAttenIndex.FileName": "Disabled",
      "FrequencyHopping.GainSetupByPin1.GAIN_ATTEN_INDEX_PIN_1": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.GainSetupByPin1.GAIN_ATTEN_INDEX_PIN_2": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.GainSetupByPin1.GAIN_ATTEN_INDEX_PIN_3": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.GainSetupByPin2.GainTable.FileName": "Disabled",
      "FrequencyHopping.GainSetupByPin2.AttenTable.FileName": "Disabled",
      "FrequencyHopping.GainSetupByPin2.GainAttenIndex.FileName": "Disabled",
      "FrequencyHopping.GainSetupByPin2.GAIN_ATTEN_INDEX_PIN_1": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.GainSetupByPin2.GAIN_ATTEN_INDEX_PIN_2": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.GainSetupByPin2.GAIN_ATTEN_INDEX_PIN_3": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.ADRV9001_GPIO_SIGNAL_FH_HOP.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.ADRV9001_GPIO_SIGNAL_FH_HOP_2.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "FfhTableA.Enabled": "False",
      "FfhTableA.FileName": "",
      "FfhTableB.Enabled": "False",
      "FfhTableB.FileName": "",
      "FrequencyHopping.TableIndexByPin.TableIndices": "[]",
      "FrequencyHopping.TableIndexByPin.TableIndexSequence.FileName": "",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_1": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_2": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_3": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_4": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_5": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_6": "ADRV9001_GPIO_UNASSIGNED",
      "FrequencyHopping.RuntimeFrameIndex": "0",
      "FrequencyHopping.NumChannels": "0",
      "FrequencyHopping.TableSwitchSequence1.MayEnable": "False",
      "FrequencyHopping.TableSwitchSequence1.Switches": "[]",
      "FrequencyHopping.TableSwitchSequence1.FileName": "",
      "FrequencyHopping.TableSwitchSequence1.ADRV9001_GPIO_SIGNAL_FH_HOP_TABLE_SELECT.Pin": "ADRV9001_GPIO_UNASSIGNED",
      ".PortSwitch.MinFreqPortA_Hz": "890000000",
      ".PortSwitch.MaxFreqPortA_Hz": "910000000",
      ".PortSwitch.MinFreqPortB_Hz": "1890000000",
      ".PortSwitch.MaxFreqPortB_Hz": "1910000000",
      ".PortSwitch.Enable": "False",
      "SpiMain.Enabled": "False",
      "SpiMain.NumBytes": "0",
      "SpiMain.BaudRateDiv": "0",
      "SpiMain.TransactionBytes": "0",
      "SpiMain.TransferMode": "ADRV9001_SPI_MASTER_CS_TRANSFER_TRANSACTION_BYTES",
      "SpiMain.SpiSlaveDevicesConnected": "ADRV9001_SPI_MASTER_SLAVE_SINGLE",
      "SpiMain.CsSource": "ADRV9001_SPI_MASTER_CS_SOURCE_GPIO_ANALOG",
      "SpiMain.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "SpiMain.TriggerSource": "ADRV9001_SPI_MASTER_TRIGGER_SOURCE_ARM",
      "SpiMain.WakeupTimer_us": "0",
      "SpiMain.Analog.ADRV9001_GPIO_NUM_SIGNALS.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "SpiMain.Digital.ADRV9001_GPIO_NUM_SIGNALS.Pin": "ADRV9001_GPIO_UNASSIGNED",
      "SpiBytes.FileName": ""
    }


    Have external LO's been tested with TES and function properly?

    Thanks,
    ~Seth

  • Seth,

    Thank you for sharing the file. I am able to load up the file without error. And yes, definitely external LO feature has been tested with TES.

    Please allow us few days until we test with your configuration. In the meantime, it'd be helpful if you can test external LO feature with other standard configuration. 

    Regards,

    YH

  • I tried an LTE standard profile, with changing LO1 to an external LO. Since my signal generator only goes up near 100MHz, i set the carrier frequency to 50MHz with a divisor of 2:






    After connecting to the TES server, setting my external generator to 100MHz pk-pk, and trying to program this to the device, I'm met with the same errors.

    Thanks,
    ~Seth

  • Hi,

    Your LO clock should have correct frequency and synchronized as indicated in the error message. It means that it needs to be synchronized to the Device Clock. User guides shows various use cases using external LO that is synchronized to the device clock. In your case, you can provide the 100 MHz clock to both of the DEVCLK (by default 38.4 MHz on board oscillator is used) and EXT_LO1/2, and set the dev clock to 100 MHz in TES GUI. 

    Please try it and let us know whether that works.

    Regards,

    YH

Reply
  • Hi,

    Your LO clock should have correct frequency and synchronized as indicated in the error message. It means that it needs to be synchronized to the Device Clock. User guides shows various use cases using external LO that is synchronized to the device clock. In your case, you can provide the 100 MHz clock to both of the DEVCLK (by default 38.4 MHz on board oscillator is used) and EXT_LO1/2, and set the dev clock to 100 MHz in TES GUI. 

    Please try it and let us know whether that works.

    Regards,

    YH

Children