Post Go back to editing

About enabling DPD when using ADRV 9375-W / PCBZ with Intel Arria 10 GX development kit

Hi

We have the design of Intel Arria 10 GX development kit using AD9371.
(https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an792.pdf)

I would like to connect to ADRV9375-W / PCBZ using this design and try out the function of DPD.

I changed the source code with reference to the AD9371 Linux Driver and so on.

However, MYKONOS_waitInitCals () caused an error.

(If I do not add "DPD_INIT | CLGC_INIT | VSWR_INIT" to initCalMask, no error will occur.)

Specifically, it is CMB_SPIReadByte (device-> spiSettings, MYKONOS_ADDR_ARM_CMD_STATUS_ 0 + cmdByteIndex, & cmdByte); which is called in MYKONOS_readArmCmdStatusByte(),
This is because 224 is stored in cmdByte.

(It is 0 when it operates normally)

What does this mean?

Major Changed Code ]

< config_AD9371.c >

	uint32_t initCalMask = TX_BB_FILTER | ADC_TUNER | TIA_3DB_CORNER | DC_OFFSET |
	TX_ATTENUATION_DELAY | RX_GAIN_DELAY | FLASH_CAL |
	PATH_DELAY | TX_LO_LEAKAGE_INTERNAL | TX_QEC_INIT |
	LOOPBACK_RX_LO_DELAY | LOOPBACK_RX_RX_QEC_INIT |
	RX_LO_DELAY | RX_QEC_INIT
#ifdef AD9351
	| DPD_INIT | CLGC_INIT | VSWR_INIT ;
#else
	;
#endif

	printf("Mykonos RF Frequency setting Completed\n");
	/*************************************************************************/
	/*****                 Mykonos DPD Initialization                    *****/
	/*************************************************************************/
#ifdef AD9351
	if ((mykError = MYKONOS_configDpd(&mykDevice)) != MYKONOS_ERR_OK)
	{
	    /*** < Info: errorString will contain log error string in order to debug failure > ***/
	    errorString = getMykonosErrorMessage(mykError);
	}

	if ((mykError = MYKONOS_configClgc(&mykDevice)) != MYKONOS_ERR_OK)
	{
	    /*** < Info: errorString will contain log error string in order to debug failure > ***/
	    errorString = getMykonosErrorMessage(mykError);
	}

	if ((mykError = MYKONOS_configVswr(&mykDevice)) != MYKONOS_ERR_OK)
	{
	    /*** < Info: errorString will contain log error string in order to debug failure > ***/
	    errorString = getMykonosErrorMessage(mykError);
	}
	printf("Mykonos DPD Config Completed\n");
#endif
	/*************************************************************************/
	/*****                Mykonos Set GPIOs                              *****/
	/*************************************************************************/

< myk_config.c >

static mykonosTxSettings_t txSettings =
{
    &txProfile,     /* Tx datapath profile, 3dB corner frequencies, and digital filter enables*/
    &deframer,      /* Mykonos JESD204b deframer config for the Tx data path*/
    TX1,            /* The desired Tx channels to enable during initialization*/
    0,              /* Internal LO=0, external LO*2 if =1*/
    1000000000U,     /* Tx PLL LO frequency (internal or external LO)*/
    TXATTEN_0P05_DB,/* Initial and current Tx1 Attenuation*/
    10000,          /* Initial and current Tx1 Attenuation mdB*/
    10000,          /* Initial and current Tx2 Attenuation mdB*/
    &dpdConfig,     /* <NULL>DPD,CLGC,VSWR settings. Only valid for AD9373 device, set pointer to NULL otherwise*/
    &clgcConfig,    /* <NULL>CLGC Config Structure. Only valid for AD9373 device, set pointer to NULL otherwise*/
    &vswrConfig     /* <NULL>VSWR Config Structure. Only valid for AD9373 device, set pointer to NULL otherwise*/
};

Thanks and Regards,

Top Replies

Parents Reply Children
No Data