Post Go back to editing

Frequency Hopping -- Dual Hop -- 64 entries per hop

Category: Software
Product Number: ADRV9002
Software Version: Petalinux 2023.1

After reading the reference manual I think I should be able to use 64 hopping frequencies on each of my hopping channels. But I can't seem to get it to work no matter what I try. I want to use GPIO indexing to jump to specific frequencies. I am using Hop 1 and Hop 2 to control Tx1 and Tx2 respectively.

Here are the commands I am running to perform setup my hops:

iio_attr -D adrv9002-phy fh_table_index_control_mode 2
iio_attr -D adrv9002-phy fh_mode 3
iio_attr -D adrv9002-phy fh_hop1_pin_set 3
iio_attr -D adrv9002-phy fh_hop2_pin_set 4
iio_attr -D adrv9002-phy fh_table_index_control_npins 6
iio_attr -D adrv9002-phy fh_table_index_control_pin1 5
iio_attr -D adrv9002-phy fh_table_index_control_pin2 6
iio_attr -D adrv9002-phy fh_table_index_control_pin3 7
iio_attr -D adrv9002-phy fh_table_index_control_pin4 8
iio_attr -D adrv9002-phy fh_table_index_control_pin5 9
iio_attr -D adrv9002-phy fh_table_index_control_pin6 10

cat 61.44.bin > "/sys/bus/iio/devices/iio:device1/stream_config"
cat 61.44.json > "/sys/bus/iio/devices/iio:device1/profile_config"

cat TableA_915.csv >> /sys/bus/iio/devices/iio:device1/frequency_hopping_hop1_table_a
cat TableB_915.csv >> /sys/bus/iio/devices/iio:device1/frequency_hopping_hop1_table_b
cat TableA_915.csv >> /sys/bus/iio/devices/iio:device1/frequency_hopping_hop2_table_a
cat TableB_915.csv >> /sys/bus/iio/devices/iio:device1/frequency_hopping_hop2_table_b

iio_attr -c adrv9002-phy -o voltage0 port_en_mode pin
iio_attr -c adrv9002-phy -o voltage1 port_en_mode pin

My frequency tables are as follows:

TableA_915.csv

900000000,0,0,0,0,0,0,
901000000,0,0,0,0,0,0,
902000000,0,0,0,0,0,0,
903000000,0,0,0,0,0,0,
904000000,0,0,0,0,0,0,
905000000,0,0,0,0,0,0,
906000000,0,0,0,0,0,0,
907000000,0,0,0,0,0,0,
908000000,0,0,0,0,0,0,
909000000,0,0,0,0,0,0,
910000000,0,0,0,0,0,0,
911000000,0,0,0,0,0,0,
912000000,0,0,0,0,0,0,
913000000,0,0,0,0,0,0,
914000000,0,0,0,0,0,0,
915000000,0,0,0,0,0,0,
916000000,0,0,0,0,0,0,
917000000,0,0,0,0,0,0,
918000000,0,0,0,0,0,0,
919000000,0,0,0,0,0,0,
920000000,0,0,0,0,0,0,
921000000,0,0,0,0,0,0,
922000000,0,0,0,0,0,0,
923000000,0,0,0,0,0,0,
924000000,0,0,0,0,0,0,
925000000,0,0,0,0,0,0,
926000000,0,0,0,0,0,0,
927000000,0,0,0,0,0,0,
928000000,0,0,0,0,0,0,
929000000,0,0,0,0,0,0,
930000000,0,0,0,0,0,0,
931000000,0,0,0,0,0,0,

TableB_915.csv

932000000,0,0,0,0,0,0,
933000000,0,0,0,0,0,0,
934000000,0,0,0,0,0,0,
935000000,0,0,0,0,0,0,
936000000,0,0,0,0,0,0,
937000000,0,0,0,0,0,0,
938000000,0,0,0,0,0,0,
939000000,0,0,0,0,0,0,
940000000,0,0,0,0,0,0,
941000000,0,0,0,0,0,0,
942000000,0,0,0,0,0,0,
943000000,0,0,0,0,0,0,
944000000,0,0,0,0,0,0,
945000000,0,0,0,0,0,0,
946000000,0,0,0,0,0,0,
947000000,0,0,0,0,0,0,
948000000,0,0,0,0,0,0,
949000000,0,0,0,0,0,0,
950000000,0,0,0,0,0,0,
951000000,0,0,0,0,0,0,
952000000,0,0,0,0,0,0,
953000000,0,0,0,0,0,0,
954000000,0,0,0,0,0,0,
955000000,0,0,0,0,0,0,
956000000,0,0,0,0,0,0,
957000000,0,0,0,0,0,0,
958000000,0,0,0,0,0,0,
959000000,0,0,0,0,0,0,
960000000,0,0,0,0,0,0,
961000000,0,0,0,0,0,0,
962000000,0,0,0,0,0,0,
963000000,0,0,0,0,0,0,

I split my 64 frequencies across both Table A and Table B, because when I try adding more than 33 lines to a single table I get the following error:

root@test:~# cat TableA_915.csv >> /sys/bus/iio/devices/iio:device1/frequency_hopping_hop1_table_a
[ 1520.755745] adrv9002 spi1.0: Hop:0 table:0 too big:33
cat: write error: Invalid argument
root@test:~# cat TableA_915.csv > /sys/bus/iio/devices/iio:device1/frequency_hopping_hop1_table_a
[ 1529.887701] adrv9002 spi1.0: Hop:0 table:0 too big:33
cat: write error: Invalid argument
root@test:~#

When I use Table A and Table B's above, I see my system happily hop from 900-931 MHz. However for index values 32-63 the system sits at 900MHz.


Are you able to identify anything I might be doing wrong?

