RFSoC应用笔记 - RF数据转换器(15):API使用指南之Libmetal与结构体说明

本文转载自:Vuko-wxh的CSDN博客

写在前面

本文介绍了RFSoC RF 数据转换器的 RFdc 驱动程序的结构体的部分,以便于用户更加清楚的了解关于RF数据转换器的相关配置操作。

概述

RFSoC RF 数据转换器的 RFdc 驱动程序 API 函数。 裸机和 Linux 都使用相同的驱动程序。 两个软件平台的驱动程序都运行在 Xilinx 提供的 libmetal 软件层上。 该驱动程序由以下文件组成:

API

xrfdc.c:用户接口API 函数在此文件中实现。

xrfdc.h:此文件中提供了用户接口API 原型。 该文件提供了驱动程序实例结构的原型以及跨 API 使用的所有其他结构。该文件实现实用程序内联函数来访问驱动程序和 IP 中的各种数据。

xrfdc_mts.c:多片同步API函数在此文件中实现。

xrfdc_mixer.c:混频器API函数在此文件中实现。

xrfdc_clock.c:时钟相关的API函数在此文件中实现。

xrfdc_mb.c:多频段API函数在此文件中实现。

xrfdc_ap.c:模拟路径API函数在此文件中实现。

xrfdc_dp.c:数字路径API函数在此文件中实现。

xrfdc_sinit.c:初始化API函数在这个文件中实现。

硬件寄存器映射

xrfdc_hw.h:此文件中提供了硬件寄存器映射的定义。 该文件还为 Zynq UltraScale+ RFSoC 寄存器接口的各种相关字段提供掩码。

中断处理

xrfdc_intr.c:实现处理来自 IP 内核的各种中断和错误的函数。、

1.png

关于 Libmetal

Libmetal 是 Xilinx 开发的开源软件堆栈,它提供通用用户 API 来访问设备、处理设备中断和在以下操作环境中请求内存:

  • Linux 用户空间(基于内核中的用户空间 IO 和虚拟功能 IO 支持) )

  • RTOS(有和没有虚拟内存)

  • 裸机环境 libmetal I/O 区域抽象提供对内存映射I/O 和共享内存区域的访问。 这包括读取和写入具有排序约束的内存的原语,以及在支持虚拟内存的系统上在物理和虚拟寻址之间进行转换的能力。

数据结构

驱动程序中使用的所有数据结构都在 xrfdc.h 和 xrfdc_mts.h 文件中定义

struct XRFdc

XRFdc_Config RFdc_Config;
u32 IsReady;
u32 ADC4GSPS;
metal_phys_addr_t BaseAddr;
struct metal_io_region *io;
struct metal_device *device;
XRFdc_DAC_Tile DAC_Tile[4];
XRFdc_ADC_Tile ADC_Tile[4];
XRFds_StatusHandler StatusHandler;
void *CallBackRef;
u8 UpdateMixerScale;

参数说明

XRFdc_Config RFdc_Config : 驱动程序结构配置。

u32 IsReady : 此标志用于指示驱动程序已准备好。

u32 ADC4GSPS : 该标志用于指示 RF-ADC 是否为 4GSPS。

metal_phys_addr_t BaseAddr : 基址。

struct metal_io_region : Libmetal IO 结构体。

struct metal_device *device : Libmetal device结构体。

XRFdc_DAC_Tile DAC_Tile[4] : 四片的 RF-DAC 片结构。

XRFdc_ADC_Tile ADC_Tile[4] : 四片的 RF-ADC 片结构。

XRFds_StatusHandler StatusHandler : 事件处理函数。

*void CallBackRef : 事件处理程序的回调参考。

u8 UpdateMixerScale :设置为 1 以覆盖混频器的尺度。

struct XRFdc_Config

此结构供内部驱动程序使用(metal_phys_addr_t 表示无符号长整数)。

u32 DeviceId;
metal_phys_addr_t BaseAddr;
u32 ADCType;
u32 MasterADCTile;
u32 MasterDACTile;
u32 ADCSysRefSource;
u32 DACSysRefSource;
XRFdc_DACTile_Config DACTile_Config[4];
XRFdc_ADCTile_Config ADCTile_Config[4];

参数说明

u32 ADCType : Quad RF-ADC 部分或 Dual RF-ADC 部分。

