Post Go back to editing

How to edit the talise_config.c file so it matches the output files from the Profile configuration wizard

The platform I use is the ADRV9009 and the ZCU102.

How to edit the talise_config.c file so it matches the output files from the Profile configuration wizard?

I can't figure out how the entries of Tx and lpbk has to be translated. They are separate in the profile configuration wizard and combined in the talise_config.c file.

The profile configuration wizards has a FIR array for Tx and lpbk. But the talise_config.c has only one.

  • Talise_config.c
  • From the Profile configuration wizard. How shall I convert the following 3 array items?
    <lpbk>
         ...
         <filter FIR gain_dB=-6 num=48>
         ...
         <lpbkAdcProfile num=42>
         ...
     </lpbk>
    <tx...
         <filter FIR gain_dB=0 numFirCoefs=20>
          ...
     </tx>


The platform I use is the ADRV9009 and the ZCU102
[edited by: JV-IE at 11:29 AM (GMT 0) on 16 Apr 2019]
Parents
  • Hi,

    For generating a new profile, you have to use the ADRV9009 Transceiver Evaluation Software (https://www.analog.com/en/design-center/landing-pages/001/integrated-rf-agile-transceiver-design-resources.html). The dedicated EZ section that covers this application can be found here: https://ez.analog.com/wide-band-rf-transceivers/tes-gui-software-support-adrv9009-adrv9008-1-adrv9008-2/

    Thanks,
    Dragos

  • I did generate a new profile. So far so good...

    <profile Talise version=1 name=Tx_BW200_IR240_Rx_BW196_OR240_ORx_BW200_OR240>
     <clocks>
      <deviceClock_kHz=240000>
      <clkPllVcoFreq_kHz=9600000>
      <clkPllHsDiv=2.5>
     </clocks>
    
     <rx name=Rx 196.00MHz, OutputRate 240.00MHz, TotalDecimation 8>
      <rxChannels=TAL_RX1RX2>
      <rxFirDecimation=2>
      <rxDec5Decimation=4>
      <rhb1Decimation=1>
      <rxOutputRate_kHz=240000>
      <rfBandwidth_Hz=196000000>
      <rxBbf3dBCorner_kHz=196000>
      <rxDdcMode=0>
    
      <rxNcoShifterCfg>
       <bandAInputBandWidth_kHz=0>
       <bandAInputCenterFreq_kHz=0>
       <bandANco1Freq_kHz=0>
       <bandANco2Freq_kHz=0>
       <bandBInputBandWidth_kHz=0>
       <bandBInputCenterFreq_kHz=0>
       <bandBNco1Freq_kHz=0>
       <bandBNco2Freq_kHz=0>
      </rxNcoShifterCfg>
    
      <filter FIR gain_dB=-6 numFirCoefs=48>
      -7, -26, 34, 54, -71, -118, 145, 216, -258, -372, 434, 601, -693, -940, 1073, 1443, -1642, -2238, 2548, 3643, -4327, -7191, 9306, 31148, 31148, 9306, -7191, -4327, 3643, 2548, -2238, -1642, 1443, 1073, -940, -693, 601, 434, -372, -258, 216, 145, -118, -71, 54, 34, -26, -7
      </filter>
    
      <rxAdcProfile num=42>
      189, 144, 176, 90, 1280, 948, 1331, 91, 1367, 46, 991, 19, 48, 48, 36, 209, 0, 0, 0, 0, 52, 0, 7, 6, 42, 0, 7, 6, 42, 0, 25, 27, 0, 0, 25, 27, 0, 0, 165, 44, 31, 905
      </rxAdcProfile>
     </rx>
    
     <obsRx name=Rx 200.00MHz, OutputRate 240.00MHz, TotalDecimation 8>
      <obsRxChannelsEnable=TAL_ORX1ORX2>
      <enAdcStitching=0>
      <rxFirDecimation=2>
      <rxDec5Decimation=4>
      <rhb1Decimation=1>
      <orxOutputRate_kHz=240000>
      <rfBandwidth_Hz=200000000>
      <rxBbf3dBCorner_kHz=225000>
      <orxDdcMode=0>
    
      <filter FIR gain_dB=-6 numFirCoefs=48>
      -13, -37, 48, 67, -91, -138, 160, 206, -321, -388, 496, 612, -754, -936, 1129, 1409, -1686, -2158, 2580, 3502, -4313, -6856, 9459, 30776, 30776, 9459, -6856, -4313, 3502, 2580, -2158, -1686, 1409, 1129, -936, -754, 612, 496, -388, -321, 206, 160, -138, -91, 67, 48, -37, -13
      </filter>
    
      <orxLowPassAdcProfile num=42>
      187, 145, 177, 90, 1280, 980, 1334, 95, 1368, 48, 989, 18, 48, 48, 36, 209, 0, 0, 0, 0, 52, 0, 7, 6, 42, 0, 7, 6, 42, 0, 25, 27, 0, 0, 25, 27, 0, 0, 165, 44, 31, 905
      </orxLowPassAdcProfile>
    
      <orxBandPassAdcProfile num=42>
      187, 145, 177, 90, 1280, 980, 1334, 95, 1368, 48, 989, 18, 48, 48, 36, 209, 0, 0, 0, 0, 52, 0, 7, 6, 42, 0, 7, 6, 42, 0, 25, 27, 0, 0, 25, 27, 0, 0, 165, 44, 31, 905
      </orxBandPassAdcProfile>
    
     </obsRx>
    
     <lpbk>
      <rxFirDecimation=2>
      <rhb1Decimation=1>
      <outputRate_kHz=240000>
      <rfBandwidth_Hz=96000000>
      <rxBbf3dBCorner_kHz=225000>
    
      <filter FIR gain_dB=-6 num=48>
      -13
      -37
      48
      67
      -91
      -138
      160
      206
      -321
      -388
      496
      612
      -754
      -936
      1129
      1409
      -1686
      -2158
      2580
      3502
      -4313
      -6856
      9459
      30776
      30776
      9459
      -6856
      -4313
      3502
      2580
      -2158
      -1686
      1409
      1129
      -936
      -754
      612
      496
      -388
      -321
      206
      160
      -138
      -91
      67
      48
      -37
      -13
      </filter>
    
      <lpbkAdcProfile num=42>
      219, 143, 180, 90, 1280, 685, 1301, 58, 1340, 32, 885, 28, 48, 48, 33, 192, 0, 0, 0, 0, 48, 0, 7, 6, 42, 0, 7, 6, 42, 0, 25, 27, 0, 0, 25, 27, 0, 0, 165, 44, 31, 905
      </lpbkAdcProfile>
     </lpbk>
    
     <tx name=Tx 200.00MHz, InputRate 240.00MHz, TotalInterpolation 8>
      <txChannels=TAL_TX1TX2>
      <dacDiv=1>
      <txFirInterpolation=1>
      <thb1Interpolation=2>
      <thb2Interpolation=2>
      <thb3Interpolation=2>
      <txInt5Interpolation=1>
      <txInputRate_kHz=240000>
      <primarySigBandwidth_Hz=96000000>
      <rfBandwidth_Hz=200000000>
      <txDac3dBCorner_kHz=200000>
      <txBbf3dBCorner_kHz=100000>
    
      <filter FIR gain_dB=0 numFirCoefs=20>
      35, -72, 106, -123, 115, -39, -233, 1073, -2923, 19948, -2923, 1073, -233, -39, 115, -123, 106, -72, 35, 0
      </filter>
     </tx>
    </profile>
    

    But how can I use it in the no-Os application?

  • The tool can directly create a no-OS profile: Tools - Create Script - Init .c Files

    Dragos

  • Ah OK small miss understanding => I am using the www.analog.com/.../ADRV9008-x-ADRV9009-profile-config-tool-filter-wizard-v2.3.zip

    With the tool you suggest, you can't change the sampling speed from 245.76MSPS to 240 MSPS.

    And this tool didn't have that option...

  • OK, sorry for confusion. Aren't the lpbk FIR coefficients exactly the same as the obsRx ones? My assumption is that they are unused and they should be skipped. If I'm not wrong, we are doing the same on the Linux side (https://github.com/analogdevicesinc/linux/blame/master/drivers/iio/adc/adrv9009.c#L4326).

    Thanks,
    Dragos

  • My link status is CGS:

    I am trying to change my sample rate to 240 MSPS. I have updated the talise_config.c file and the talise_config_AD9528.h. What could be the cause of the bad link status?

    Hello
    rx_clkgen: MMCM-PLL locked (240000000 Hz)
    tx_clkgen: MMCM-PLL locked (120000000 Hz)
    rx_os_clkgen: MMCM-PLL locked (120000000 Hz)
    rx_adxcvr: OK (9600000 kHz)
    tx_adxcvr: OK (4800000 kHz)
    rx_os_adxcvr: OK (4800000 kHz)
    talise: Device Revision 192, Firmware 6.0.2, API 3.6.0.5
    talise: Calibrations completed successfully
    warning: TAL_DEFRAMER_A status 0x12
    warning: TAL_FRAMER_A status 0x21
    rx_jesd status:
            Link is enabled
            Measured Link Clock: 240.025 MHz
            Reported Link Clock: 240.000 MHz
            Lane rate: 9600.000 MHz
            Lane rate / 40: 240.000 MHz
            Link status: CGS
            SYSREF captured: Yes
            SYSREF alignment error: No
    tx_jesd status:
            Link is enabled
            Measured Link Clock: 120.013 MHz
            Reported Link Clock: 120.000 MHz
            Lane rate: 4800.000 MHz
            Lane rate / 40: 120.000 MHz
            SYNC~: asserted
            Link status: CGS
            SYSREF captured: Yes
            SYSREF alignment error: No
    rx_os_jesd status:
            Link is enabled
            Measured Link Clock: 120.012 MHz
            Reported Link Clock: 120.000 MHz
            Lane rate: 4800.000 MHz
            Lane rate / 40: 120.000 MHz
            Link status: DATA
            SYSREF captured: Yes
            SYSREF alignment error: No
    rx_dac: Successfully initialized (240026855 Hz)
    rx_adc: Successfully initialized (240025329 Hz)
    

  • Make sure the jesd204Settings (framers, deframers) from your new profile is the same as the one from our example. If you didn't change anything on the HDL side, also make sure that the both channels are enabled for RX and TX.

    Thanks,
    Dragos

  • I used following method to get started.

    The tool can directly create a no-OS profile: Tools - Create Script - Init .c Files

    In this configuration the link status was "DATA".

    Then I started updating the files to slave on the 120MHz VCO, to be able to sample at 240MSPS.  I didn't change any jesd204Settings (I think).

    Only changes I made:

  • I still get bad Link status:

    The error status that I get, changes from boot to boot:

    warning: TAL_DEFRAMER_A status 0x12
    warning: TAL_FRAMER_A status 0x21

    or

    warning: TAL_DEFRAMER_A status 0x13
    warning: TAL_FRAMER_A status 0x21

    In both cases I get " Link status: CGS" for rx_jesd and tx_jesd.

    Where can I find more info about those statuses?

Reply
  • I still get bad Link status:

    The error status that I get, changes from boot to boot:

    warning: TAL_DEFRAMER_A status 0x12
    warning: TAL_FRAMER_A status 0x21

    or

    warning: TAL_DEFRAMER_A status 0x13
    warning: TAL_FRAMER_A status 0x21

    In both cases I get " Link status: CGS" for rx_jesd and tx_jesd.

    Where can I find more info about those statuses?

Children