RFSoC应用笔记 - RF数据转换器(21):API使用指南之配置ADC相关工作状态

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

配置ADC相关工作状态

XRFdc_SetDecimationFactor

函数原型

u32 XRFdc_SetDecimationFactor(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 DecimationFactor);

参数

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

  • u32 Tile_Id:RF-ADCtile 编号。 有效值为 0-3。

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

  • u32 DecimationFactor:要为 RF-ADC 设置的抽取因子。

    1.JPG

带标注1的只有GEN 3代的有该参数配置。

说明

此 API 函数为请求的 RF-ADC 设置抽取因子,并根据抽取因子更新 FIFO 写入宽度。抽取的动态变化对块吞吐量有影响。 可以动态更改 AXI4-Stream 时钟速率以适应吞吐量的变化。在非 MTS 模式下,推荐的程序是关闭 FIFO(Xrfdc_setupfifo),更改时钟速率(Xrfdc_SetfabClkOutDiv),清除 FIFO 中断,然后重新启动 FIFO(Xrfdc_SetupFifo)。此功能仅适用于 RF-ADC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetDecimationFactorObs (Gen 3)

函数原型

u32 XRFdc_SetDecimationFactorObs(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 DecimationFactor);

参数

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

  • u32 Tile_Id:RF-ADCtile 编号。 有效值为 0-3。

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

  • u32 DecimationFactor:为RFADC 的观察通道设置的抽取因子。

2.png

说明

此 API 函数为请求的 RFADC 的观察通道设置抽取因子,并根据抽取因子更新 FIFO 写入宽度。抽取的动态变化对块吞吐量有影响。 可以动态更改 AXI4-Stream 时钟速率以适应吞吐量的变化。 在非 MTS 模式下,推荐的程序是关闭 FIFO (Xrfdc_SetupFifoObs),更改时钟速率 (Xrfdc_SetfabClkOutDiv),清除 FIFO 中断,然后重新启动 FIFO (Xrfdc_SetupFifoObs)。此功能仅适用于 RF-ADC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetFabRdVldWords

函数原型

u32 XRFdc_SetFabRdVldWords(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 FabricRdVldWords);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • u32 FabricRdVldWords: 读取要为RF-ADC设置的PL数据速率。

说明

该API函数通过写入相应的寄存器来设置所请求的RF-ADC的读取PL数据率。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetFabRdVldWordsObs (Gen 3)

函数原型

u32 XRFdc_SetFabRdVldWordsObs(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 FabricRdVldWords);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • u32 FabricRdVldWords: 读取要为RFADC的观察通道设置的PL数据速率。

请参见Threshold_Settings结构中的有效宏。驱动中的Threshold0和Threshold1分别对应于IP中的Threshold1和Threshold2。

说明

这个API函数清除阈值配置寄存器中的sticky位,基于 ThresholdToUpdate参数清除阈值配置寄存器中的sticky位。这个API函数只适用于RF-ADC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetThresholdClrMode

函数原型

u32 XRFdc_SetThresholdClrMode(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 ThresholdToUpdate, u32 ClrMode);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • u32 ThresholdToUpdate: 选择要更新的阈值(阈值0或阈值1或两者)用于更新。请参见Threshold_Settings结构中的有效宏。

  • u32 ClrMode: 清理模式可以是手动(寄存器写入)或自动清理(QMC增益更新事件)。

    3.png

说明

此API函数设置阈值清除模式。这个API函数只适用于RF-ADC。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetThresholdSettings

函数原型

u32 XRFdc_SetThresholdSettings(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, XRFdc_Threshold_Settings *Threshold_Settings);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • *XRFdc_Threshold_Settings Threshold_Settings: 指针,通过它可以将阈值的寄存器设置。

阈值:指针,通过它将阈值的寄存器设置传递给API。

说明

这个API函数将阈值设置写到相关的寄存器中。驱动器结构体会被更新为新的值。这个API函数只适用于RF-ADC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetupFIFOObs (Gen 3)

函数原型

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

