This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

XEVMK2LX. Connecting of LM15851EVM and DAC38J82EVM simultaneously

Other Parts Discussed in Thread: DAC38J82EVM, XEVMK2LX, LM15851EVM, RFSDK

My customer is trying to connect both LM15851EVM and DAC38J82EVM to XEVMK2LX simultaneously. They use  LFMSHD = 22210 mode. They created their own driver (USE-CASE-CUSTOM) based on the existed.

USE-CASE-CUSTOM:

{
    "dfeConfig": {
        "afeConnected": [
            1,
            1
        ],
        "cfrRate": 184.32,
        "configFile": "/usr/share/radio/dfe/Lamarr_DFE_2x2_1xLTE20_SC_JESD3b_SD.tgtcfg",
        "dfeClock": 368.64,
        "dpdRate": 368.64,
        "feedbackMask": 1,
        "feedbackRate": 368.64,
        "jesdConfig": {
            "rxLane": [
                {
                    "enabled": 1,
                    "lid": 0,
                    "linkAssigned": 0,
                    "loopback": 0
                },
                {
                    "enabled": 1,
                    "lid": 1,
                    "linkAssigned": 0,
                    "loopback": 0
                },
                {
                    "enabled": 0,
                    "lid": 2,
                    "linkAssigned": 0,
                    "loopback": 0
                },
                {
                    "enabled": 0,
                    "lid": 3,
                    "linkAssigned": 0,
                    "loopback": 0
                }
            ],
            "rxLink": [
                {
                    "cf": 0,
                    "f_m1": 1,
                    "k_m1": 22,
                    "l_m1": 1,
                    "loopback": 0,
                    "m_m1": 1,
                    "n_m1": 14,
                    "nprime_m1": 15,
                    "s_m1": 0
                },
                {
                    "cf": 0,
                    "f_m1": 1,
                    "k_m1": 22,
                    "l_m1": 1,
                    "loopback": 0,
                    "m_m1": 1,
                    "n_m1": 14,
                    "nprime_m1": 15,
                    "s_m1": 0
                }
            ],
            "txLane": [
                {
                    "enabled": 0,
                    "lid": 0,
                    "linkAssigned": 0,
                    "loopback": 0
                },
                {
                    "enabled": 0,
                    "lid": 1,
                    "linkAssigned": 0,
                    "loopback": 0
                },
                {
                    "enabled": 1,
                    "lid": 2,
                    "linkAssigned": 0,
                    "loopback": 0
                },
                {
                    "enabled": 1,
                    "lid": 3,
                    "linkAssigned": 0,
                    "loopback": 0
                }
            ],
            "txLink": [
               {
                    "cf": 0,
                    "f_m1": 1,
                    "k_m1": 22,
                    "l_m1": 1,
                    "loopback": 0,
                    "m_m1": 1,
                    "n_m1": 14,
                    "nprime_m1": 15,
                    "s_m1": 0
                },
                {
                    "cf": 0,
                    "f_m1": 1,
                    "k_m1": 22,
                    "l_m1": 1,
                    "loopback": 0,
                    "m_m1": 1,
                    "n_m1": 14,
                    "nprime_m1": 15,
                    "s_m1": 0
                }
            ]
        },
        "jesdSettings": {
            "DL_jesd_F": 4,
            "DL_jesd_K": 32,
            "UL_jesd_K": 16,
            "jesdRate": "RFSDK_JESD_368P64"
        },
        "rx": [
            {
                "channel": 1,
                "ct": 3,
                "dduc": 3,
                "sampleRate": "RFSDK_SAMPLE_RATE_30P72MHZ",
                "type": "RFSDK_CARRIER_LTE20",
                "valid": 1
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            }
        ],
        "rxDducRate": 61.44,
        "rxMask": 1,
        "rxRate": 61.44,
        "streamMask": 3,
        "tx": [
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            },
            {
                "channel": 0,
                "ct": 0,
                "dduc": 0,
                "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED",
                "type": "RFSDK_CARRIER_NOT_CONFIGURED",
                "valid": 0
            }
        ],
        "txDducRate": 61.44,
        "txMask": 1,
        "txRate": 122.88
    },
    "playback": {
        "info": 2684354560,
        "program": "/usr/share/radio/dsp/lamarr-marconi/Playback_2x2-1xLTE20.out",
        "rx": [
            2789605376,
            2800664576,
            2811723776,
            2822782976,
            2833842176,
            2844901376,
            2855960576,
            2867019776
        ],
        "tx": [
            2701131776,
            2712190976,
            2723250176,
            2734309376,
            2745368576,
            2756427776,
            2767486976,
            2778546176
        ]
    },
    "tdd": 0
}

They also set an appropriate mode for ADC (Decimation Factor = 8, DDR, P54) and DAC (Number of SerDes Lanes = 2, Interpolation = 2). They set DAC Data Input Rate suitable for JesdRate.
When they run the driver, the error (AFE_INVALID_JESD_PARAMETER) will appear. They have been changing the sets, but it doesn't help.

AFE_ERROR.tif

  • Hi Yauheni,

    I've forwarded this to the software experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Hi Yauheni,

    I'm an application engineer and I support RFSDK. The use-case input of LMF values are used for GUI display not actually updates the DFE JESD parameters. That's why you ran into JESD error.

    You can either change the ADC/DAC JESD mode to match the LMF values of the radio used case in use. Or new radio case with different DFE files are needed.

    Thanks and Regards,

    Michelle

  • Hi Michelle,

    The customer claims all JESD DFE values are agreed with ADC/DAC values. The code which I placed above is a driver for RFSDK where the customer sets DFE JESD values. In the other words, the customer sets JESD values for XEVMK2LX via the driver and values for both DAC38J82EVM and LM15851EVM via GUI separately.
  • Yauheni,

    I believe the code you show is the radio use-case. It's not driver setting. Please see RFSDK user guide, search for "Use case configuration file" under section 5.4. Here's the quote: "

    The static parameters of the radio use-case are described in a configuration file found under directory /etc/radio/use-case.

    None of these parameters are meant to be modified."

    Thanks and Regards,

    Michelle