RFSoC应用笔记 - RF数据转换器(20):API使用指南之配置RFDC工作状态(ADC、DAC均适用)

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

配置RFDC工作状态(ADC、DAC均适用)

XRFdc_SetMixerSettings

函数原型

u32 XRFdc_SetMixerSettings(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, XRFdc_Mixer_Settings *MixerSettingsPtr);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

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

    u32 Block_Id:块内的RF-ADC/RF-DAC 块编号。 有效值为 0-3。

  • *XRFdc_Mixer_Settings MixerSettingsPtr: 指向传递混频器/NCO 设置的 XRFdc_Mixer_Settings 结构的指针。

描述

传递的 Mixer/NCO 设置用于更新相应的块级寄存器。 使用新值更新驱动程序结构体。这是 RF-ADC/RF-DAC 的常用 API 函数。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetQMCSettings

函数原型

u32 XRFdc_SetQMCSettings(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, XRFdc_QMC_Settings *QMCSettingsPtr);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u32 Block_Id:块内的RF-ADC/RF-DAC 块编号。 有效值为 0-3。

  • *XRFdc_QMC_Settings QMCSettingsPtr:指向用于更新相应寄存器的 XRFdc_QMC_Settings 结构的指针。

描述

QMC 设置被填充到相应的寄存器中。 使用新值更新驱动程序结构体。这是 RF-ADC/RF-DAC 的常用 API 函数。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetCoarseDelaySettings

函数原型

u32 XRFdc_SetCoarseDelaySettings(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, XRFdc_CoarseDelay_Settings *CoarseDelaySettingsPtr);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u32 Block_Id:块内的RF-ADC/RF-DAC 块编号。 有效值为 0-3。

  • *XRFdc_CoarseDelay_Settings CoarseDelaySettingsPtr:指向 XRFdc_CoarseDelay_Settings 结构的指针,通过该结构体传递粗略延迟设置。

描述

从调用方传递的粗略延迟设置在相关寄存器中更新。 使用新值更新驱动程序结构。这是 RF-ADC/RF-DAC 的常用 API 函数。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_UpdateEvent

函数原型

u32 XRFdc_UpdateEvent(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 Event);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u32 Block_Id:块内的RF-ADC/RF-DAC 块编号。 有效值为 0-3。

  • u32 Event : 事件可以是混频器、QMC 或粗略延迟。

1.png

描述

当事件源为 Slice 或 Tile 时,使用该函数触发事件的更新事件。这是 RF-ADC/RF-DAC 的常用 API 函数。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetFabClkOutDiv

函数原型

u32 XRFdc_SetFabClkOutDiv(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u16 FabClkDiv);

描述

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u16 FabClkDiv: 为 tile 设置的 PL 时钟分频器。

2.png

描述

使用该函数设置 PL 时钟输出的分频器。这是 RF-ADC 和 RF-DAC 的常用功能。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_ResetNCOPhase

函数原型