u32 MasterADCTile : 对应于C_ADC_Master IP 参数。

u32 MasterDACTile : 对应于C_DAC_Master IP 参数。

u32 ADCSysRefSource : 对应于 C_ADC_Sysref_Source IP 参数。

u32 DACSysRefSource : 对应于 C_DAC_Sysref_Source IP 参数。

struct XRFdc_PLL_Settings

u32 Enabled;
double RefClkFreq;
double SampleRate;
u32 RefClkDivider;
u32 FeedbackDivider;
u32 OutputDivider;
u32 FractionalMode;
u64 FractionalData;
u32 FractWidth;

参数说明

u32 Enabled: 指示 PLL 是启用 (1) 还是禁用 (0)。

double RefClkFreq : 参考时钟频率(MHz)。

double SampleRate : 采样率 (GHz)。

u32 RefClkDivider : 参考时钟分频器。

u32 FeedbackDivider : 反馈分频器。

u32 OutputDivider : 输出分频器。

u32 FractionalMode: 目前不支持。

u64 FractionalData : 反馈分频器的小数部分。 目前不支持。

u32 FractWidth : 小数数据宽度。 目前不支持。

struct XRFdc_QMC_Settings

u32 EnablePhase;
u32 EnableGain;
double GainCorrectionFactor;
double PhaseCorrectionFactor;
s32 OffsetCorrectionFactor;
u32 EventSource;

参数说明

u32 EnablePhase : 指示相位是启用(1) 还是禁用(0)。

u32 EnableGain : 指示增益是启用 (1) 还是禁用 (0)。

double GainCorrectionFactor : 增益校正因子。 范围:0 到 2.0(不包括)。

double PhaseCorrectionFactor :相位校正因子。 范围:+/- 26.5 度(不包括)。

s32 OffsetCorrectionFactor : 偏移校正因子是向采样信号添加一个固定的 LSB 值。

u32 EventSource : QMC 设置的事件源。 XRFDC_EVNT_SRC_* 表示有效值。

2.png

struct XRFdc_CoarseDelay_Settings

u32 CoarseDelay;
u32 EventSource;

参数说明

u32 CoarseDelay:采样数量的粗延迟。 范围:Gen 1/Gen 2 设备为 0 到 7,Gen 3 设备为 0 到 40。

u32 EventSource:粗略延迟设置的事件源。 XRFDC_EVNT_SRC_* 表示有效值。

struct XRFdc_Mixer_Settings

double Freq;
double PhaseOffset;
u32 EventSource;
u32 CoarseMixFreq;
u32 MixerMode;
u8 FineMixerScale;
u8 MixerType;

参数说明

double Freq : NCO 频率。 范围:-Fs 至 Fs (MHz)。

double PhaseOffset : NCO 相位偏移。 范围:-180 到 180(不包括)。

u32 EventSource : 混频器设置的事件源。 XRFDC_EVNT_SRC_* 表示有效值。

3.png

u32 MixerMode:精细或粗略混频器的混合器模式。XRFDC_MIXER_MODE_* 表示有效值。

4.png

u8 FineMixerScale:NCO输出比例。 XRFDC_MIXER_SCALE_* 表示有效值。

5.png

u8 MixerType :Mixer Type表示粗调或细调。 XRFDC_MIXER_TYPE_* 代表有效值。

6.png

struct XRFdc_Threshold_Settings

此结构用于设置或获取 RF-ADC 阈值设置。

u32 UpdateThreshold;
u32 ThresholdMode[2];
u32 ThresholdAvgVal[2];
u32 ThresholdUnderVal[2];
u32 ThresholdOverVal[2];

参数说明

u32 UpdateThreshold: 选择要更新的阈值。 XRFDC_UPDATE_THRESHOLD_* 表示有效值。

7.png

u32 ThresholdMode[2] : [ 0 ] 用于阈值 0, [ 1 ] 用于阈值 1。(下同) 范围:0 到 3(0-OFF、1-sticky-over、2-sticky-under 和 3-hysteresis)

u32 ThresholdAvgVal[2] : 阈值平均值。 [ 0 ] 用于阈值 0,[ 1 ] 用于阈值 1。

u32 ThresholdUnderVal[2] : 低于阈值。

u32 ThresholdOverVal[2] : 超过阈值。

