Post Go back to editing

Configure frequency hopping (FH) for ADRV9002 via IIO

Category: Software
Product Number: ADRV9002

Target platform: ADRV9002+Xilinx ZCU102

I'm trying to configure frequency hopping via Libiio for ADRV9002:

OS: Analog Devices Kuiper Linux
(wiki.analog.com/.../kuiper-linux)

Linux analog 6.1.7
Libiio version: 0.25 (git tag: b6028fd) backends: local xml ip usb

/sys/bus/iio/devices# iio_attr -u ip:192.168.1.90 -d
IIO context has 26 devices:
hwmon0, ina226-u76: found 2 device attributes
hwmon1, ina226-u77: found 2 device attributes
hwmon10, ina226-u79: found 2 device attributes
hwmon11, ina226-u81: found 2 device attributes
hwmon12, ina226-u80: found 2 device attributes
hwmon13, ina226-u84: found 2 device attributes
hwmon14, ina226-u16: found 2 device attributes
hwmon15, ina226-u65: found 2 device attributes
hwmon16, ina226-u74: found 2 device attributes
hwmon17, ina226-u75: found 2 device attributes
hwmon18, max20751: found 0 device attributes
hwmon19, max20751: found 0 device attributes
hwmon2, ina226-u78: found 2 device attributes
hwmon3, ina226-u87: found 2 device attributes
hwmon4, ina226-u85: found 2 device attributes
hwmon5, ina226-u86: found 2 device attributes
hwmon6, ina226-u93: found 2 device attributes
hwmon7, ina226-u88: found 2 device attributes
hwmon8, ina226-u15: found 2 device attributes
hwmon9, ina226-u92: found 2 device attributes
iio:device0, xilinx-ams: found 1 device attributes
iio:device1, adrv9002-phy: found 17 device attributes
iio:device2, axi-adrv9002-rx-lpc: found 3 device attributes
iio:device3, axi-core-tdd: found 12 device attributes
iio:device4, axi-adrv9002-tx-lpc: found 3 device attributes
iio_sysfs_trigger: found 2 device attributes

/sys/bus/iio/devices# iio_attr -u ip:192.168.1.90 -d adrv9002-phy
dev 'adrv9002-phy', attr 'frequency_hopping_hop1_signal_trigger', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'frequency_hopping_hop1_table_a', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'frequency_hopping_hop1_table_b', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'frequency_hopping_hop1_table_select', value :ERROR: Unknown error 524
dev 'adrv9002-phy', attr 'frequency_hopping_hop2_signal_trigger', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'frequency_hopping_hop2_table_a', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'frequency_hopping_hop2_table_b', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'frequency_hopping_hop2_table_select', value :ERROR: Unknown error 524
dev 'adrv9002-phy', attr 'frequency_hopping_hop_table_select_available', value :'TABLE_A TABLE_B'
dev 'adrv9002-phy', attr 'initial_calibrations', value :'off'
dev 'adrv9002-phy', attr 'initial_calibrations_available', value :'off auto run'
dev 'adrv9002-phy', attr 'multi_chip_sync', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'profile_config', value :'Device clk(Hz): 38400000
Clk PLL VCO(Hz): 8847360000
ARM Power Saving Clk Divider: 1
RX1 LO: L02
RX2 LO: L02
TX1 LO: L01
TX1 DPD enable: 0
TX2 LO: L01
TX2 DPD enable: 0
RX1 Gain Table Type: Correction
RX2 Gain Table Type: Correction
RX Channel Mask: 0xc3
TX Channel Mask: 0xc
Duplex Mode: FDD
FH enable: 0
MCS mode: Disabled
WarmBoot: Enabled
SSI interface: LVDS'
dev 'adrv9002-phy', attr 'stream_config', value :ERROR: Permission denied (13)
dev 'adrv9002-phy', attr 'waiting_for_supplier', value :'0'
dev 'adrv9002-phy', attr 'warmboot_coefficients', value :ERROR: Device or resource busy (16)
dev 'adrv9002-phy', attr 'warmboot_coefficients_file', value :'Navassa_LVDS_init_cals.bin'

Should I configure frequency hopping via IIO ?
How can I configure ?

Thanks.