u32 XRFdc_ResetNCOPhase(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u32 Block_Id:块内的RF-ADC/RF-DAC 块编号。 有效值为 0-3。

说明

该API函数用于启动当前块相位累加器的NCO相位复位。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetupFIFO

函数原型

u32 XRFdc_SetupFIFO(XRFdc *InstancePtr, u32 Type, int Tile_Id, u8 Enable);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。有效值为0-3和-1(用于所有片)。

  • u8 Enable: 有效值为1(FIFO enable)和0(FIFO Disable)。

说明

该API函数启用和禁用RF-ADC/RF-DAC的FIFO。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetNyquistZone

函数原型

u32 XRFdc_SetNyquistZone(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 NyquistZone);

参数

  • u32 NyquistZone: 有效值为1(奇数),2(偶数)。

说明

这个API函数为RF-ADC/RF-DACs设置奈奎斯特区。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_MultiBand

函数原型

u32 XRFdc_MultiBand(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u8 DigitalDataPathMask, u32 DataType, u32 DataConverterMask);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u8 DigitalDataPathMask : 代表多波段的数据通路掩码。前四位代表四个数据通路,1是启用,0是禁用。

  • u32 DataType : DataType是混频器的数据类型;有效值是XRFDC_MB_DATATYPE_*。

3.JPG

  • u32 DataConverterMask : DataConverterMask是一个块启用的掩码(输入/输出驱动块);1表示启用,0表示禁用。

说明

该API函数用于设置单频和多频配置。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_MultiConverter_Init

函数原型

void XRFdc_MultiConverter_Init(XRFdc_MultiConverter_Sync_Config *ConfigPtr, int *PLL_CodesPtr, int *T1_CodesPtr, u32 RefTile);

参数

  • *XRFdc_MultiConverter_Sync_Config ConfigPtr : 多片同步配置结构体。

  • *int PLL_CodesPtr : 用于PLL模拟SYSREF捕获的可选目标代码。不使用时设置为0(NULL)。

  • *int T1_CodesPtr : T1模拟SYSREF捕获的可选目标代码。不使用时设置为0(NULL)。

  • u32 RefTile: SysRef参考片。当使用时钟分配时,它应该被设置为分配时钟的片的Tile_Id。当不使用时钟分配时,它应该被设置为0。

说明

这个API函数初始化了多轨同步配置结构;它必须在XRFdc_MultiConverter_Sync之前调用。可选的是,它允许为PLL/T1模拟SYSREF捕获提供先前确定的目标代码。

XRFdc_MultiConverter_Sync

函数原型

u32 XRFdc_MultiConverter_Sync(XRFdc *InstancePtr, u32 Type, XRFdc_MultiConverter_Sync_Config *ConfigPtr);

参数

  • *XRFdc InstancePtr: 指向驱动实例的指针。

  • u32 Type:RF-ADC或RF-DAC;0表示RF-ADC,1表示RF-DAC。

  • *XRFdc_MultiConverter_Sync_Config ConfigPtr : 多瓦同步配置结构体。

说明

这是一个顶级的API函数,用于多片同步。

返回值

XRFDC_MTS_OK

XRFDC_MTS_TIMEOUT

XRFDC_MTS_MARKER_RUN

XRFDC_MTS_MARKER_MISM

XRFDC_MTS_NOT_SUPPORTED

XRFdc_DynamicPLLConfig

函数原型

u32 XRFdc_DynamicPLLConfig(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u8 Source, double RefClkFreq, double SamplingRate);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。

  • u32 Type:RF-ADC 或 RF-DAC; RF-ADC 为 0,RF-DAC 为 1。

  • u32 Tile_Id:RF-ADC/RF-DAC tile 编号。 有效值为 0-3。

  • u8 Source : 内部PLL或外部时钟源。

    4.JPG

  • double RefClkFreq:参考时钟频率,MHz(FREF min to FREF max)。

  • double SamplingRate: 采样率频率,MHz(Fs min to Fs max)。

说明

这个API函数用于在内部PLL和外部时钟源之间的动态切换,以及为RF-ADC/RF-DAC配置内部PLL。源之间进行动态切换,并为RF-ADC/RF-DAC配置内部PLL。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetClkDistribution (Gen 3)

函数原型

u32 XRFdc_SetClkDistribution(XRFdc *InstancePtr, XRFdc_Distribution_Settings *DistributionSettingsPtr);

参数

  • *XRFdc InstancePtr : 指向驱动实例的指针。

  • *XRFdc_Distribution_Settings DistributionSettingsPtr: 指针指向XRFdc_Distribution_Settings结构体,用于传递分布设置。

说明

这个API函数接收XRFdc_Distribution_Settings结构,并相应地路由时钟。这个API将尽可能地延迟平衡。这个API还将设置内部瓦片的时钟设置。只适用于第三代设备。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_MTS_Sysref_Config

函数原型

u32 XRFdc_MTS_Sysref_Config(XRFdc *InstancePtr,
XRFdc_MultiConverter_Sync_Config *DACSyncConfigPtr,
XRFdc_MultiConverter_Sync_Config *ADCSyncConfigPtr, u32 SysRefEnable)

参数

  • *XRFdc InstancePtr: 指向驱动实例的指针。

  • *XRFdc_MultiConverter_Sync_Config DACSyncConfigPtr : 指向RF-DAC多瓦同步的指针配置结构体。

  • *XRFdc_MultiConverter_Sync_Config ADCSyncConfigPtr: 指向ADC多瓦同步的指针配置结构体。

  • u32 SysRefEnable:0表示禁用,1表示启用。

说明

该API用于启用和禁用sysref。

返回值

XRFDC_MTS_OK

XRFdc_ResetInternalFIFOWidth (Gen 3)

函数原型

u32 XRFdc_ResetInternalFIFOWidth(XRFdc *InstancePtr, u32 Type, u32 Tile_Id,u32 Block_Id);

说明

这个API函数重置内部FIFO宽度,以符合RF-ADC/RF-DAC的速率变化和混频器设置。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetPwrMode (Gen 3)

函数原型

u32 XRFdc_SetPwrMode(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, XRFdc_Pwr_Mode_Settings *SettingsPtr);

参数

*XRFdc_Pwr_Mode_Settings SettingsPtr : 指向所需功率模式设置的指针。

说明

这个API函数为一个给定的RF-ADC/RF-DAC块设置电源模式。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_ClrSetReg

函数原型

void XRFdc_ClrSetReg(XRFdc *InstancePtr, u32 BaseAddr, u32 RegAddr, u16 Mask, u16 Data)

参数

u32 BaseAddr : 一个块的地址。

u32 RegAddr : 寄存器偏移值。

u16 Mask:位掩码值。

u16 Data:要写入寄存器的值。

说明

该API执行读取修改写入。

RFdc_ClrReg

函数原型

void XRFdc_ClrReg(XRFdc *InstancePtr, u32 BaseAddr, u32 RegAddr, u16 Mask)

参数

  • u32 BaseAddr : 一个块的地址。

  • u32 RegAddr : 寄存器偏移值。

  • u16 Mask:位掩码值。

说明

此API执行读取和清除。

XRFdc_SetConnectedIQData

函数原型

void XRFdc_SetConnectedIQData(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, int ConnectedIData, int ConnectedQData)

参数

  • int ConnectedIData: 连接DigitalPathI的转换器ID

  • int ConnectedQData: 连接到DigitalPathQ的转换器ID

说明

此API设置数字数据路径I和Q的连接数据转换器。

最新文章

最新文章