驱动中的Threshold0和Threshold1分别对应IP中的Threshold1和Threshold2。

struct XRFdc_TileStatus

此结构体供内部驱动程序使用。

u32 IsEnabled;
u32 TileState;
u8  BlockStatusMask;
u32 PowerUpState;
u32 PLLState;

参数说明

u32 IsEnabled : 指示该片已启用 (1) 或已禁用 (0)。

u32 TileState : 指示当前片状态。

u8 BlockStatusMask : 转换器状态的位掩码。 1 表示转换器使能。

u32 PowerUpState : 指示上电状态。

u32 PLLState : 指示PLL 是锁定还是未锁定。

struct XRFdc_IPStatus

此结构体用于获取 IP 内核状态。

XRFdc_TileStatus DACTileStatus[4];
XRFdc_TileStatus ADCTileStatus[4];
u32 State;

参数说明

XRFdc_TileStatus DACTileStatus[4] : 四个 RF-DAC 片的片状态

**XRFdc_TileStatus ADCTileStatus[4] **: 四个 RF-ADC 片的片状态

u32 State: 当前不支持。

struct XRFdc_BlockStatus

此结构用于获取 RF-DAC 或 RF-ADC 的状态。

double SamplingFreq;
u32 AnalogDataPathStatus;
u32 DigitalDataPathStatus;
u8 DataPathClocksStatus;
u8 IsFIFOFlagsEnabled;
u8 IsFIFOFlagsAsserted;

参数说明

double SamplingFreq: 采样频率。

u32 AnalogDataPathStatus:

RF-ADC:

bit[0] :转换器启用/禁用。

RF-DAC :

bit[3:0] 反正弦启用/禁用。

bit [7:4] 解码器模式。

u32 DigitalDataPathStatus:

RF-ADC:

bit [3:0] FIFO 状态(启用/禁用)。

bit [7:4] 抽取因子。

bit [11:8] 混频模式。

RF-DAC

bit [3:0] FIFO 状态。

bit [7:4] 插值因子。

bit [11:8] Adder状态。

bit [15:12] 混频模式。

u8 DataPathClocksStatus : 指示是否启用了所有必需的数据路径时钟; 如果启用所有时钟,则为 1,否则为 0。

u8 IsFIFOFlagsEnabled : FIFO 标志启用掩码; 1 启用,否则为 0。

u8 IsFIFOFlagsAsserted : FIFO 标志断言掩码; 1 启用,否则为 0。

struct XRFdc_DACBlock_AnalogDataPath_Config

u32 BlockAvailable;
u32 InvSyncEnable;
u32 MixMode;
u32 DecoderMode;

参数说明

u32 BlockAvailable : 对应于 C_DAC_Slice{xy}_Enable IP 参数。

u32 InvSyncEnable : 对应于 C_DAC_Invsinc_Ctrl{xy} IP 参数。

u32 MixMode : 对应于 C_DAC_Mixer_Mode{xy} IP 参数。

u32 DecoderMode : 对应于 C_DAC_Decoder_Mode{xy} IP 参数。

struct XRFdc_DACBlock_DigitalDataPath_Config

参数说明

u32 DataType :对应于 C_DAC_Data_Type{xy} IP 参数。

u32 DataWidth :对应于C_DAC_Data_Width{xy} IP 参数。

u32 InterpolationMode : 对应于 C_DAC_Interpolation_Mode{xy} IP参数。

u32 FifoEnable : 对应于 C_DAC_Fifo{xy} IP 参数。

u32 AdderEnable : 对应于 C_DAC_Adder{xy} IP 参数。

u32 MixerType : 对应于 C_DAC_Mixer_Type{xy} IP 参数。

struct XRFdc_DACTile_Config

u32 Enable;

u32 PLLEnable;

double SamplingRate;

double RefClkFreq;

double FabClkFreq;

u32 FeedbackDiv;

u32 OutputDiv;

u32 RefClkDiv;

u32 MultibandConfig;

XRFdc_DACBlock_AnalogDataPath_Config DACBlock_Analog_Config[4];

XRFdc_DACBlock_DigitalDataPath_Config DACBlock_Digital_Config[4];

参数说明

u32 Enable : 对应于 C_DAC{x}_Enable IP 参数。

u32 PLLEnable : 对应于 C_DAC{x}_PLL_Enable IP 参数。

