02-28-2021 10:52 PM
I have a question about configuring RFDC.
The Vivado version is 2019.1.
The platform will be ZCU111.
I am trying to change the NCO frequency of the Fine Mixer using the API of XRFdc_SetQMCSettings, but the value cannot be changed.
Changing to Coarse Mixer is fine.
Please teach if there are any procedures for changing Fine Mixer.
03-01-2021 02:06 AM
Hi @arinori
Can you show what you do in the code? Are you sure you set the update event in the mixer settings and then provide it?
Keith
03-01-2021 04:44 AM
Set in Fine mode of RF-ADC Mixer,
Using the API XRFdc_SetQMCSettings, when MixerType is set to Coarse mode and CoarseMixFreq is set to -fs / 4, it seems to switch normally when set.
However, when the NCO frequency is set in the Fine settings, the API ends normally, but the frequency does not change at all.
The RFDC Driver is created with Bare-metal.
In addition, the decimation API has been switched normally, and I think that the driver installation is said to be normal.
Is there anything I should be aware of when changing the NCO frequency of the RF-ADC Mixer?
In addition, only the API of XRFdc_SetQMCSettings is used for the change processing of RF-ADC Mixer, and no other processing is used.
03-01-2021 06:29 AM
Why do you think modifying the QMC settings will change the fine mixer?
You need to do something like this in your code
XRFdc_GetMixerSettings (ptr, XRFDC_ADC_TILE, tile, block, &Mixer_Settings);
Mixer_Settings.Freq = <your new frequency>;
Mixer_Settings.EventSource = XRFDC_EVNT_SRC_TILE;
XRFdc_SetMixerSettings (ptr, XRFDC_ADC_TILE, tile, block, &Mixer_Settings);
XRFds_UpdateEvent(ptr, XRFDC_ADC_TILE, tile, 1, XRFDC_EVENT_MIXER);
03-04-2021 08:53 PM
I was late to contact you.
We have changed it according to the content you contacted.
However, without using the XRFds_UpdateEvent function, in the Mixer_Settings structure
The EventSource setting is set to block.
In fact, Coarse's Fine can be switched, and Coarse's -1 / 4FS operation is normal, so I think that the XRFdc_SetMixerSettings function itself is normal.
Is XRFds_UpdateEvent required when changing NCO.Freq when setting Fine?
It is a situation where only NCO FREQ cannot be set.
03-05-2021 01:38 AM
Hi @arinori
The EventSource setting is set to block.
ZCU111 is a 28DR device which has dual ADC tiles. For this ADC tile you can't use the block/slice event to update it.
the event must be Tile!
XRFdc_GetMixerSettings (ptr, XRFDC_ADC_TILE, tile, block, &Mixer_Settings);
Mixer_Settings.Freq = <your new frequency>;
Mixer_Settings.EventSource = XRFDC_EVNT_SRC_TILE;
XRFdc_SetMixerSettings (ptr, XRFDC_ADC_TILE, tile, block, &Mixer_Settings);
XRFds_UpdateEvent(ptr, XRFDC_ADC_TILE, tile, 1, XRFDC_EVENT_MIXER);
Regards,
Keith
03-05-2021 04:19 AM
I'm sorry. I made a mistake.
It is set with EventSource: tile (value = 2).
Is there anything else?
03-05-2021 04:49 AM
yes make the event source tile then generate a tile event after the SetMixerSettings API call
Let me know how you get on.
Keith