Update QMC Settings - 2.6 English

Zynq UltraScale+ RFSoC RF Data Converter 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.