double SamplingRate : 对应于 the C_DAC{x}_Sampling_Rate IP 参数。

double RefClkFreq : 对应于 the C_DAC{x}_RefClk_Freq IP 参数。

double FabClkFreq : 对应于 C_DAC{x}_FabClk_Freq IP 参数。

u32 FeedbackDiv : 对应于 C_DAC{x}_FBDIV IP 参数。

u32 OutputDiv : 对应于 C_DAC{x}_OutDiv IP 参数。

u32 RefClkDiv : 对应于 C_DAC{x}Refclk_Div IP 参数。

u32 MultibandConfig : 对应于 C_DAC{x}_Multiband IP 参数。

struct XRFdc_DACBlock_AnalogDataPath

u32 Enabled;

u32 MixedMode;

double TerminationVoltage;

double OutputCurrent;

u32 InverseSincFilterEnable;

u32 DecoderMode;

void *FuncHandler;

u32 NyquistZone;

u8 AnalogPathEnabled;

u8 AnalogPathAvailable;

XRFdc_QMC_Settings QMC_Settings;

XRFdc_CoarseDelay_Settings CoarseDelay_Settings;

参数说明

u32 Enabled : RF-DAC 启用 (1) 或禁用 (0)。

u32 MixedMode : 混频器模式。

double TerminationVoltage : 截止电压。

double OutputCurrent : 输出电流。

u32 InverseSincFilterEnable : 反 sinc 滤波器启用 (1) 或禁用 (0)。

u32 DecoderMode : 解码器模式。

*void FuncHandler : 函数处理程序(当前未在驱动程序中使用)。

u32 NyquistZone : RF-DAC 奈奎斯特区。

struct XRFdc_DACBlock_DigitalDataPath

u32 DataType;
u32 DataWidth;
int ConnectedIData;
int ConnectedQData;
u32 InterpolationFactor;
u8 DigitalPathEnabled;
u8 DigitalPathAvailable;
XRFdc_Mixer_Settings Mixer_Settings;

参数说明

u32 DataType: 数字输入数据类型

u32 DataWidth : Data width (samples per AXI4-Stream word).

int ConnectedIData : Data converter connected for I datapath. Valid values are 0-3 and -1.

int ConnectedQData : Data converter connected for Q datapath. Valid values are 0-3 and -1.

u32 InterpolationFactor : Interpolation factor.

u8 DigitalPathEnabled : Flag to indicate DataPath is enabled(1) or disabled(0).

u8 DigitalPathAvailable : Flag to indicate DigitalPath is available or not.

XRFdc_Mixer_Settings Mixer_Settings : Mixer Settings structure

struct XRFdc_DAC_Tile

u32 TileBaseAddr;
u32 NumOfDACBlocks;
XRFdc_PLL_Settings PLL_Settings;
u8 MultibandConfig;
XRFdc_DACBlock_AnalogDataPath DACBlock_Analog_Datapath[4];
XRFdc_DACBlock_DigitalDataPath DACBlock_Digital_Datapath[4];

参数说明

u32 TileBaseAddr : Tile 基地址。

u32 NumOfDACBlocks : 启用的RF-DAC 数量。

XRFdc_PLL_Settings PLL_Settings : PLL 设置结构体。

u8 MultibandConfig : RF-DAC 块的多频段配置。

XRFdc_DACBlock_AnalogDataPath DACBlock_Analog_Datapath[4] : 四个 RF-DAC 的 DACBlock_AnalogDataPath 结构体。

**XRFdc_DACBlock_DigitalDataPath DACBlock_Digital_Datapath[4] ** : 四个RF-DAC 的DACBlock_DigitalDataPath 结构体。

struct XRFdc_ADCBlock_AnalogDataPath_Config

u32 BlockAvailable;
u32 MixMode;

参数说明

u32 BlockAvailable : 对应于 C_ADC_Slice{xy}_Enable IP 参数。

u32 MixMode : 对应于 C_ADC_Mixer_Mode{xy} IP 参数。

struct XRFdc_ADCBlock_DigitalDataPath_Config

u32 DataType;
u32 DataWidth;
u32 DecimationMode;
u32 FifoEnable;
u32 MixerType;

参数说明

u32 DataType: 对应于 C_ADC_Data_Type{xy} IP 参数。

u32 DataWidth: 对应于 C_ADC_Data_Width{xy} IP 参数。