Parents
  • Hi John, Thank you for your question. To assist better you, please provide extra information such as:

    1. Platform in use (e.g. zcu102, zc706, JupiterSDR or custom)

    2. Version of the tools (e.g. TES 26, Device driver API version: 68.13.7)

    3. Session file, i.e. profile and stream, in taxidi or bin and json.

    We will get back to you soon.

    -Stefan

  • Hello Stefan,

    We are running a custom board loosely based on the ZCU102. 

    2. We are using TES 0.25.0 -- I'm not sure where you got the API Version from?

    3. I have attached the JSON and BIN files that I am loading. (Note I added .txt to the end of the file names)

    {
      "clocks": {
        "deviceClock_kHz": 38400,
        "clkPllVcoFreq_daHz": 884736000,
        "clkPllHsDiv": 0,
        "clkPllMode": 0,
        "clk1105Div": 2,
        "armClkDiv": 6,
        "armPowerSavingClkDiv": 1,
        "refClockOutEnable": true,
        "auxPllPower": 2,
        "clkPllPower": 2,
        "padRefClkDrv": 0,
        "extLo1OutFreq_kHz": 0,
        "extLo2OutFreq_kHz": 0,
        "rfPll1LoMode": 0,
        "rfPll2LoMode": 0,
        "ext1LoType": 0,
        "ext2LoType": 0,
        "rx1RfInputSel": 0,
        "rx2RfInputSel": 0,
        "extLo1Divider": 2,
        "extLo2Divider": 2,
        "rfPllPhaseSyncMode": 0,
        "rx1LoSelect": 1,
        "rx2LoSelect": 2,
        "tx1LoSelect": 1,
        "tx2LoSelect": 2,
        "rx1LoDivMode": 1,
        "rx2LoDivMode": 1,
        "tx1LoDivMode": 1,
        "tx2LoDivMode": 1,
        "loGen1Select": 1,
        "loGen2Select": 1
      },
      "rx": {
        "rxInitChannelMask": 195,
        "rxChannelCfg": [ {
            "profile": {
              "primarySigBandwidth_Hz": 38000000,
              "rxOutputRate_Hz": 61440000,
              "rxInterfaceSampleRate_Hz": 61440000,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 20000000,
              "lpAdcCorner": 0,
              "adcClk_kHz": 2211840,
              "rxCorner3dB_kHz": 40000,
              "rxCorner3dBLp_kHz": 40000,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 1,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 1,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 1,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 4,
                  "hbMux": 4,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 1,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 61440000,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 0,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 1
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 2,
                "ssiDataFormatSel": 4,
                "numLaneSel": 1,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": true,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 38000000,
              "rxOutputRate_Hz": 61440000,
              "rxInterfaceSampleRate_Hz": 61440000,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 20000000,
              "lpAdcCorner": 0,
              "adcClk_kHz": 2211840,
              "rxCorner3dB_kHz": 40000,
              "rxCorner3dBLp_kHz": 40000,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 2,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 1,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 1,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 4,
                  "hbMux": 4,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 1,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 61440000,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 2,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 1
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 2,
                "ssiDataFormatSel": 4,
                "numLaneSel": 1,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": true,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 12500,
              "rxOutputRate_Hz": 0,
              "rxInterfaceSampleRate_Hz": 0,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 0,
              "lpAdcCorner": 0,
              "adcClk_kHz": 0,
              "rxCorner3dB_kHz": 0,
              "rxCorner3dBLp_kHz": 0,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 0,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 0,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 0,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 0,
                  "hbMux": 4,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 0,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 0,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 0,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 0
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 0,
                "ssiDataFormatSel": 0,
                "numLaneSel": 0,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": false,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 12500,
              "rxOutputRate_Hz": 0,
              "rxInterfaceSampleRate_Hz": 0,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 0,
              "lpAdcCorner": 0,
              "adcClk_kHz": 0,
              "rxCorner3dB_kHz": 0,
              "rxCorner3dBLp_kHz": 0,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 0,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 0,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 0,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 0,
                  "hbMux": 4,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 0,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 0,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 0,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 0
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 0,
                "ssiDataFormatSel": 0,
                "numLaneSel": 0,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": false,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 38000000,
              "rxOutputRate_Hz": 61440000,
              "rxInterfaceSampleRate_Hz": 61440000,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 50000000,
              "lpAdcCorner": 0,
              "adcClk_kHz": 2211840,
              "rxCorner3dB_kHz": 100000,
              "rxCorner3dBLp_kHz": 100000,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 64,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 1,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 1,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 4,
                  "hbMux": 2,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 0,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 0,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 1,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 0
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 2,
                "ssiDataFormatSel": 4,
                "numLaneSel": 1,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": true,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 38000000,
              "rxOutputRate_Hz": 61440000,
              "rxInterfaceSampleRate_Hz": 61440000,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 50000000,
              "lpAdcCorner": 0,
              "adcClk_kHz": 2211840,
              "rxCorner3dB_kHz": 100000,
              "rxCorner3dBLp_kHz": 100000,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 128,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 1,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 1,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 4,
                  "hbMux": 2,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 0,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 0,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 3,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 0
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 2,
                "ssiDataFormatSel": 4,
                "numLaneSel": 1,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": true,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 12500,
              "rxOutputRate_Hz": 0,
              "rxInterfaceSampleRate_Hz": 0,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 0,
              "lpAdcCorner": 0,
              "adcClk_kHz": 0,
              "rxCorner3dB_kHz": 0,
              "rxCorner3dBLp_kHz": 0,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 0,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 0,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 0,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 0,
                  "hbMux": 4,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 0,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 0,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 0,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 0
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 0,
                "ssiDataFormatSel": 0,
                "numLaneSel": 0,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": false,
                "rxMaskStrobeEn": false
              }
            }
          }, {
            "profile": {
              "primarySigBandwidth_Hz": 12500,
              "rxOutputRate_Hz": 0,
              "rxInterfaceSampleRate_Hz": 0,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 0,
              "lpAdcCorner": 0,
              "adcClk_kHz": 0,
              "rxCorner3dB_kHz": 0,
              "rxCorner3dBLp_kHz": 0,
              "tiaPower": 2,
              "tiaPowerLp": 2,
              "channelType": 0,
              "adcType": 1,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 0,
                  "scicBlk23DivFactor": 0,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 0,
                  "decBy2Blk37En": 0,
                  "decBy2Blk39En": 0,
                  "decBy2Blk41En": 0,
                  "decBy2Blk43En": 0,
                  "decBy3Blk45En": 0,
                  "decBy2Blk47En": 0
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 0,
                  "decBy2Hb3Blk17p1En": 0,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 0,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 0,
                  "hbMux": 4,
                  "isGainCompEnabled": 0,
                  "gainComp9GainI": [ 16384, 16384, 16384, 16384, 16384, 16384 ],
                  "gainComp9GainQ": [ 0, 0, 0, 0, 0, 0 ]
                },
                "rxNbDem": {
                  "dpInFifo": {
                    "dpInFifoEn": 0,
                    "dpInFifoMode": 0,
                    "dpInFifoTestDataSel": 0
                  },
                  "rxNbNco": {
                    "rxNbNcoEn": 0,
                    "rxNbNcoConfig": {
                      "freq": 0,
                      "sampleFreq": 0,
                      "phase": 0,
                      "realOut": 0
                    }
                  },
                  "rxWbNbCompPFir": {
                    "bankSel": 0,
                    "rxWbNbCompPFirInMuxSel": 0,
                    "rxWbNbCompPFirEn": 0
                  },
                  "resamp": {
                    "rxResampEn": 0,
                    "resampPhaseI": 0,
                    "resampPhaseQ": 0
                  },
                  "gsOutMuxSel": 1,
                  "rxOutSel": 0,
                  "rxRoundMode": 0,
                  "dpArmSel": 0
                }
              },
              "lnaConfig": {
                "externalLnaPresent": false,
                "gpioSourceSel": 0,
                "externalLnaPinSel": 0,
                "settlingDelay": 0,
                "numberLnaGainSteps": 0,
                "lnaGainSteps_mdB": [ 0, 0, 0, 0 ],
                "lnaDigitalGainDelay": 0,
                "minGainIndex": 0,
                "lnaType": 0
              },
              "rxSsiConfig": {
                "ssiType": 0,
                "ssiDataFormatSel": 0,
                "numLaneSel": 0,
                "strobeType": 0,
                "lsbFirst": 0,
                "qFirst": 0,
                "txRefClockPin": 0,
                "lvdsIBitInversion": false,
                "lvdsQBitInversion": false,
                "lvdsStrobeBitInversion": false,
                "lvdsUseLsbIn12bitMode": 0,
                "lvdsRxClkInversionEn": false,
                "cmosDdrPosClkEn": false,
                "cmosClkInversionEn": false,
                "ddrEn": false,
                "rxMaskStrobeEn": false
              }
            }
          } ]
      },
      "tx": {
        "txInitChannelMask": 12,
        "txProfile": [ {
            "primarySigBandwidth_Hz": 38000000,
            "txInputRate_Hz": 61440000,
            "txInterfaceSampleRate_Hz": 61440000,
            "txOffsetLo_kHz": 0,
            "validDataDelay": 0,
            "txBbf3dBCorner_kHz": 50000,
            "outputSignaling": 0,
            "txPdBiasCurrent": 1,
            "txPdGainEnable": 0,
            "txPrePdRealPole_kHz": 1000000,
            "txPostPdRealPole_kHz": 530000,
            "txBbfPower": 2,
            "txExtLoopBackType": 0,
            "txExtLoopBackForInitCal": 0,
            "txPeakLoopBackPower": 0,
            "frequencyDeviation_Hz": 0,
            "txDpProfile": {
              "txPreProc": {
                "txPreProcSymbol0": 0,
                "txPreProcSymbol1": 0,
                "txPreProcSymbol2": 0,
                "txPreProcSymbol3": 0,
                "txPreProcSymMapDivFactor": 1,
                "txPreProcMode": 1,
                "txPreProcWbNbPfirIBankSel": 0,
                "txPreProcWbNbPfirQBankSel": 1
              },
              "txWbIntTop": {
                "txInterpBy2Blk30En": 0,
                "txInterpBy2Blk28En": 0,
                "txInterpBy2Blk26En": 0,
                "txInterpBy2Blk24En": 0,
                "txInterpBy2Blk22En": 0,
                "txWbLpfBlk22p1En": 0
              },
              "txNbIntTop": {
                "txInterpBy2Blk20En": 0,
                "txInterpBy2Blk18En": 0,
                "txInterpBy2Blk16En": 0,
                "txInterpBy2Blk14En": 0,
                "txInterpBy2Blk12En": 0,
                "txInterpBy3Blk10En": 0,
                "txInterpBy2Blk8En": 0,
                "txScicBlk32En": 0,
                "txScicBlk32DivFactor": 1
              },
              "txIntTop": {
                "interpBy3Blk44p1En": 1,
                "sinc3Blk44En": 0,
                "sinc2Blk42En": 0,
                "interpBy3Blk40En": 1,
                "interpBy2Blk38En": 0,
                "interpBy2Blk36En": 0
              },
              "txIntTopFreqDevMap": {
                "rrc2Frac": 0,
                "mpll": 0,
                "nchLsw": 0,
                "nchMsb": 0,
                "freqDevMapEn": 0,
                "txRoundEn": 1
              },
              "txIqdmDuc": {
                "iqdmDucMode": 2,
                "iqdmDev": 0,
                "iqdmDevOffset": 0,
                "iqdmScalar": 0,
                "iqdmThreshold": 0,
                "iqdmNco": {
                  "freq": 0,
                  "sampleFreq": 61440000,
                  "phase": 0,
                  "realOut": 0
                }
              }
            },
            "txSsiConfig": {
              "ssiType": 2,
              "ssiDataFormatSel": 4,
              "numLaneSel": 1,
              "strobeType": 0,
              "lsbFirst": 0,
              "qFirst": 0,
              "txRefClockPin": 1,
              "lvdsIBitInversion": false,
              "lvdsQBitInversion": false,
              "lvdsStrobeBitInversion": false,
              "lvdsUseLsbIn12bitMode": 0,
              "lvdsRxClkInversionEn": false,
              "cmosDdrPosClkEn": false,
              "cmosClkInversionEn": false,
              "ddrEn": true,
              "rxMaskStrobeEn": false
            }
          }, {
            "primarySigBandwidth_Hz": 38000000,
            "txInputRate_Hz": 61440000,
            "txInterfaceSampleRate_Hz": 61440000,
            "txOffsetLo_kHz": 0,
            "validDataDelay": 0,
            "txBbf3dBCorner_kHz": 50000,
            "outputSignaling": 0,
            "txPdBiasCurrent": 1,
            "txPdGainEnable": 0,
            "txPrePdRealPole_kHz": 1000000,
            "txPostPdRealPole_kHz": 530000,
            "txBbfPower": 2,
            "txExtLoopBackType": 0,
            "txExtLoopBackForInitCal": 0,
            "txPeakLoopBackPower": 0,
            "frequencyDeviation_Hz": 0,
            "txDpProfile": {
              "txPreProc": {
                "txPreProcSymbol0": 0,
                "txPreProcSymbol1": 0,
                "txPreProcSymbol2": 0,
                "txPreProcSymbol3": 0,
                "txPreProcSymMapDivFactor": 1,
                "txPreProcMode": 1,
                "txPreProcWbNbPfirIBankSel": 2,
                "txPreProcWbNbPfirQBankSel": 3
              },
              "txWbIntTop": {
                "txInterpBy2Blk30En": 0,
                "txInterpBy2Blk28En": 0,
                "txInterpBy2Blk26En": 0,
                "txInterpBy2Blk24En": 0,
                "txInterpBy2Blk22En": 0,
                "txWbLpfBlk22p1En": 0
              },
              "txNbIntTop": {
                "txInterpBy2Blk20En": 0,
                "txInterpBy2Blk18En": 0,
                "txInterpBy2Blk16En": 0,
                "txInterpBy2Blk14En": 0,
                "txInterpBy2Blk12En": 0,
                "txInterpBy3Blk10En": 0,
                "txInterpBy2Blk8En": 0,
                "txScicBlk32En": 0,
                "txScicBlk32DivFactor": 1
              },
              "txIntTop": {
                "interpBy3Blk44p1En": 1,
                "sinc3Blk44En": 0,
                "sinc2Blk42En": 0,
                "interpBy3Blk40En": 1,
                "interpBy2Blk38En": 0,
                "interpBy2Blk36En": 0
              },
              "txIntTopFreqDevMap": {
                "rrc2Frac": 0,
                "mpll": 0,
                "nchLsw": 0,
                "nchMsb": 0,
                "freqDevMapEn": 0,
                "txRoundEn": 1
              },
              "txIqdmDuc": {
                "iqdmDucMode": 2,
                "iqdmDev": 0,
                "iqdmDevOffset": 0,
                "iqdmScalar": 0,
                "iqdmThreshold": 0,
                "iqdmNco": {
                  "freq": 0,
                  "sampleFreq": 61440000,
                  "phase": 0,
                  "realOut": 0
                }
              }
            },
            "txSsiConfig": {
              "ssiType": 2,
              "ssiDataFormatSel": 4,
              "numLaneSel": 1,
              "strobeType": 0,
              "lsbFirst": 0,
              "qFirst": 0,
              "txRefClockPin": 1,
              "lvdsIBitInversion": false,
              "lvdsQBitInversion": false,
              "lvdsStrobeBitInversion": false,
              "lvdsUseLsbIn12bitMode": 0,
              "lvdsRxClkInversionEn": false,
              "cmosDdrPosClkEn": false,
              "cmosClkInversionEn": false,
              "ddrEn": true,
              "rxMaskStrobeEn": false
            }
          } ]
      },
      "sysConfig": {
        "duplexMode": 0,
        "fhModeOn": 1,
        "numDynamicProfiles": 1,
        "mcsMode": 0,
        "mcsInterfaceType": 0,
        "adcTypeMonitor": 1,
        "pllLockTime_us": 77,
        "pllPhaseSyncWait_us": 0,
        "pllModulus": {
          "modulus": [ 8388593, 8388593, 8388593, 8388593, 8388593 ],
          "dmModulus": [ 8388593, 8388593 ]
        },
        "warmBootEnable": false
      },
      "pfirBuffer": {
        "pfirRxWbNbChFilterCoeff_A": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 475, 312, -782, -39, 1201, -777, -1182, 1981, 177, -2874, 1941, 2393, -4416, 225, 5594, -4581, -3668, 8650, -1992, -9342, 9646, 4213, -15137, 6404, 13615, -18199, -2610, 23969, -15142, -17198, 31204, -3269, -34604, 30213, 17955, -49337, 16361, 45636, -53954, -12567, 72920, -40769, -54562, 89506, -4148, -102269, 83183, 57280, -142874, 41767, 139213, -158628, -45955, 231679, -125964, -193870, 320642, -4532, -442087, 390927, 347244, -1055854, 429729, 4391599, 4391599, 429729, -1055854, 347244, 390927, -442087, -4532, 320642, -193870, -125964, 231679, -45955, -158628, 139213, 41767, -142874, 57280, 83183, -102269, -4148, 89506, -54562, -40769, 72920, -12567, -53954, 45636, 16361, -49337, 17955, 30213, -34604, -3269, 31204, -17198, -15142, 23969, -2610, -18199, 13615, 6404, -15137, 4213, 9646, -9342, -1992, 8650, -3668, -4581, 5594, 225, -4416, 2393, 1941, -2874, 177, 1981, -1182, -777, 1201, -39, -782, 312, 0 ]
        },
        "pfirRxWbNbChFilterCoeff_B": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8388608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirRxWbNbChFilterCoeff_C": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 475, 312, -782, -39, 1201, -777, -1182, 1981, 177, -2874, 1941, 2393, -4416, 225, 5594, -4581, -3668, 8650, -1992, -9342, 9646, 4213, -15137, 6404, 13615, -18199, -2610, 23969, -15142, -17198, 31204, -3269, -34604, 30213, 17955, -49337, 16361, 45636, -53954, -12567, 72920, -40769, -54562, 89506, -4148, -102269, 83183, 57280, -142874, 41767, 139213, -158628, -45955, 231679, -125964, -193870, 320642, -4532, -442087, 390927, 347244, -1055854, 429729, 4391599, 4391599, 429729, -1055854, 347244, 390927, -442087, -4532, 320642, -193870, -125964, 231679, -45955, -158628, 139213, 41767, -142874, 57280, 83183, -102269, -4148, 89506, -54562, -40769, 72920, -12567, -53954, 45636, 16361, -49337, 17955, 30213, -34604, -3269, 31204, -17198, -15142, 23969, -2610, -18199, 13615, 6404, -15137, 4213, 9646, -9342, -1992, 8650, -3668, -4581, 5594, 225, -4416, 2393, 1941, -2874, 177, 1981, -1182, -777, 1201, -39, -782, 312, 0 ]
        },
        "pfirRxWbNbChFilterCoeff_D": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8388608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirTxWbNbPulShpCoeff_A": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirTxWbNbPulShpCoeff_B": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirTxWbNbPulShpCoeff_C": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirTxWbNbPulShpCoeff_D": {
          "numCoeff": 128,
          "symmetricSel": 0,
          "tapsSel": 3,
          "gainSel": 2,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirRxNbPulShp": [ {
            "numCoeff": 128,
            "symmetricSel": 0,
            "taps": 128,
            "gainSel": 2,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8388608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          }, {
            "numCoeff": 128,
            "symmetricSel": 0,
            "taps": 128,
            "gainSel": 2,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8388608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagLowTiaLowSRHp": [ {
            "numCoeff": 21,
            "coefficients": [ -12, 83, -293, 734, -1489, 2594, -3965, 5403, -6516, 5868, 27957, 5868, -6516, 5403, -3965, 2594, -1489, 734, -293, 83, -12 ]
          }, {
            "numCoeff": 21,
            "coefficients": [ -12, 83, -293, 734, -1489, 2594, -3965, 5403, -6516, 5868, 27957, 5868, -6516, 5403, -3965, 2594, -1489, 734, -293, 83, -12 ]
          } ],
        "pfirRxMagLowTiaHighSRHp": [ {
            "numCoeff": 21,
            "coefficients": [ -62, 194, 80, -829, 201, 1857, -179, -4602, -1259, 11431, 19102, 11431, -1259, -4602, -179, 1857, 201, -829, 80, 194, -62 ]
          }, {
            "numCoeff": 21,
            "coefficients": [ -62, 194, 80, -829, 201, 1857, -179, -4602, -1259, 11431, 19102, 11431, -1259, -4602, -179, 1857, 201, -829, 80, 194, -62 ]
          } ],
        "pfirRxMagHighTiaHighSRHp": [ {
            "numCoeff": 21,
            "coefficients": [ 39, -229, 714, -1485, 2134, -1844, -219, 4147, -8514, 8496, 26292, 8496, -8514, 4147, -219, -1844, 2134, -1485, 714, -229, 39 ]
          }, {
            "numCoeff": 21,
            "coefficients": [ 39, -229, 714, -1485, 2134, -1844, -219, 4147, -8514, 8496, 26292, 8496, -8514, 4147, -219, -1844, 2134, -1485, 714, -229, 39 ]
          } ],
        "pfirRxMagLowTiaLowSRLp": [ {
            "numCoeff": 21,
            "coefficients": [ -12, 83, -293, 733, -1488, 2593, -3963, 5401, -6514, 5870, 27953, 5870, -6514, 5401, -3963, 2593, -1488, 733, -293, 83, -12 ]
          }, {
            "numCoeff": 21,
            "coefficients": [ -12, 83, -293, 733, -1488, 2593, -3963, 5401, -6514, 5870, 27953, 5870, -6514, 5401, -3963, 2593, -1488, 733, -293, 83, -12 ]
          } ],
        "pfirRxMagLowTiaHighSRLp": [ {
            "numCoeff": 21,
            "coefficients": [ -62, 194, 80, -828, 201, 1855, -180, -4597, -1254, 11428, 19093, 11428, -1254, -4597, -180, 1855, 201, -828, 80, 194, -62 ]
          }, {
            "numCoeff": 21,
            "coefficients": [ -62, 194, 80, -828, 201, 1855, -180, -4597, -1254, 11428, 19093, 11428, -1254, -4597, -180, 1855, 201, -828, 80, 194, -62 ]
          } ],
        "pfirRxMagHighTiaHighSRLp": [ {
            "numCoeff": 21,
            "coefficients": [ 39, -229, 712, -1481, 2128, -1841, -215, 4131, -8490, 8497, 26266, 8497, -8490, 4131, -215, -1841, 2128, -1481, 712, -229, 39 ]
          }, {
            "numCoeff": 21,
            "coefficients": [ 39, -229, 712, -1481, 2128, -1841, -215, 4131, -8490, 8497, 26266, 8497, -8490, 4131, -215, -1841, 2128, -1481, 712, -229, 39 ]
          } ],
        "pfirTxMagComp1": {
          "numCoeff": 21,
          "coefficients": [ 69, -384, 1125, -2089, 2300, -165, -5248, 12368, -13473, 4864, 34039, 4864, -13473, 12368, -5248, -165, 2300, -2089, 1125, -384, 69 ]
        },
        "pfirTxMagComp2": {
          "numCoeff": 21,
          "coefficients": [ 69, -384, 1125, -2089, 2300, -165, -5248, 12368, -13473, 4864, 34039, 4864, -13473, 12368, -5248, -165, 2300, -2089, 1125, -384, 69 ]
        },
        "pfirTxMagCompNb": [ {
            "numCoeff": 13,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          }, {
            "numCoeff": 13,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagCompNb": [ {
            "numCoeff": 13,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          }, {
            "numCoeff": 13,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ]
      }
    }
    )#
    @@P`p@ 8@ @@8B PC <B PC @B XC DB XC HB XC LB `C PB hC XB lC \B tC `B tC dB tC hB tC lB tC pB tC tB tC xB tC |B tC �B tC �B tC �B tC �B tC �B tC �B tC �B tC �B tC �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C �B �C C �C C �C C �C C �C C �C C �C C �C C �C  C �C $C �C (C �C ,C �C 0C �C 4C �C 8C �C <C �C @C �C DC �C HC �C LC �C �������������Q�����������������������ϙ��H�Q������ϘQ���������������������������������������������wt~{{~���������� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������i,�a  @        $ 0 @ @ \ L p P t X | ` � h � p � t � x � | � � � � � � � � � � � � � � � � � � � � � � � � , � 4  P  h  � $ � 4 � 8 � < � @ � D � H � L � P � T � X � \ � h � l � p � �  � 8 � @ � X � p � t � x � � � � � � � � � � � � � � � � � � � �  � ������������QRS��{jH������QRS��{jH�����������Q�ő�����ΘQ����Q����Q����Q��������Θ���������ΘQ�ŘQ�����ŘŘŘŘ��Θ�ĘQ���Ę���Q������������Q�ŘH�H�����������ĘQ��Ϙ���Q����������������������������������˜H������H�H�Q�H�������������P�����Q�QyQi@��������������Q�Ȫ�Q��H����Q�Ȫ�Q��H��Q�Ȫ�Q��H����Ƙ�������������������������Q�ŢQ������Q���Ę�H����������Q���H��Q�Q�H��H�����//�������M�������������������*��e�85������;��:���95���� �.Q*��<�0�1�����4�(�,�3/-*00�=��*�������8v8~88�PPQ�-�+�2��8v��888��886888�����',',,��,�,,,������*�������������/*��OTT���������)� ������������)�4(������Ȁ������ZZ7��//:�/M����/��//�/�44��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������s`�  @        $ 0 @ @ \ L p P t X | ` � h � p � t � x � | � � � � � � � � � � � � � � � � � � � � � � � � , � 4  P  h  � $ � 4 � 8 � < � @ � D � H � L � P � T � X � \ � h � l � p � �  � 8 � @ � X � p � t � x � � � � � � � � � � � � � � � � � � � �  � ������������QR��yjH������QR��yjH�����������Q�ő�����ΘQ����Q����Q����Q��������Θ���������ΘQ�ŘQ�����ŘŘŘŘ��Θ�ĘQ���Ę���Q������������Q�ŘH�H�����������ĘQ��Ϙ���Q����������������������������������˜H������H�H�Q�H�������������P�����Q�QyQi@��������������Q�Ȫ�Q��H����Q�Ȫ�Q��H��Q�Ȫ�Q��H����Ƙ�������������������������Q�ŢQ������Q���Ę�H����������Q���H��Q�Q�H��H�����//�������M�������������������*
    ��f�85������;��:���95���� �.Q
    *
    ��<�0�1�����4�(�,�3/-*
    00�=��*
    �����
    ��
    :v:~::�
    P
    P
    Q
    �-�+�2��:v�
    �:::��::6:::���
    ��'.'..��.�...���
    �
    ��
    *
    ���
    �
    ��
    ��
    ���
    �
    �
    /*��OTT
    ���������
    )
    � ������������
    )
    �4(�������Ȁ�������[[7��//:�/M����/��//�/�4
    4
    �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������  @ �  �  � $ � 4  D 4 T L X P ` X d X l ` p ` t h x h � t � | � | � | � � � T � h 0 � P   t x � � � � � � � � � � � � � � � � � � �  �   � < � D � |  �  �   � $ � 0 � < � @ � D � T 	 d $	 l ,	 t D	 | \	 � `	 � d	 � l	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 ��ŘŘ������������QRS��{jH������QRS��{jH�������������Q�ő����ΘQ�����Q���������Θ�����������Q�����������HQiQ�H�����������H�������W��Q����Q��W��������������������Q�ș�H����������������Q�ŘŘ�����Q��q���W��Q��������I�Q��W���Q��q�������ĘQ��������������ĘŘQ�ŘQ��q���Q��W����ĘŘ��������������Q�����Q��W��������H�����������Q�����Q�����������������������������������������O�����������Q�HH������������Q���Q��H������ȪPrH��Q���Q��H����������H�����ȪPrH��Q����q����P����˜Q��H���Q�QyQi@������������Q�Ȫ�Q��H������Q�Ȫ�Q��H���������������������������Q�ŢQ����R����H�����Ř��ŘQ��H�������������������x�0�1�x�������M��������������������c,,�85������������95���x�3��0@@.0@@������gcU0YU0��{d c{1J�JJ8�a�0� !�0�@)��{��{0���0@.0@�tu�ut�ttu�YYh@@�YYh@@%��x�.�4�:�a��0<� !��{�0{���@)�����{��{�($x��,��x��"�#�0�)�a��;�+���0@@.0@@�����c�"#0�)�a����J����<���;;<�-�2�!ut0�0�00,0[0000,0a000[00,00a00,0���: `�: ���b�<߸���#=�����, , , ���: ��<#=�cU0��Y�YU0��{d ��c{�1�1�ut�U0��YU0��{d �c{�*��{���{�OTT{~���x�xx{~������4(�������Ȁ�������ZZ7���x��'x�/x�x�M��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������t�w  @ �  �  � $ � 4  D 4 T L X P ` X d X l ` p ` t h x h � t � | � | � | � � � T � h 0 � P   t x � � � � � � � � � � � � � � � � � � �  �   � < � D � |  �  �   � $ � 0 � < � @ � D � T 	 d $	 l ,	 t D	 | \	 � `	 � d	 � l	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 � �	 ��ŘŘ������������QR��yjH������QR��yjH�������������Q�ő����ΘQ�����Q���������Θ�����������Q�����������HQiQ�H�����������H�������W��Q����Q��W��������������������Q�ș�H����������������Q�ŘŘ�����Q��q���W��Q��������I�Q��W���Q��q�������ĘQ��������������ĘŘQ�ŘQ��q���Q��W����ĘŘ��������������Q�����Q��W��������H�����������Q�����Q�����������������������������������������O�����������Q�HH������������Q���Q��H������ȪPrH��Q���Q��H����������H�����ȪPrH��Q����q����P����˜Q��H����Q�QyQi@������������Q�Ȫ�Q��H������Q�Ȫ�Q��H���������������������������Q�ŢQ����R����H�����Ř��ŘS��H�������������������x�0�1�x���M������������d,,�85������������95���x�3��4@@.4@@���hdU4YU4��~d  d~1J�JJ:�a�4� !�����)��~��~4%��4@.4@�tu�ut�ttu�YYh@@�YYh@@%��x�.�4�:�a��4<� !��~���~����)�����~��~�($x��,��x��"�#�4�)�a��;�+���4@@.4@@��d�"#4�)�a��%�J����<���;;<�-�2�!ut4�4�44,4[4444,4[444[44,44a44,4���:&`�:&���b�>߸���#?�����,&,&,&���:&��>#?�cU4��Y�YU4��~d  ��!d~�1�1�ut�U4��YU4��~d  �!d~�*��~��~��OTT�����������������4(���Ȁ���[[7���x��'x�/x�x�M�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������;�h�

  • Thanks for the information. You can find API version when you connect to your board in TES:

    or in iio-oscilloscope:

    or in your adi-linux driver code:

    or in the comments of your C99 project files exported from TES:

    Since you use custom board, you diverge from our reference design, so this cannot strictly apply to you. But still please make sure that your Linux system (e.g. Kuiper Linux) uses API driver version that matches that of the generated profile and stream (61.44.json and bin), which you presumably export from TES. To check your API version in Kuiper Linux during runtime you can run following:

    root@analog:/sys/kernel/debug/iio/iio:device1# dmesg | grep "API version: 68"
    [ 8.114326] adrv9002 spi0.0: adrv9002-phy Rev 12.0, Firmware 0.22.30, Stream 0.7.11.0, API version: 68.13.7 successfully initialized

     -Stefan

  • [   10.402481] adrv9002 spi1.0: adrv9002-phy Rev 12.0, Firmware 0.22.30,  Stream 0.7.11.0,  API version: 68.13.7 successfully initialized



    So it appears I am using API: 68.13.7

    So it looks like I am using TES 25, where-as you are using 26.

    Can you at least confirm that 64 hops per hop channel should work?

  • As a general rule, if you can configure the session in TES then yes, it should work. I believe TES 25 uses API version 68.10.1. Your profile should either be generated from TES 26 for driver 68.13.7 or you should downgrade your driver API version to 68.10.1, please see here: libadrv9002-iio Releases

  • I have now downloaded TES26 and regenerated my project files.

    The JSON for TES 25 and TES 26 are exactly the same.

    The Binary files has changed slightly. When I re-ran my code I saw no change in output.

    I know in the example hopping code there is a comment about the tables being limited to 32. (https://github.com/analogdevicesinc/linux_image_ADI-scripts/blob/2b8b6305846c73d638ca9f76ea2fecb56f92abc4/test_adrv9002_fh.sh#L10) I'm not clear on what this note is about.

    Based on TES, it appears that I can add 32 hops to each table, A/B, and it be able to index across them, but this is not working. If this isn't allowed, it doesn't make sense why I would be allowed 6 GPIO for controlling the index.

    Please help.

  • Hi John, apologies for the delay. I understand you are trying to hop across 64 frequencies, with transmit only. Then you would assign LO1 for Tx1 and LO2 for Tx2, or vice versa. Please correct me if I'm wrong.

    As noted in TES->Configure->Carriers:

    Indeed, there is additional restriction in table size when using dual LO, this can be seen in our SDK:

    adrv9001-sdk\pkg\production\c_src\devices\adrv9001\public\src\adi_adrv9001_fh.c:313

    uint8_t maxNumHopFrequencies = (mode != ADI_ADRV9001_FHMODE_LO_RETUNE_REALTIME_PROCESS_DUAL_HOP) ? ADI_ADRV9001_FH_MAX_HOP_TABLE_SIZE : (ADI_ADRV9001_FH_MAX_HOP_TABLE_SIZE) / 2;

    That means you would load 32 frequencies at a time (16 +16) before loading a second half of your table. You can load your profile in the script you mentioned and observe sweeping tones on spectrum analyzer. How are you testing this?

    I agree that 6 GPIOs for controlling only 32 hops looks unintuitive. You could have also discovered a bug in TES, could you please also send me the .taxidi session file?

    Thanks, -Stefan

Reply
  • Hi John, apologies for the delay. I understand you are trying to hop across 64 frequencies, with transmit only. Then you would assign LO1 for Tx1 and LO2 for Tx2, or vice versa. Please correct me if I'm wrong.

    As noted in TES->Configure->Carriers:

    Indeed, there is additional restriction in table size when using dual LO, this can be seen in our SDK:

    adrv9001-sdk\pkg\production\c_src\devices\adrv9001\public\src\adi_adrv9001_fh.c:313

    uint8_t maxNumHopFrequencies = (mode != ADI_ADRV9001_FHMODE_LO_RETUNE_REALTIME_PROCESS_DUAL_HOP) ? ADI_ADRV9001_FH_MAX_HOP_TABLE_SIZE : (ADI_ADRV9001_FH_MAX_HOP_TABLE_SIZE) / 2;

    That means you would load 32 frequencies at a time (16 +16) before loading a second half of your table. You can load your profile in the script you mentioned and observe sweeping tones on spectrum analyzer. How are you testing this?

    I agree that 6 GPIOs for controlling only 32 hops looks unintuitive. You could have also discovered a bug in TES, could you please also send me the .taxidi session file?

    Thanks, -Stefan

Children
  • That is slightly wrong. I am planning to do 2T2R, it's just that right now I am only testing the transmit path.

    I did see that section of code, But I do not understand why the Linux Kernel is limiting it to 16+16 frequencies. Based on my reading in UG-1828 Table A and Table B should be 64 frequencies each (64+64 = 128). But because we are using Dual Hop Table A and B are split in half, which means I should be getting (32+32 and 32+32). But The Linux kernel doesn't appear to be using my Hop1_TableB values when I tell it to hop on those indices. It just acts like I'm at index 0.


    From UG-1828:



    How am I testing this:
    You can see above in my first post how I am setting everything up. I load my profile, and set everything for Dual hop. I load the 4 tables each with 32 hop values. I then start hopping via software. 

    1. I set my index

    2. I enable my channel

    3. I toggle my hop signal

    4. I disable my channel

    What I am seeing:

    For the first 32 hops my data is in the correct location.

    For index 32-63 my hop signal is in the same location as index 0. Once my system rolls back around it hops again through 0-31.

    I have attached my TES project file it seems like you will need to load your own FH tables (See post 1)

    (Note the rename added .txt)

    {
      "Version": "v0.26.0",
      "IpAddress": "192.168.1.10",
      "PortNumber": "8080",
      "UserName": "root",
      "Password": "analog",
      "DeviceClockFrequency_Hz": "38400000",
      "DeviceClockDivisor": "ADRV9001_DEVICECLOCKDIVISOR_2",
      "ProcessorClockDivisor": "DIVISOR_1",
      "GainTableType": "ADRV9001_RX_GAIN_CORRECTION_TABLE",
      "Duplex": "TDD",
      "Setup": "LTE",
      "Channels": "Custom",
      "Diversity": "False",
      "ClockPllMode": "HIGH_PERFORMANCE",
      "AdcRate": "HIGH",
      "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": "ADRV9001_TX_IQ",
      "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": "FrequencyHopping",
      "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": "38400",
      "ExpandedCustomSearch": "False",
      "NumSamples": "4096",
      "DeviceClockOutputEnabled": "True",
      "AllowPllRetuning": "False",
      "SwapLoMapping": "False",
      "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": "Megahertz",
      "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": "61440000",
      "Tx1.SsiRefClock": "ADRV9001_SSI_TX_REF_CLOCK_PIN_DCLK_OUT_ENABLED",
      "Tx1.CarrierFrequency_Hz": "1910000000",
      "Tx1.Interpolation": "1",
      "Tx1.ContinuousTransfer": "True",
      "Tx1.RfBandwidth_Hz": "38000000",
      "Tx1.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_HIGH",
      "Tx1.DesiredLoForDualHop": "ADRV9001_LOSEL_LO1",
      "Tx1.SsiInterfaceRate_Hz": "61440000",
      "Tx1.Lpf3dBCornerFrequency_Hz": "50000000",
      "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": "True",
      "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.CaptureDelay_us": "0",
      "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.EnableRepeatedEstimationInTDD": "False",
      "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",
      "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": "1862",
      "Tx1.Delay.RiseToAnalogOnDelay_ns": "0",
      "Tx1.Delay.RiseToOnDelay_ns": "8000",
      "Tx1.Delay.HoldDelay_ns": "0",
      "Tx1.Delay.FallToOffDelay_ns": "1862",
      "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": "1910000000",
      "Rx1.AdcOptimization": "ADRV9001_ADC_HP",
      "Rx1.AnalogFilterOrder": "ORDER_1",
      "Rx1.RfBandwidth_Hz": "38000000",
      "Rx1.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_HIGH",
      "Rx1.DesiredLoForDualHop": "ADRV9001_LOSEL_LO1",
      "Rx1.DataportSampleRate_Hz": "61440000",
      "Rx1.SsiInterfaceRate_Hz": "61440000",
      "Rx1.Lpf3dBCornerFrequency_Hz": "40000000",
      "Rx1.Lpf1dBFrequency_Hz": "20000000",
      "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": "True",
      "Rx1.FrequencyCorrection.IsImmediate": "True",
      "Rx1.FrequencyCorrection.Freq_Hz": "0",
      "Rx1.BbdcRejection.BasebandDcRejection": "ADRV9001_BBDC_REJECTION_ENABLED",
      "Rx1.Delay.PropagationDelay_ns": "2024",
      "Rx1.Delay.RiseToAnalogOnDelay_ns": "0",
      "Rx1.Delay.RiseToOnDelay_ns": "8000",
      "Rx1.Delay.HoldDelay_ns": "2024",
      "Rx1.Delay.FallToOffDelay_ns": "0",
      "Rx1.Gain.InitRxGain": "247",
      "Rx1.Gain.IsDirtyAgc": "False",
      "Rx1.Gain.IsDirtyPinControl": "False",
      "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.ResetOnRxOn": "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_QEC_FIC, ADRV9001_INIT_CAL_RX_RF_DC_OFFSET",
      "Rx1.InterfaceGain.SeedGain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "Rx1.InterfaceGain.EndOfFrameGain_dB": "ADRV9001_RX_INTERFACE_GAIN_18_DB",
      "Rx1.InterfaceGain.RssiDuration": "255",
      "Rx1.InterfaceGain.RssiMovingAverageDuration": "10",
      "Rx1.InterfaceGain.GainControlAutomaticThreshold_dBFS": "-2",
      "Rx1.InterfaceGain.SignalPAR": "15",
      "Rx1.InterfaceGain.EnableFastAttack": "False",
      "Rx1.LoopGain": "65536",
      "Rx1.Flags": "ADRV9001_TRACKING_CAL_RX_BBDC, 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": "8000",
      "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": "14",
      "ORx1.Gain.MinExtantGainIndex": "2",
      "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.ResetOnRxOn": "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_QEC_FIC, ADRV9001_INIT_CAL_RX_RF_DC_OFFSET",
      "ORx1.InterfaceGain.Gain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "ORx1.InterfaceGain.SeedGain_dB": "ADRV9001_RX_INTERFACE_GAIN_18_DB",
      "ORx1.InterfaceGain.EndOfFrameGain_dB": "ADRV9001_RX_INTERFACE_GAIN_18_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.InterfaceGain.GainControlAutomaticThreshold_dBFS": "-2",
      "ORx1.InterfaceGain.SignalPAR": "15",
      "ORx1.InterfaceGain.EnableFastAttack": "False",
      "ORx1.LoopGain": "65536",
      "ORx1.Flags": "ADRV9001_TRACKING_CAL_RX_BBDC, 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": "61440000",
      "Tx2.SsiRefClock": "ADRV9001_SSI_TX_REF_CLOCK_PIN_DCLK_OUT_ENABLED",
      "Tx2.CarrierFrequency_Hz": "1910000000",
      "Tx2.Interpolation": "1",
      "Tx2.ContinuousTransfer": "True",
      "Tx2.RfBandwidth_Hz": "38000000",
      "Tx2.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_HIGH",
      "Tx2.DesiredLoForDualHop": "ADRV9001_LOSEL_LO2",
      "Tx2.SsiInterfaceRate_Hz": "61440000",
      "Tx2.Lpf3dBCornerFrequency_Hz": "50000000",
      "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": "True",
      "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.CaptureDelay_us": "0",
      "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.EnableRepeatedEstimationInTDD": "False",
      "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": "ADRV9001_INIT_CAL_TX_QEC, ADRV9001_INIT_CAL_TX_LO_LEAKAGE, ADRV9001_INIT_CAL_TX_LB_PD",
      "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": "1862",
      "Tx2.Delay.RiseToAnalogOnDelay_ns": "0",
      "Tx2.Delay.RiseToOnDelay_ns": "8000",
      "Tx2.Delay.HoldDelay_ns": "0",
      "Tx2.Delay.FallToOffDelay_ns": "1862",
      "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": "1910000000",
      "Rx2.AdcOptimization": "ADRV9001_ADC_HP",
      "Rx2.AnalogFilterOrder": "ORDER_1",
      "Rx2.RfBandwidth_Hz": "38000000",
      "Rx2.PowerConsumption": "ADRV9001_COMPONENT_POWER_LEVEL_HIGH",
      "Rx2.DesiredLoForDualHop": "ADRV9001_LOSEL_LO2",
      "Rx2.DataportSampleRate_Hz": "61440000",
      "Rx2.SsiInterfaceRate_Hz": "61440000",
      "Rx2.Lpf3dBCornerFrequency_Hz": "40000000",
      "Rx2.Lpf1dBFrequency_Hz": "20000000",
      "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": "True",
      "Rx2.FrequencyCorrection.IsImmediate": "True",
      "Rx2.FrequencyCorrection.Freq_Hz": "0",
      "Rx2.BbdcRejection.BasebandDcRejection": "ADRV9001_BBDC_REJECTION_ENABLED",
      "Rx2.Delay.PropagationDelay_ns": "2024",
      "Rx2.Delay.RiseToAnalogOnDelay_ns": "0",
      "Rx2.Delay.RiseToOnDelay_ns": "8000",
      "Rx2.Delay.HoldDelay_ns": "2024",
      "Rx2.Delay.FallToOffDelay_ns": "0",
      "Rx2.Gain.InitRxGain": "247",
      "Rx2.Gain.IsDirtyAgc": "False",
      "Rx2.Gain.IsDirtyPinControl": "False",
      "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.ResetOnRxOn": "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.SeedGain_dB": "ADRV9001_RX_INTERFACE_GAIN_0_DB",
      "Rx2.InterfaceGain.EndOfFrameGain_dB": "ADRV9001_RX_INTERFACE_GAIN_18_DB",
      "Rx2.InterfaceGain.RssiDuration": "255",
      "Rx2.InterfaceGain.RssiMovingAverageDuration": "10",
      "Rx2.InterfaceGain.GainControlAutomaticThreshold_dBFS": "-2",
      "Rx2.InterfaceGain.SignalPAR": "15",
      "Rx2.InterfaceGain.EnableFastAttack": "False",
      "Rx2.LoopGain": "65536",
      "Rx2.Flags": "ADRV9001_TRACKING_CAL_RX_BBDC, 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": "8000",
      "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": "14",
      "ORx2.Gain.MinExtantGainIndex": "2",
      "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.ResetOnRxOn": "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.SeedGain_dB": "ADRV9001_RX_INTERFACE_GAIN_18_DB",
      "ORx2.InterfaceGain.EndOfFrameGain_dB": "ADRV9001_RX_INTERFACE_GAIN_18_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.InterfaceGain.GainControlAutomaticThreshold_dBFS": "-2",
      "ORx2.InterfaceGain.SignalPAR": "15",
      "ORx2.InterfaceGain.EnableFastAttack": "False",
      "ORx2.LoopGain": "65536",
      "ORx2.Flags": "ADRV9001_TRACKING_CAL_RX_BBDC, 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": "INTERNAL",
      "LO1.PowerConsumption": "ADRV9001_PLL_POWER_LOW",
      "LO1.LoopBandwidth_kHz": "300",
      "LO1.PllCalibration": "ADRV9001_PLL_CALIBRATION_FAST",
      "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_FAST",
      "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.LnaType": "ADRV9001_EXTERNAL_LNA_TYPE_SINGLE",
      ".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_RETUNE_REALTIME_PROCESS_DUAL_HOP",
      "FrequencyHopping.MinFrameDuration_us": "360",
      "FrequencyHopping.PllLockWait_us": "77",
      "FrequencyHopping.PllPhaseSyncWait_us": "0",
      "FrequencyHopping.TransitionTime_us": "110",
      "FrequencyHopping.DynamicTableLoad": "False",
      "FrequencyHopping.NumberOfRowsToLoad": "ADRV9001_FH_HOP_PER_DYNAMIC_LOAD_ONE",
      "FrequencyHopping.ZeroIf": "False",
      "FrequencyHopping.MinOperatingFrequency_Hz": "900000000",
      "FrequencyHopping.MaxOperatingFrequency_Hz": "3040000000",
      "FrequencyHopping.MaxRxGainIndex": "0",
      "FrequencyHopping.MinRxGainIndex": "0",
      "FrequencyHopping.GainSetupByPin": "False",
      "FrequencyHopping.TableIndexCtrl": "ADRV9001_TABLEINDEXCTRL_GPIO",
      "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_DIGITAL_02",
      "FrequencyHopping.ADRV9001_GPIO_SIGNAL_FH_HOP_2.Pin": "ADRV9001_GPIO_DIGITAL_03",
      "FfhTableA.Enabled": "True",
      "FfhTableA.FileName": "FH64-2400.csv",
      "FfhTableB.Enabled": "True",
      "FfhTableB.FileName": "FH64-915.csv",
      "FrequencyHopping.TableIndexByPin.TableIndices": "[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63]",
      "FrequencyHopping.TableIndexByPin.TableIndexSequence.FileName": "tableIndexSequence_1.csv",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_1": "ADRV9001_GPIO_DIGITAL_04",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_2": "ADRV9001_GPIO_DIGITAL_05",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_3": "ADRV9001_GPIO_DIGITAL_06",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_4": "ADRV9001_GPIO_DIGITAL_07",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_5": "ADRV9001_GPIO_DIGITAL_08",
      "FrequencyHopping.TableIndexByPin.TABLE_INDEX_PIN_6": "ADRV9001_GPIO_DIGITAL_09",
      "FrequencyHopping.RuntimeFrameIndex": "0",
      "FrequencyHopping.NumChannels": "0",
      "FrequencyHopping.TableSwitchSequence1.MayEnable": "True",
      "FrequencyHopping.TableSwitchSequence1.MayChoose": "True",
      "FrequencyHopping.TableSwitchSequence1.Switches": "[]",
      "FrequencyHopping.TableSwitchSequence1.FileName": "Disabled",
      "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": ""
    }

  • Hi John, thanks for your patience and apologies for the confusing documentation. This 32-table entry restriction in case of dual LO is not communicated well, but not sure if we can do much in Linux kernel as this seems to be a firmware limitation. Back to your use case - if you want to jump over 64 frequencies, can you just use single table of 64 entries, not in dual LO mode?

  • No, because the goal in the end is that Hop 1 is hopping over 915, and Hop 2 is hopping over 2.4GHz range.

    So to confirm:
    The ADRV9002 is limited in Dual Hop mode to only 32 hop frequencies per hop channel? 

  • So if that's the case how do I switch between Table A1 and Table B1? The  UG-1828 documents indicates there is a Table Select Pin I can configure. But I'm not sure how I configure that in linux. Would the Table Select Pin allow me to switch between A(1/2) and B(1/2). Otherwise it seems like the Table B(1/2) are useless in Dual Hop mode.

    Am I missing something?

  • I received an e-mail saying this thread was waiting for my response. So I'm posting this message as a "ping", and a request for continued supported on this thread. Thank you!

  • For people who come after me:

    The solution appear to be to use the TABLE SELECT PIN as a the MSB of the index. This allows for 64 entires per hop(1/2). Using Table A1/2 and B1/2.

    iio_attr -D adrv9002-phy fh_table_index_control_npins 5
    iio_attr -D adrv9002-phy fh_table_index_control_pin1 5
    iio_attr -D adrv9002-phy fh_table_index_control_pin2 6
    iio_attr -D adrv9002-phy fh_table_index_control_pin3 7
    iio_attr -D adrv9002-phy fh_table_index_control_pin4 8
    iio_attr -D adrv9002-phy fh_table_index_control_pin5 9
    iio_attr -D adrv9002-phy fh_hop1_table_select_pin_set 10


    The above code would need to be extended to handle Table Switch 2.