Thread Notes

  • Hi,

    First you need to load a FH enabled profile. Then, the best way to test FH is to use the helper script available in kuiper., You can see it here:

    https://github.com/analogdevicesinc/linux_image_ADI-scripts/blob/main/test_adrv9002_fh.sh

    You can also see on that script how things are being configured at runtime.

    - Nuno Sá

  • Thanks for replying.

    Is it necessary to load a profile with FH support this way?

    root@analog:~# cat /root/stream_image.bin > /sys/bus/iio/devices/iio:device1/stream_config
    root@analog:~# cat /root/profile_file.json > /sys/bus/iio/devices/iio:device1/profile_config

  • If you're using the command line, yes...

    - Nuno Sá

  • The first command works, but the second one gives an error.

    root@analog:/# cat /home/analog/Documents/profile.json > /sys/bus/iio/devices/iio:device1/profile_config
    cat: write error: Invalid argument

    and when I want to get "profile_config" I get this error

    root@analog:/sys/bus/iio/devices/iio:device1# cat profile_config
    No profile loaded...


    Maybe there is something wrong with my profile.json file

    {
      "clocks": {
        "deviceClock_kHz": 38400,
        "clkPllVcoFreq_daHz": 442368000,
        "clkPllHsDiv": 0,
        "clkPllMode": 1,
        "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": 65,
        "rxChannelCfg": [ {
            "profile": {
              "primarySigBandwidth_Hz": 12000,
              "rxOutputRate_Hz": 24000,
              "rxInterfaceSampleRate_Hz": 24000,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 20000000,
              "lpAdcCorner": 0,
              "adcClk_kHz": 1105920,
              "rxCorner3dB_kHz": 40000,
              "rxCorner3dBLp_kHz": 40000,
              "tiaPower": 0,
              "tiaPowerLp": 0,
              "channelType": 1,
              "adcType": 0,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 1,
                  "scicBlk23DivFactor": 10,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 1,
                  "decBy2Blk37En": 1,
                  "decBy2Blk39En": 1,
                  "decBy2Blk41En": 1,
                  "decBy2Blk43En": 1,
                  "decBy3Blk45En": 1,
                  "decBy2Blk47En": 1
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 0,
                  "decBy2Hb3Blk17p1En": 1,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 1,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 1,
                  "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": 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": 1,
                "ssiDataFormatSel": 4,
                "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": 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": 12000,
              "rxOutputRate_Hz": 24000,
              "rxInterfaceSampleRate_Hz": 24000,
              "rxOffsetLo_kHz": 0,
              "rxNcoEnable": false,
              "outputSignaling": 0,
              "filterOrder": 1,
              "filterOrderLp": 1,
              "hpAdcCorner": 20000000,
              "lpAdcCorner": 0,
              "adcClk_kHz": 1105920,
              "rxCorner3dB_kHz": 40000,
              "rxCorner3dBLp_kHz": 40000,
              "tiaPower": 0,
              "tiaPowerLp": 0,
              "channelType": 64,
              "adcType": 0,
              "lpAdcCalMode": 0,
              "gainTableType": 0,
              "rxDpProfile": {
                "rxNbDecTop": {
                  "scicBlk23En": 1,
                  "scicBlk23DivFactor": 10,
                  "scicBlk23LowRippleEn": 0,
                  "decBy2Blk35En": 1,
                  "decBy2Blk37En": 1,
                  "decBy2Blk39En": 1,
                  "decBy2Blk41En": 1,
                  "decBy2Blk43En": 1,
                  "decBy3Blk45En": 1,
                  "decBy2Blk47En": 1
                },
                "rxWbDecTop": {
                  "decBy2Blk25En": 0,
                  "decBy2Blk27En": 0,
                  "decBy2Blk29En": 0,
                  "decBy2Blk31En": 0,
                  "decBy2Blk33En": 0,
                  "wbLpfBlk33p1En": 0
                },
                "rxDecTop": {
                  "decBy3Blk15En": 0,
                  "decBy2Hb3Blk17p1En": 1,
                  "decBy2Hb4Blk17p2En": 0,
                  "decBy2Hb5Blk19p1En": 1,
                  "decBy2Hb6Blk19p2En": 0
                },
                "rxSincHBTop": {
                  "sincGainMux": 1,
                  "sincMux": 1,
                  "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": 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": 1,
                "ssiDataFormatSel": 4,
                "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": 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": 4,
        "txProfile": [ {
            "primarySigBandwidth_Hz": 12000,
            "txInputRate_Hz": 24000,
            "txInterfaceSampleRate_Hz": 24000,
            "txOffsetLo_kHz": 0,
            "validDataDelay": 0,
            "txBbf3dBCorner_kHz": 33000,
            "outputSignaling": 0,
            "txPdBiasCurrent": 1,
            "txPdGainEnable": 0,
            "txPrePdRealPole_kHz": 1000000,
            "txPostPdRealPole_kHz": 530000,
            "txBbfPower": 0,
            "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": 1,
                "txInterpBy2Blk18En": 1,
                "txInterpBy2Blk16En": 1,
                "txInterpBy2Blk14En": 1,
                "txInterpBy2Blk12En": 1,
                "txInterpBy3Blk10En": 1,
                "txInterpBy2Blk8En": 1,
                "txScicBlk32En": 1,
                "txScicBlk32DivFactor": 10
              },
              "txIntTop": {
                "interpBy3Blk44p1En": 0,
                "sinc3Blk44En": 0,
                "sinc2Blk42En": 0,
                "interpBy3Blk40En": 0,
                "interpBy2Blk38En": 1,
                "interpBy2Blk36En": 1
              },
              "txIntTopFreqDevMap": {
                "rrc2Frac": 0,
                "mpll": 0,
                "nchLsw": 0,
                "nchMsb": 0,
                "freqDevMapEn": 0,
                "txRoundEn": 1
              },
              "txIqdmDuc": {
                "iqdmDucMode": 0,
                "iqdmDev": 0,
                "iqdmDevOffset": 0,
                "iqdmScalar": 0,
                "iqdmThreshold": 0,
                "iqdmNco": {
                  "freq": 0,
                  "sampleFreq": 46080000,
                  "phase": 0,
                  "realOut": 0
                }
              }
            },
            "txSsiConfig": {
              "ssiType": 1,
              "ssiDataFormatSel": 4,
              "numLaneSel": 0,
              "strobeType": 0,
              "lsbFirst": 0,
              "qFirst": 0,
              "txRefClockPin": 1,
              "lvdsIBitInversion": false,
              "lvdsQBitInversion": false,
              "lvdsStrobeBitInversion": false,
              "lvdsUseLsbIn12bitMode": 0,
              "lvdsRxClkInversionEn": false,
              "cmosDdrPosClkEn": false,
              "cmosClkInversionEn": false,
              "ddrEn": false,
              "rxMaskStrobeEn": false
            }
          }, {
            "primarySigBandwidth_Hz": 12500,
            "txInputRate_Hz": 0,
            "txInterfaceSampleRate_Hz": 0,
            "txOffsetLo_kHz": 0,
            "validDataDelay": 0,
            "txBbf3dBCorner_kHz": 33000,
            "outputSignaling": 0,
            "txPdBiasCurrent": 0,
            "txPdGainEnable": 0,
            "txPrePdRealPole_kHz": 0,
            "txPostPdRealPole_kHz": 0,
            "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": 0
              },
              "txIntTop": {
                "interpBy3Blk44p1En": 0,
                "sinc3Blk44En": 0,
                "sinc2Blk42En": 0,
                "interpBy3Blk40En": 0,
                "interpBy2Blk38En": 0,
                "interpBy2Blk36En": 0
              },
              "txIntTopFreqDevMap": {
                "rrc2Frac": 0,
                "mpll": 0,
                "nchLsw": 0,
                "nchMsb": 0,
                "freqDevMapEn": 0,
                "txRoundEn": 1
              },
              "txIqdmDuc": {
                "iqdmDucMode": 0,
                "iqdmDev": 0,
                "iqdmDevOffset": 0,
                "iqdmScalar": 0,
                "iqdmThreshold": 0,
                "iqdmNco": {
                  "freq": 0,
                  "sampleFreq": 0,
                  "phase": 0,
                  "realOut": 0
                }
              }
            },
            "txSsiConfig": {
              "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
            }
          } ]
      },
      "sysConfig": {
        "duplexMode": 0,
        "fhModeOn": 1,
        "numDynamicProfiles": 1,
        "mcsMode": 0,
        "mcsInterfaceType": 0,
        "adcTypeMonitor": 0,
        "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": [ 1, -5, -2, 12, 7, -24, -22, 37, 56, -47, -119, 37, 218, 21, -352, -169, 501, 459, -611, -944, 581, 1659, -252, -2592, -606, 3641, 2295, -4564, -5239, 4868, 10405, -2150, -16860, -7184, 17284, 16170, -15978, -28242, 8754, 41070, 6970, -50243, -31684, 50215, 63113, -35486, -95952, 1919, 122118, 52081, -131402, -124789, 112154, 210975, -51173, -302406, -69399, 388963, 286340, -460206, -731028, 507073, 2617033, 3674001, 2617033, 507073, -731028, -460206, 286340, 388963, -69399, -302406, -51173, 210975, 112154, -124789, -131402, 52081, 122118, 1919, -95952, -35486, 63113, 50215, -31684, -50243, 6970, 41070, 8754, -28242, -15978, 16170, 17284, -7184, -16860, -2150, 10405, 4868, -5239, -4564, 2295, 3641, -606, -2592, -252, 1659, 581, -944, -611, 459, 501, -169, -352, 21, 218, 37, -119, -47, 56, 37, -22, -24, 7, 12, -2, -5, 1, 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": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_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": 0,
          "symmetricSel": 0,
          "tapsSel": 0,
          "gainSel": 0,
          "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": 0,
          "symmetricSel": 0,
          "tapsSel": 0,
          "gainSel": 0,
          "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": 0,
            "symmetricSel": 0,
            "taps": 0,
            "gainSel": 0,
            "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 ]
          } ],
        "pfirRxMagLowTiaLowSRHp": [ {
            "numCoeff": 21,
            "coefficients": [ -2, 0, 2, -5, 12, -24, 50, -108, 278, -1237, 34835, -1237, 278, -108, 50, -24, 12, -5, 2, 0, -2 ]
          }, {
            "numCoeff": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagLowTiaHighSRHp": [ {
            "numCoeff": 21,
            "coefficients": [ -70, 228, 35, -831, 235, 1885, -210, -4680, -1264, 11467, 19176, 11467, -1264, -4680, -210, 1885, 235, -831, 35, 228, -70 ]
          }, {
            "numCoeff": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagHighTiaHighSRHp": [ {
            "numCoeff": 21,
            "coefficients": [ 41, -241, 750, -1559, 2236, -1920, -262, 4378, -8850, 8452, 26718, 8452, -8850, 4378, -262, -1920, 2236, -1559, 750, -241, 41 ]
          }, {
            "numCoeff": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagLowTiaLowSRLp": [ {
            "numCoeff": 21,
            "coefficients": [ -2, 0, 2, -5, 12, -24, 49, -107, 275, -1226, 34818, -1226, 275, -107, 49, -24, 12, -5, 2, 0, -2 ]
          }, {
            "numCoeff": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagLowTiaHighSRLp": [ {
            "numCoeff": 21,
            "coefficients": [ -69, 227, 34, -826, 235, 1876, -214, -4660, -1243, 11454, 19140, 11454, -1243, -4660, -214, 1876, 235, -826, 34, 227, -69 ]
          }, {
            "numCoeff": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirRxMagHighTiaHighSRLp": [ {
            "numCoeff": 21,
            "coefficients": [ 41, -237, 739, -1536, 2208, -1908, -229, 4283, -8730, 8455, 26600, 8455, -8730, 4283, -229, -1908, 2208, -1536, 739, -237, 41 ]
          }, {
            "numCoeff": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ],
        "pfirTxMagComp1": {
          "numCoeff": 21,
          "coefficients": [ 178, -1042, 3271, -6913, 10209, -9581, 1555, 14717, -24411, 7373, 42061, 7373, -24411, 14717, 1555, -9581, 10209, -6913, 3271, -1042, 178 ]
        },
        "pfirTxMagComp2": {
          "numCoeff": 0,
          "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
        },
        "pfirTxMagCompNb": [ {
            "numCoeff": 13,
            "coefficients": [ 54, -468, 1339, -836, -3842, 9293, 21689, 9293, -3842, -836, 1339, -468, 54 ]
          }, {
            "numCoeff": 0,
            "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": 0,
            "coefficients": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
          } ]
      }
    }

  • Hi,

    After loading the profile, can you type 'dmesg' and see if there's any log?

    - Nuno Sá

  • I resolved this problem, thanks 

    I loaded CMOS type instead of LVDS

    After running the script test_adrv9002_fh.sh I get the following output. Is this normal?

    root@analog:/home/analog/Documents# ./test_adrv9002_fh hop1_table_a.txt -n 5 -p stream_image.bin profile_file.json -c loop -d
    [DEBUG]: Got ngpios=0
    [INFO]: Loading new profile...
    [DEBUG]: Export GPIO: 462
    [DEBUG]: Export GPIO; 446
    [INFO]: Start hopping, tbl_ctl: loop, tbl_sz_a: 4, tbl_sz_b: 0, hop: 1, rx: false, repetitions: 5
    [DEBUG]: Unexporting GPIOS: 462, 446

  • Not seeing anything odd from the output. But you should make sure you are actually hopping. You can easily test TX by connecting it to a spectrum analyzer...

    - Nuno Sá

  • Ok thanks.

    Can you tell me how can I make FH without test_adrv9002_fh script?

  • Well,

    The script implementation should help with that. It is doing the manual steps you need.

    - Nuno Sá

  • OK thanks a lot for helping and responding so quickly.