u32 DecimationMode: 对应于 C_ADC_Decimation_Mode{xy} IP 参数。

u32 FifoEnable: 对应于 C_ADC_Fifo{xy} IP 参数。

u32 MixerType: 对应于 C_ADC_Mixer_Type{xy} IP 参数。

struct XRFdc_ADCTile_Config

u32 Enable;
u32 PLLEnable;
double SamplingRate
double RefClkFreq;
double FabClkFreq;
u32 FeedbackDiv;
u32 OutputDiv;
u32 RefClkDiv;
u32 MultibandConfig;
XRFdc_ADCBlock_AnalogDataPath_Config ADCBlock_AnalogConfig[4];
XRFdc_ADCBlock_DigitalDataPath_Config ADCBlock_Digital_Config[4];

参数说明

u32 Enable : 对应于 C_ADC{x}_Enable IP 参数。

u32 PLLEnable : 对应于 C_ADC{x}_PLL_Enable IP 参数。

double SamplingRate : 对应于 C_ADC{x}_Sampling_Rate IP 参数。

double RefClkFreq : 对应于 C_ADC{x}_RefClk_Freq IP 参数。

double FabClkFreq : 对应于 C_ADC{x}_FabClk_Freq IP 参数。

u32 FeedbackDiv : 对应于 C_ADC{x}_FBDIV IP 参数。

u32 OutputDiv : 对应于 C_ADC{x}_OutDiv IP 参数。

u32 RefClkDiv : 对应于 C_ADC{x}Refclk_Div IP 参数。

u32 MultibandConfig : 对应于 C_ADC{x}_Multiband IP 参数。

u8 AnalogPathEnabled:指示AnalogPath 已启用(1) 或禁用(0) 的标志。

u8 AnalogPathAvailable:指示AnalogPath 是否可用的标志。

XRFdc_QMC_Settings QMC_Settings:QMC 设置结构体。

XRFdc_CoarseDelay_Settings CoarseDelay_Settings:CoarseDelay 设置结构体。

struct XRFdc_ADCBlock_AnalogDataPath

u32 Enabled;
XRFdc_QMC_Settings QMC_Settings;
XRFdc_CoarseDelay_Settings CoarseDelay_Settings;
XRFdc_Threshold_Settings Threshold_Settings;
u32 NyquistZone;
u8 CalibrationMode;
u8 AnalogPathEnabled;
u8 AnalogPathAvailable;

参数说明

u32 Enabled: RF-ADC 启用 (1) 或禁用 (0)。

XRFdc_QMC_Settings QMC_Settings : QMC 设置结构体。

XRFdc_CoarseDelay_Settings CoarseDelay_Settings : 粗略延迟设置结构体。

XRFdc_Threshold_Settings Threshold_Settings : 阈值设置结构体。

u32 NyquistZone : 奈奎斯特区。

u8 CalibrationMode : 校准模式,由 XRFdc_SetCalibrationMode API 函数设置。

u8 AnalogPathEnabled : 指示AnalogPath 已启用(1) 或禁用(0) 的标志。

u8 AnalogPathAvailable : 指示AnalogPath 是否可用的标志。

struct XRFdc_ADCBlock_DigitalDataPath

u32 DataType;
u32 DataWidth;
u32 DecimationFactor;
int ConnectedIData;
int ConnectedQData;
u8 DigitalPathEnabled;
u8 DigitalPathAvailable;
XRFdc_Mixer_Settings Mixer_Settings;

参数说明

u32 DataType : 模拟输入数据类型。

u32 DataWidth : 数据宽度(每个 AXI4-Stream 字的样本)。

u32 DecimationFactor : 抽取因子。

int ConnectedIData : 为 I 数据路径连接的数据转换器。 有效值为 0-3 和 -1。

int ConnectedQData : 为Q 数据路径连接的数据转换器。 有效值为 0-3 和 -1。

u8 DigitalPathEnabled : 指示DataPath 已启用(1) 或禁用(0) 的标志。

u8 DigitalPathAvailable : 指示DigitalPath 是否可用的标志。

XRFdc_Mixer_Settings Mixer_Settings : 混频器设置结构体。

struct XRFdc_ADC_Tile

