Update QMC Settings - 2.6 English

Zynq UltraScale+ RFSoC RF Data Converter v2.6 Gen 1/2/3/DFE LogiCORE IP Product Guide (PG269)

Document ID
Release Date
2.6 English

The gain, phase, and offset correction factor values can be set using the RFdc driver API. An example of using the API is as follows.

// Initial Setup    

XRFdc_QMC_Settings QMC_Settings_I, QMC_Settings_Q; // RF-ADC block0 is I, RF-ADC block1 is Q
QMC_Settings_I.EventSource = XRFDC_EVNT_SRC_TILE; // QMC settings are updated with a tile event
QMC_Settings_Q.EventSource = XRFDC_EVNT_SRC_TILE;

// Update Gain/Phase/Offset for I/Q RF-DACs in tile0

QMC_Settings_I.GainCorrectionFactor  =  0.9; // Set gain for I
QMC_Settings_I.PhaseCorrectionFactor = -5.0; // I/Q imbalance factor applied to I side, approx. in degrees
QMC_Settings_I.EnableGain            = 1;
QMC_Settings_I.EnablePhase           = 1;
QMC_Settings_Q.GainCorrectionFactor  = 0.95;
QMC_Settings_Q.EnableGain            = 1; 
XRFdc_SetQMCSettings(ptr, XRFDC_ADC_TILE, 0, 0, &QMC_Settings_I); // Write settings for ADC0,0 - I ADC
XRFdc_SetQMCSettings(ptr, XRFDC_ADC_TILE, 0, 1, &QMC_Settings_Q); // Write settings for ADC0,1 - Q ADC
XRFdc_UpdateEvent(ptr, XRFDC_ADC_TILE, 0, 0, XRFDC_EVENT_QMC); // Generate a Tile Update Event - applies all QMC settings at once

It is also possible to read back the QMC settings from any converter, using the XRFdc_GetQMCSettings RFdc driver API command. This populates the QMC_Settings structure with the values from the hardware.