参数

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

  • u32 Type:RF-ADC:0表示RF-ADC。

  • int Tile_Id:RF-ADC的片编号。有效值为0-3和-1(用于所有片)。

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

说明

该API函数启用和禁用RF-ADC的观察通道FIFO。这个API函数只适用于RF-ADC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetupFIFOBoth (Gen 3)

函数原型

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

参数

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

  • u32 Type:RF-ADC:0表示RF-ADC。

  • int Tile_Id:RF-ADC的片编号。有效值为0-3和-1(用于所有片)。

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

说明

该API函数启用和禁用RF-ADC实际和观察通道的FIFO。这个API函数只适用于RF-ADC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetCalibrationMode

函数原型

u32 XRFdc_SetCalibrationMode(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u8 CalibrationMode);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • u8 CalibrationMode : 有效值为1(Mode1)和2(Mode2)。

说明

这个API函数设置RF-ADC的校准模式。调用这个API后,你必须重新启动整个片,以便新的校准模式能够正确运行。

这个API函数只用于RF-ADC。在改变一个分片的校准模式后,必须发出Xrfdc_Shutdown和Xrfdc_startup命令。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_DisableCoefficientsOverride

函数原型

u32 XRFdc_DisableCoefficientsOverride(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 CalibrationBlock);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • u32 CalibrationBlock : 校准块,其覆盖将被禁用。有效值为0(仅适用于第三代设备)和1-3,分别代表OCB1、OCB2、GCB和TSCB。

4.png

说明

该API函数禁用所选块的系数覆盖。使用CalibrationBlock参数选择时钟。OCB1仅适用于第三代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetCalCoefficients

函数原型

u32 XRFdc_SetCalCoefficients(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 CalibrationBlock, XRFdc_Calibration_Coefficients *CoeffPtr);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • u32 CalibrationBlock:校准块,其覆盖功能将被启用。有效值为0(仅适用于第三代设备),1-3代表OCB1、OCB2、GCB和TSCB

  • 分别代表OCB1、OCB2、GCB和TSCB。

  • XRFdc_Calibration_Coefficients * CoeffPtr : 指向通用校准系数结构的指针。

5.png

说明
这个API函数启用了系数覆盖,并为所选区块编程所提供的系数。该块是通过CalibrationBlock参数选择的。OCB1仅适用于第三代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetCalFreeze

函数原型

u32 XRFdc_SetCalFreeze(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, XRFdc_Cal_Freeze_Settings *CalFreezePtr);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • XRFdc_Cal_Freeze_Settings * CalFreezePtr: 指向通用校准冻结设置的结构体。

说明

这个API函数通过校准端口冻结/解冻校准,并禁用/启用校准冻结针。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetDither

函数原型

u32 XRFdc_SetDither(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 Mode);

参数

u32 Mode : 禁用(0)或启用(1)抖动。

说明

该API函数启用/禁用抖动。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetDSA (Gen 3)

函数原型

u32 XRFdc_SetDSA(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, XRFdc_DSA_Settings *SettingsPtr);

参数

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

  • u32 Tile_Id : RF-ADC片的编号。有效值为0-3。

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

  • XRFdc_DSA_Settings * SettingsPtr : 指向XRFdc_DSA_Settings的指针,用于传递DSA设置。

说明

传递的DSA设置被用来更新相应的块级寄存器,这是一个只针对RF-ADC的API函数。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetSignalDetector (Gen 3)

函数原型

u32 XRFdc_SetSignalDetector(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, XRFdc_Signal_Detector_Settings *SettingsPtr);

参数

XRFdc_Signal_Detector_Settings * SettingsPtr: 指针指向XRFdc_Signal_Detector_Settings结构体的指针,用于传递信号检测器的设置。

Valid Macros for SettingsPtr->Mode Argument

6.JPG

Valid Macros for SettingsPtr->TimeConstant Argument

7.JPG

说明

传递的信号检测器设置被用来更新相应的块级寄存器。这是一个仅适用于RF-ADC的API函数。只适用于第三代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

最新文章

最新文章