u32 TileBaseAddr;
u32 NumOfADCBlocks;
XRFdc_PLL_Settings PLL_Settings;
u8 MultibandConfig;
XRFdc_ADCBlock_AnalogDataPath ADCBlock_Analog_Datapath[4];
XRFdc_ADCBlock_DigitalDataPath ADCBlock_Digital_Datapath[4];

参数说明

u32 TileBaseAddr : Tile 基地址。

u32 NumOfADCBlocks : 启用的RF-ADC 数量。

XRFdc_PLL_Settings PLL_Settings : PLL 设置结构体。

u8 MultibandConfig : ADC Tile 的多频段配置。

XRFdc_ADCBlock_AnalogDataPath ADCBlock_Analog_Datapath[4] : 四个 RF-ADC 的 ADCBlock_AnalogDataPath 结构体。

XRFdc_ADCBlock_DigitalDataPath ADCBlock_Digital_Datapath[4] :四个 RF-ADC 的 ADCBlock_DigitalDataPath 结构体。

struct XRFdc_MultiConverter_Sync_Config

该结构用于配置 MTS 算法。 可以在代码中配置指示文件。

u32 RefTile;
u32 Tiles;
int Target_Latency;
int Offset[4];
int Latency[4];
int Marker_Delay;
int SysRef_Enable;
XRFdc_MTS_DTC_Settings DTC_Set_PLL;
XRFdc_MTS_DTC_Settings DTC_Set_T1;

参数说明

u32 RefTile:参考片。

u32 Tiles : 指示要对齐的图块的位掩码。 BitX 为 TileX 启用 MTS。 Tile0 必须始终启用。

int Target_Latency : 设置目标相对延迟。 这需要为多设备对齐或确定性延迟用例设置。 单机对齐无需设置。

int Offset[4] : 状态 - 指示接口数据为实现对齐而延迟的值,每个图块。

int Latency[4] : 状态 - 表示每个图块的测量相对延迟值。

int Marker_Delay : 标记延迟供内部使用。

int SysRef_Enable : Set to 1 (default) to keep SYSREF capture enabled after MTS runs. Set to 0 to disable SYSREF capture.

struct XRFdc_MTS_Marker

此结构供内部驱动程序使用。 没有用户可配置的字段。

  u32 Count[4];
  u32 Loc[4];

struct XRFdc_MTS_DTC_Settings

此结构供内部驱动程序使用。 没有用户可配置的字段。

u32 RefTile;
u32 IsPLL;
int Target[4];
int Scan_Mode;
int DTC_Code[4];
int Num_Windows[4];
int Max_Gap[4];
int Min_Gap[4];
int Max_Overlap[4];

struct XRFdc_Calibration_Coefficients

通用校准系数结构。

u32 Coeff0;
u32 Coeff1;
u32 Coeff2;
u32 Coeff3;
u32 Coeff4;
u32 Coeff5;
u32 Coeff6;
u32 Coeff7;

参数说明

• u32 Coeff{N}: 第 N 个系数 ,注意:Coeff{4-7} 在斩波处于活动状态时适用,并且仅与时间偏移校准块相关。

struct XRFdc_Cal_Freeze_Settings

通用校准冻结设置结构体

u32 CalFrozen;
u32 DisableFreezePin;
u32 FreezeCalibration;

参数说明

u32 CalFrozen : 指示校准已冻结的状态。

u32 DisableFreezePin : 禁用校准冻结引脚。

u32 FreezeCalibration : 使用冻结端口冻结校准。

struct XRFdc_Tile_Clock_Settings (Gen 3)

此结构用于设置或获取内部 tile 时钟设置。 仅供参考; 你不需要设置它。

u8 SourceType;
u8 SourceTile;
u8 PLLEnable;
double RefClkFreq;
double SampleRate;
u8 DivisionFactor;
u8 Delay;
u8 DistributedClock;

参数说明

u32 SourceType: 源片类型。 RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

u32 SourceTile : 源片的 RF-ADC/RF-DAC 块编号。 有效值为 0-3。

u8 PLLEnable : 启用内部 PLL。

double RefClkFreq : 瓦片的输入参考时钟。

double SampleRate : 瓦片的采样率。

u8 DivisionFactor : 时钟分频器(如果绕过 PLL)。

u8 Delay : 延迟源时钟到 tile 的延迟。

