The mixer function has three modes, bypass (no mixing), coarse mixing or fine mixing. Fine mixing automatically enables the NCO which is used to generate the carrier frequency. The mixer supports full quadrature mixing, with both real to I/Q and I/Q to I/Q modes supported.
Coarse Mixer:
- The coarse mixer allows the data to be mixed with a carrier of 0,
Fs/2, Fs/4, or –Fs/4. Note: The selection of 0 is only available using the RFdc driver API.
- Mixing with a 0 carrier bypasses the mixer component.
Fine Mixer:
- The fine mixer allows the data to be shifted up or down in frequency by an arbitrary amount.
- The frequency shift amount is obtained by programming the mixer frequency generated in the NCO. The fine mixer also supports 18-bit phase adjustment.
- The NCO can be programmed to output the cos, -cos, sin or -sin of the NCO
frequency (Fc). The NCO output is selected depending on the current mixer mode.
- I/Q to I/Q
- IOUT = IIN * cos (FC) - QIN * sin (FC)
- QOUT = IIN * sin (FC) + QIN * cos (FC)
- I/Q to Real
- IOUT = IIN * cos (FC) - QIN * sin (FC)
- I/Q to I/Q
- The NCO phase can be synchronized within a tile
using
XRFdc_UpdateEvent
. - The NCO phase can be synchronized across tiles using an external event signal (SYSREF or MARKER).
- To manage potential overflow, the fine mixer output includes 3 dBV attenuation, as shown in the figure above. This attenuation is set to -3 dBV (multiplication factor = 0.707) regardless of the RF-DAC setting in the RFdc driver API. A manual selection is also possible, allowing 0 dBV or -3 dBV.
The mixer settings can be configured in the core, or by using the RFdc driver API. The core is used to set the initial mixer settings (for example, mixer type and mixer mode), and the RFdc driver API is used to adjust the settings at runtime. Both the RFdc driver API and the core compute the required register settings based on the supplied sample rates and desired frequencies. See the RF-DAC Converter Configuration section for information on the settings.