u8 DistributedClock : 分配此图块时钟的选项。 有效值为 0(无)、1(接收到的时钟)和 2(来自内部分频器的全速率时钟)。

8.png

struct XRFdc_Distribution_Info (Gen 3)

该结构包含时钟分布状态/信息参数。

u8 MaxDelay;
u8 MinDelay;
u8 IsDelayBalanced;
u8 Source;
u8 UpperBound;
u8 LowerBound;
XRFdc_Tile_Clock_Settings ClkSettings[2][4];

参数说明

u8 MaxDelay : 这是从源图块到分布中最远图块的最大延迟。

u8 MinDelay : 这是从源图块到分布中最远图块的最小延迟。

u8 IsDelayBalanced : 这表明分布是否延迟平衡。 值为 0(不平衡)和 1(平衡)。

u8 Source : 使用包 ID 索引的分发源片。

u8 UpperBound : 这是最靠近 ADC 0 一侧的分布边缘的瓦片。这是索引的包 ID。

u8 LowerBound : 这是最靠近 DAC 3 一侧分布边缘的图块。这是索引的包 ID。

XRFdc_Tile_Clock_Settings ClkSettings[ 2 ][ 4 ]: 包含有关分布中给定图块的信息的结构,数组索引为 [Type][TileId]。 无需填充即可设置时钟分布。

9.pngstruct XRFdc_Distribution_Settings (Gen 3)

此结构用于设置时钟分布设置。

u32 SourceTileId;
u32 SourceType;
u32 EdgeTileIds[2];
u32 EdgeTypes[2];
double DistRefClkFreq;
u32 DistributedClock;
double SampleRates[2][4]; /*[Type][Tile] e.g. ClkSettings[XRFDC_ADC_TILE] [1] for ADC1*/
u32 ShutdownMode;
XRFdc_Distribution_Info Info;

参数描述

u32 SourceTileId: 源 tile 的 RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

u32 SourceType: 源切片类型。 RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

u32 EdgeTileIds[2]: 每个边缘瓦片的瓦片ID(源瓦片南北的最后瓦片)。 索引对应于 EdgeTypes 参数。 RF-ADC/RF-DAC 瓦数。 有效值为 0-3。

u32 EdgeTypes[2] : 每个边缘瓦片的类型(源瓦片南北的最后瓦片)。 索引对应EdgeTileIds参数。RF-ADC或RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

double DistRefClkFreq: 源块的输入参考时钟。

u32 DistributedClock: 源块转发的时钟。 有效值为 0(无)、1(接收到的时钟)和 2(来自内部分频器的全速率时钟)。

double SampleRates[2][4]: 任何给定片的采样率。 该数组被索引为 [Type] [TileId]。 仅需要填充分布中包含的片。

u32 ShutdownMode: 这使用户可以控制是否启动分发中的片。 有效值为 0(启动分发)和 1(保持分发关闭)。

XRFdc_Distribution_Info Info : 包含有关分布信息的结构,不需要填充它来设置时钟分布。

10.png

struct XRFdc_Distribution_System_Settings (Gen 3)

此结构用于获取整个系统的时钟分配设置。 分布的数量等于源块(配置为采用外部时钟的块)的数量。

XRFdc_Distribution_Settings Distributions[8];

XRFdc_Distribution_Settings Distributions[8] : 这是一个分布结构数组,将填充从第零个元素开始的所有有效分布。 没有有效分布的任何剩余结构都将元素的 SourceTileId 参数设置为 XRFDC_CLK_DST_INVALID (0xFF)

struct XRFdc_DSA_Settings (Gen 3)

u32 DisableRTS; /*Disables RTS control of DSA attenuation*/
float Attenuation; /*Attenuation*/

参数说明

u32 DisableRTS : 这将禁用实时信号设置衰减。

float Attenuation : ES1 硅的衰减 0 - 11 dB。生产硅的衰减 0 - 27 dB。

struct XRFdc_Pwr_Mode_Settings (Gen 3)

此结构包含电源模式设置。

u32 DisableIPControl; /*Disables IP RTS control of the power mode*/
u32 PwrMode; /*The power mode*/

参数说明

u32 DisableIPControl : 禁用实时信号设置电源模式:0 表示启用 RTS 控制,1 表示禁用 RTS 控制。

u32 PwrMode : 0 为断电,1 为上电。

reference

PG269

最新文章

最新文章